制作docker镜像php-7.4 fpm并运行nginx
第1步:启动容器(复制下面所有代码到SSH控制台并按回车)
docker run -it --name php74fpm php:7.4-fpm bash docker-php-ext-install pdo_mysql mkdir -p /usr/src/php/ext #install-redis-start curl -L -o /usr/src/php/ext/tmp.tgz http://pecl.php.net/get/redis-5.3.7.tgz tar xf /usr/src/php/ext/tmp.tgz -C /usr/src/php/ext/ mv /usr/src/php/ext/redis-5.3.7 /usr/src/php/ext/redis docker-php-ext-install redis echo '<? phpinfo();'>1.php&&php 1.php|grep redis&&rm 1.php #install-xxtea-start curl -L -o /usr/src/php/ext/tmp.tgz http://pecl.php.net/get/xxtea-1.0.11.tgz tar xf /usr/src/php/ext/tmp.tgz -C /usr/src/php/ext/ mv /usr/src/php/ext/xxtea-1.0.11 /usr/src/php/ext/xxtea docker-php-ext-install xxtea rm /usr/src/php/ext/tmp.tgz echo '<? phpinfo();'>1.php&&php 1.php|grep xxtea&&rm 1.php exit
第2步:打包镜像(复制下面所有代码到SSH控制台并按回车)
docker commit php74fpm php74fpm docker rm php74fpm docker image rm php:7.4-fpm docker images docker ps -a docker run -it --rm php74fpm php -v
你可以用docker save php74fpm>php74fpm-image.tar导出镜像
用docker load<php74fpm-image.tar导入镜像
第3步:编辑php配置文件
[global] daemonize = no [www] listen = /root/php-fpm.sock listen.mode = 0666
保存到~/docker/nginx/php-fpm.conf
mkdir -p ~/docker/nginx/ vim ~/docker/nginx/php-fpm.conf
第4步:启动镜像
docker run --restart=always -d --name nginx-php -v ~/docker/nginx:/root php74fpm /bin/bash -c "cp /root/php-fpm.conf /usr/local/etc/php-fpm.d/zz-docker.conf&&php-fpm"
会生成 /docker/nginx/php-fpm.sock 文件供nginx访问
===========================下面介绍nginx配置==================================
第一步:初始化nginx配置文件
cd ~ rm -rf ~/docker/nginx/etc mkdir -p ~/docker/nginx docker run --rm -v ~/docker/nginx:/root docker.io/library/nginx:latest /bin/bash -c "cp -a /etc/nginx /root/etc" rm -rf ~/docker/nginx/log mkdir ~/docker/nginx/log docker rm -f nginx docker run --restart=always -dp 80:80 --name nginx -v ~/docker/nginx:/root -v ~/docker/nginx/etc:/etc/nginx -v ~/docker/nginx/log:/var/log/nginx docker.io/library/nginx:latest
第二步:配置nginx.conf
vim ~/docker/nginx/etc/conf.d/default.conf
内容如下
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /root/www;
index index.php index.html index.htm;
location ~ \.(php|phar)(/.*)?$ {
fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;
fastcgi_intercept_errors on;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/root/php-fpm.sock;
}
}
第三步:重新加载nginx配置文件使其生效
docker exec nginx nginx -s reload
第四步:编写一个index.php做测试
mkdir -p ~/docker/nginx/www/ vim ~/docker/nginx/www/index.php
内容为
<?php phpinfo();
本文来自博客园,作者:项希盛,转载请注明原文链接:https://www.cnblogs.com/xiangxisheng/p/16498080.html
浙公网安备 33010602011771号