PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。 [1-2] PHP同时支持面向对象和面向过程的开发,使用上非常灵活。
1、docker的nginx和PHP的镜像
docker pull nginx:latest(最新版本)
docker pull php:7.4-fpm
2、1.创建容器
创建一个/docker/nginx/www/myphp目录,挂载PHP目录
docker run --name myphp -v /docker/nginx/www/myphp:/www/myphp -d 854be5bd67a6
mkdir -p /docker/nginx/www/myphp
-v
代表挂载目录,将服务器外面的目录与创建的容器里的目录进行挂载,以后修改代码直接在容器外的服务器目录就可以修改了-d
代表后台运行- 854be5bd67a6代表php-fpm的镜像id,可通过
docker images
进行查看安装的镜像
3、查看运行的容器
docker ps
注释:(up字母表示的是容器运行状态,没有up说明没有运行成功 )
4、创建conf、conf.d目录
mkdir -p /docker/nginx/conf/conf.d,一定要用mkdir -p递归创建目录,即使上级目录不存在,会按目录层级自动创建目录
5、创建自己的conf文件,并写入自己的配置conf文件可以自己命名,docker_php_cn.conf文件
server {
listen 80;
server_name docker.zhangx.cn; #这里修改成自己的域名
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#当请求网站下php文件的时候,反向代理到php-fpm
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
6、创建运行nginx的容器并打通容器之间的相联
docker run --name nginx1 -p 8088:80 -d \
-v /docker/nginx/www:/usr/share/nginx/html \
-v /docker/nginx/conf/conf.d:/etc/nginx/conf.d \
--link myphp:php nginx
- -p 主机和容器端口互联,主机8088:80
- -v 目录挂载
- -d 后台运行
- --link nginx和php容器互联
如果我们想进一步的修改nginx配置。我们可以使用docker exec -it 080ed0ed8312 \base\sh 进去容器里修改对应配置 080ed0ed8312是容器的id
7、创建index.php
创建index.php,在docker/nginx/www创建即可
<?php
echo phpinfo();
?>