欢迎光临散文网 会员登陆 & 注册

Docker搭建WEB环境之 Nginx & PHP

2023-05-23 17:28 作者:魔都码农  | 我要投稿


第一步安装Docker

1、更新Ubuntu的apt源

sudo apt-get update

2、安装包允许apt通过HTTPS使用仓库

sudo dpkg --configure -a sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

3、添加Docker官方GPG key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4、设置Docker稳定版仓库

sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

  • [arch=arm64] 注意系统的平台选择

5、更新apt源

sudo apt-get update

6、安装最新版本Docekr CE(社区版)

sudo apt-get install docker-ce

7、查看安装Docker的版本

docker --version

8、检查Docker CE是否安装正确

sudo docker run hello-world

9、更新为国内源

sudo vim /etc/docker/daemon.json

写入以下文本

{        "registry-mirrors": [                "https://registry.docker-cn.com",                "https://hub-mirror.c.163.com/"        ] }

10、重启docker

sudo systemctl restart docker

第二步Docker安装nginx

1、原始安装nginx-v1容器

sudo docker run --name nginx-v1 -p 80:80  -d nginx

检查是否安装成功,浏览器访问http://192.168.157.129/

2、拷贝nginx-v1容器内的配置文件到物理机

cd /mnt sudo mkdir public 

cd /mnt/public sudo 

mkdir conf 

sudo mkdir html 

sudo docker cp  nginx-v1:/etc/nginx/conf.d/default.conf /mnt/public/conf/default.conf 

sudo docker cp  nginx-v1:/usr/share/nginx/html/index.html /mnt/public/html/index.html 

sudo docker cp  nginx-v1:/usr/share/nginx/html/50x.html /mnt/public/html/50x.html

3、删除nginx-v1容器,重新安装nginx-v2并指定配置目录

sudo docker stop nginx-v1 

sudo docker rm nginx-v1 

sudo docker run --name nginx-v2 -p 80:80 -v /var/log/nginx:/var/log/nginx -v /mnt/public/html:/usr/share/nginx/html -v /mnt/public/conf:/etc/nginx/conf.d -d nginx


第三步nginx-v2容器内安装PHP环境

1、进入docker容器

sudo docker exec -it nginx-v2 bash

2、在nginx-v2容器中,安装php环境

// 切换国内源 

sed -i 's/deb/#deb/g' /etc/apt/sources.list sed -i '$a\deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free'  /etc/apt/sources.list 

sed -i '$a\deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free'  /etc/apt/sources.list 

sed -i '$a\deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free'  /etc/apt/sources.list 

sed -i '$a\deb https://security.debian.org/debian-security bullseye-security main contrib non-free'  /etc/apt/sources.list 

// 更新 Debian 

apt update && apt -y upgrade

3、从sury/php的PPA存储库中安装PHP

apt-get install ca-certificates apt-transport-https software-properties-common -y 

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list  

apt install -y wget vim gpg 

wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -

4、添加新的源后,更新源

apt update

5、安装php

apt-get install php8.2-fpm -y 

// 查看php版本 

php -v 

// 查看php-fpm位置 

whereis php-fpm

第四步安装 PHP 扩展

输入 sudo apt install php8.2- 按下tab 按键,可以看到所有支持的php8.2扩展

1、安装常规扩展

// 常用php扩展 

apt install php8.2-{bcmath,xml,fpm,mysql,zip,intl,gd,cli,bz2,curl,mbstring,opcache,soap,cgi}

2、更新fpm用户权限

// 更新用户权限 

vim /etc/php/8.2/fpm/pool.d/www.conf

更新配置文件www.conf

user = www-data 

group = www-data 

更新为: 

user = nginx 

group = nginx 

listen.owner = www-data 

listen.group = www-data 

更新为: 

listen.owner = nginx 

listen.group = nginx

3、启动php-fpm

/usr/sbin/php-fpm8.2

启动/usr/sbin/php-fpm8.2 报错:

在/rum目录下新建一个php目录。

cd /run 

mkdir php 

/usr/sbin/php-fpm8.2

4、设置docker容器重启后自动启动php-fpm

vim /docker-entrypoint.sh

// 在 if [ "$1" = "nginx" -o "$1" = "nginx-debug" ]; then s上面加入 /usr/sbin/php-fpm8.2 --daemonize

配置 Nginx PHP

// 新建配置文件 

vim /etc/nginx/conf.d/test.conf

// 配置信息插入到配置文件 

server {    listen       80;    server_name  192.168.157.129;    root   /usr/share/nginx/html;    index  index.html index.htm index.php;    location / {    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/share/nginx/html;    }    location ~ \.php$ {    include /etc/nginx/fastcgi_params;    fastcgi_pass unix:/run/php/php8.2-fpm.sock;    fastcgi_index index.php;    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;   } }

//重启nginx 

nginx -s reload

进入网站目录,新建phpinfo文件

cd /usr/share/nginx/html 

vim phpinfo.php

访问http://192.168.157.129/phpinfo.php

5.安装Wordpress博客测试效果

wget https://wordpress.org/latest.zip unzip latest.zip 

sudo wget http://192.168.157.1/Share/wordpress-6.2.zip 

sudo unzip wordpress-6.2.zip

6.提交docker镜像

// 提交容器nginx-v2 为web镜像版本v1 

sudo docker commit nginx-v2 web:v1 

// 查看镜像列表 

sudo docker images 

// 停止并删除nginx-v2容器 

sudo docker stop nginx-v2 

sudo docker rm nginx-v2 

// 新建webser容器 

sudo docker run --name webser -p 80:80 -v /var/log/nginx:/var/log/nginx -v /mnt/public/html:/usr/share/nginx/html -v /mnt/public/conf:/etc/nginx/conf.d -d web:v1


Docker搭建WEB环境之 Nginx & PHP的评论 (共 条)

分享到微博请遵守国家法律