Docker搭建php开发环境
1. 第一步拉去需要的镜像(根据个人需要, 获取对应版本)
2. 创建自己的docker网络, 默认桥接模式
➜ ~ docker network create mynet 32c681d46c036dd9450e45f8930d7520f47f9fbb2df83c6348752d56683bcee5 ➜ ~ docker network ls NETWORK ID NAME DRIVER SCOPE 4a45750545f0 bridge bridge local 31d09483ca15 host host local 32c681d46c03 mynet bridge local bacb36f06567 none null local
3. 在本地创建对应需要的文件夹, 方便后期修改对应配置文件
4. 安装mysql
docker run --name mysql --restart=always ( Docker 重启时容器也跟随启动) --privileged=true (Docker 为容易内的 root 用户赋予真正的 root 权限,不然会提示 log 目录权限不足) -p 3306:3306 -v /docker/mysql/conf:/etc/mysql/conf.d (将配置目录挂载到容器内的配置目录) -v /docker/mysql/data:/var/lib/mysql (将数据存储目录挂载到容器内的出局存储目录) -v /docker/mysql/log:/var/log/mysql (将日志目录挂载到容器内的日志目录) -e MYSQL_ROOT_PASSWORD=root --net mynet (自己创建的docker网络) -d mysql
5. 安装nginx
docker run --name nginx -p 80:80 -d -v /Desktop/Docker/lnmp/nginx/conf:/etc/nginx/conf.d -v /Desktop/Docker/lnmp/nginx/www:/usr/share/nginx/html -v /Desktop/Docker/lnmp/nginx/log:/var/log/nginx --net mynet nginx
安装完之后 打开浏览器 http://localhost:端口号 测试
6. 安装 php
1. 先创建一个php容器用于cp配置文件
docker cp php-fpm:/usr/local/etc/php-fpm.d/www.conf docker/php/conf/www.conf
docker cp php-fpm:/usr/local/etc/php/php.ini-production docker/php/conf/php.ini
2. 删除刚才创建的 php 容器
3. 重新创建并挂在
docker run --name php74 -p 9000:9000 -d -v /Docker/lnmp/php/www:/var/www/html -v /Docker/lnmp/php/conf/www.conf:/usr/local/etc/php-fpm.d/www.conf -v /Docker/lnmp/php/conf/php.ini:/usr/local/etc/php/php.ini --net mynet php:7.4.33-fpm
7. nginx配置文件
/docker/nginx/conf/default.conf 创建default.conf文件
server { listen 80; server_name localhost; root /var/www/html; charset utf-8; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log; location / { index index.html index.htm index.php; try_files $uri $uri/ /index.php?$query_string; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { fastcgi_index index.php; #php-fpm容器名:端口号 fastcgi_pass php-fpm:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
8. 新建phpinfo测试
在/docker/php/www下创建index.php
<?php
phpinfo();
打开localhost查看是否显示正常