ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[info] docker部署lnmp * **部署Nginx:** <span style="color:red;">**注:**</span> 修改了nginx配置文件需要重启 docker 容器:`docker restart 容器id/容器名` 1. 下载 nginx1.18 ``` docker pull nginx:1.18 ``` ![](https://img.kancloud.cn/13/56/13567c92cdb590626d8f36a4462502f6_950x133.png) 2. 运行容器 ``` # 运行一个没有绑定nginx配置的容器 # 将主机中项目的目录www挂载到容器的/www docker run -itd --name nginx -p 80:80 -v /home/nginx/html:/usr/share/nginx/html nginx:1.18 # 从容器拷贝配置文件到宿主机 mkdir -p /home/nginx/conf docker cp nginx:/etc/nginx/conf.d/default.conf /home/nginx/conf/default.conf # 删除容器 docker stop nginx && docker rm nginx # 启动带配置的容器 docker run -itd --name nginx -p 80:80 -v /home/nginx/html:/usr/share/nginx/html -v /home/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf nginx:1.18 ``` ![](https://img.kancloud.cn/f1/98/f1985a5fa90dbefc0840ee495bc31d85_1147x210.png) * **部署PHP:** <span style="color:red;">**注:**</span> 修改了php配置文件需要重启 docker 容器:`docker restart 容器id/容器名` 1. 下载 php.7.4 ``` docker pull php7.4:fpm ``` ![](https://img.kancloud.cn/5a/ae/5aaea20112513f0b6c4cc25f5bbb4548_958x154.png) 2. 运行容器 ```cnosole docker run -d -p 9000:9000 --name php-fpm php:7.4-fpm ``` ![](https://img.kancloud.cn/7b/5a/7b5a5d5730a3fa0a5f1076b6dfcdfdf4_1135x223.png) 3. 复制配置文件 ```cnosole # 复制www.conf到本地 /home/php/php-fpm/conf中 mkdir -p /home/php/conf docker cp php-fpm:/usr/local/etc/php-fpm.d/www.conf /home/php/php-fpm/conf/www.conf ``` 4. 容器操作 ```cnosole # 进入到正在运行的php-fpm容器中 docker exec -it php-fpm /bin/bash # cd 到php压缩包下 cd /usr/src && ls # 解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。 xz -d php.tar.xz tar xvf php.tar # 回到宿主机 将 php.ini 配置复制出来 docker cp php-fpm:/usr/src/php-7.4.27/php.ini-production /home/php/php-fpm/conf/php.ini # 在本地服务器修改 php.ini 的内容,设置cgi.fix_pathinfo=0(要先删除前面的;注释符) cgi.fix_pathinfo=0 ``` 5. 停止删除重新启动容器 ``` # 将主机中项目的目录www挂载到容器的/www # --link 与 mysql 容器互联 # 注意:要保证配置文件 php.ini 和 www.conf 没有错误,否则会无法启动容器。 docker stop php-fpm && docker rm php-fpm docker run -d -p 9000:9000 -v /home/nginx/html:/usr/share/nginx/html -v /home/php/php-fpm/logs:/phplogs -v /home/php/php-fpm/conf/php.ini:/usr/src/php-7.4.27/php.ini --name php-fpm -v /home/php/php-fpm/conf/www.conf:/usr/local/etc/php-fpm.d/www.conf --link mysql:mysql php:7.4-fpm ``` * **部署MySQL:** 1. 下载 mysql5.7 ``` docker pull mysql:5.7 ``` ![](https://img.kancloud.cn/cd/92/cd92d5903710dbc8fa3e94a06c586512_954x122.png) 2. 运行容器 ``` docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 ``` ![](https://img.kancloud.cn/6e/a3/6ea3bf4a249873db3a27742cf3fbcabf_1135x240.png) 3. 从容器拷贝配置文件到宿主机 ``` # 不支持 * 使用 . 表示所有文件 docker cp mysql:/etc/mysql/. /home/mysql/conf/ ``` 4. 测试连接 ![](https://img.kancloud.cn/9a/76/9a76981fc5c614d456ab0150b9866259_695x823.png)