windows10中docker desktop安装使用php+nginx服务流程步骤
windows10+docker环境作为开发测试环境还是非常方便的,下面介绍一下在该环境下php服务安装使用的流程步骤。这里涉及到nginx,php+nginx懂的都懂 哈哈,因为之前有写nginx服务安装使用文章这里就一笔带过了
拉取7.4-fpm版本的php镜像
C:\Users\htz>docker pull php:7.4-fpm
7.4-fpm: Pulling from library/php
1efc276f4ff9: Already exists
3239fd0772e9: Pull complete
52ccb8ba6c06: Pull complete
e907707b68ee: Pull complete
1f3061cbf6be: Pull complete
4a3e9a5c9ada: Pull complete
163163af3a7f: Pull complete
bf2cf7e6e3aa: Pull complete
4ee0a6366f51: Pull complete
5c0da2dc3191: Pull complete
Digest: sha256:776f10bf1cf29c4b2ca81247f633e8b3c1385966ad888eef96ac5abb847c0c2f
Status: Downloaded newer image for php:7.4-fpm
79ddde0348af4160619da034e0d76f16f072651e0c1461536f3facc502188503
创建临时php容器,拷贝配置文件用
docker run -d -v C:\Users\htz\dockers\nginx\www:/var/www/html -p 9000:9000 --name php74 php:7.4-fpm
在宿主机上创建文件夹:(映射配置文件用)
C:\Users\htz\dockers\php\conf\
拷贝php容器里面的配置文件至宿主机
C:\Users\htz>docker cp php74:/usr/local/etc/php-fpm.d/www.conf C:\Users\htz\dockers\php\conf\www.conf
C:\Users\htz>docker cp php74:/usr/local/etc/php/php.ini-production C:\Users\htz\dockers\php\conf\php.ini
停止并删除临时php容器
C:\Users\htz>docker stop php74 && docker rm php74
php74
php74
正式启动php容器服务
C:\Users\htz>docker run -d -v C:\Users\htz\dockers\nginx\www:/var/www/html -v C:\Users\htz\dockers\php\conf\www.conf:/usr/local/etc/php-fpm.d/www.conf -v C:\Users\htz\dockers\php\conf\php.ini:/usr/local/etc/php/php.ini -p 9000:9000 --name php74 php:7.4-fpm
4e1742d8f49384d7edd6eec779e70c11139cec99b8bed36e79ce7a40c830f6e6
创建index.php测试文件
C:\Users\htz\dockers\nginx\www\index.php
如下所示:
C:\Users\htz>cd dockers\nginx\www
C:\Users\htz\dockers\nginx\www>dir
驱动器 C 中的卷没有标签。
卷的序列号是 82E1-16B0
C:\Users\htz\dockers\nginx\www 的目录
2022/08/09 12:33 <DIR> .
2022/08/09 12:33 <DIR> ..
2022/08/04 17:04 329 index.html
2022/08/09 14:02 28 index.php
2 个文件 357 字节
2 个目录 64,011,735,040 可用字节
C:\Users\htz\dockers\nginx\www>type index.php
<?php
echo phpinfo();
修改nginx配置文件
C:\Users\htz\dockers\nginx\conf\nginx.conf
如下所示:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php(.*)$ {
root /var/www/html;
fastcgi_pass php74:9000; //php容器名称
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
重新启动nginx容器服务
C:\Users\htz>docker run -d -p 80:80 --name nginx-server -v C:\Users\htz\dockers\nginx\www:/usr/share/nginx/html -v C:\Users\htz\dockers\nginx\conf\nginx.conf:/etc/nginx/nginx.conf -v C:\Users\htz\dockers\nginx\logs:/var/log/nginx --link php74:7.4-fpm nginx
8a05850c4d875850bd3febaa7812ae831ccf1556c7dc4a004d4aa2fbfb414353
到此,所有步骤都配完了
访问测试一下吧
相关文章