一、docker普通安装部署lnp示例(没有m,因为mysql取其他服务器的数据库)
1、docker安装nginx(在/root目录即可,后面如无说明也是相同...)
docker pull nginx:latest
2、docker安装php-fpm,为了跟测试环境一致这里安装的是7.2.18(在/root目录即可,后面如无说明也是相同...)
docker pull bitnami/php-fpm:7.2.18-ol-7-r33-prod
注意:若安装的是php-fpm5.6,启动后phpinfo报timezone错误,则,可以进入php-fpm5.6的容器内,直接写入以下代码到conf.d文件夹下(因为php的配置会默认加载/usr/local/etc/php/conf.d/下的.ini文件)
printf '[PHP]\ndate.timezone = Asia/Shanghai\n' > /usr/local/etc/php/conf.d/tzone.ini
此时打开tzone.ini文件会发现
[PHP] date.timezone = PRC
3、启动php(在/root目录即可,后面如无说明也是相同...)
docker run --name myphp-fpm -v ~/nginx/www:/www -d bitnami/php-fpm:7.2.18-ol-7-r33-prod
4、在/root目录新建文件夹
mkdir ~/nginx/conf/conf.d
5、新建如下文件
vim ~/nginx/conf/conf.d/runoob-test-php.conf
官方的示例如下
server {
listen 80;
server_name localhost;
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;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}由于我们是tp5.1,public目录不一样,以及还有rewrite规则,所以我们修改为如下(在fastcgi_param处的'/www'后增加'/public'目录,增加rewrite规则,以及deny all规则)
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
location ~ /Tpl/.*\.html {
deny all;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/public/$fastcgi_script_name;
include fastcgi_params;
}
}6、启动nginx(若格式有误,建议到官网上复制:https://www.runoob.com/docker/docker-install-php.html)
docker run --name runoob-php-nginx -p 8083:80 -d \
-v ~/nginx/www:/usr/share/nginx/html:ro \
-v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
--link myphp-fpm:php \
nginx7、在/root/nginx下创建www目录
mkdir ~/nginx/www
8、把tp5.1的项目代码上传到/root/nginx/www目录中,再重启一下php-fpm即可
docker restart myphp-fpm
二、docker-composer的yaml方式部署示例