DNMP是基于docker部署的Nginx、PHP、MySQL開發環境
- 支持php5.6、php7.0、php7.1、php7.2、php7.3、php7.4、php8.0、php8.1同時運行并可直接項目指定PHP版本,已支持常見擴展,如bcmath、gd、opcache、pdo_mysql、zip、Redis、xdebug、swoole、MongoDB等,并且可通過對應的Dockerfile中按例添加自己所需要的擴展
- 支持MySQL5.6、MySQL5.7、MySQL8.0
- 安裝 Docker: 首先,確保你的系統上已經安裝了 Docker。如果沒有,可以從 Docker 官方網站 下載并安裝。
- 拉取 PHP 鏡像: 你需要拉取不同版本的 PHP 鏡像。例如,拉取 PHP 5.6 和 PHP 7.4 的鏡像:
docker pull php:5.6-fpm
docker pull php:7.4-fpm
5. 創建 PHP 容器: 創建并運行 PHP 5.6 和 PHP 7.4 的容器:
docker run -d --name php56 -v /path/to/your/code:/var/www/html -p 9000:9000 php:5.6-fpm
docker run -d --name php74 -v /path/to/your/code:/var/www/html -p 9001:9000 php:7.4-fpm
6. 配置 Nginx: 拉取并運行 Nginx 容器,并配置 Nginx 以支持多個 PHP 版本:
docker pull nginx
docker run -d --name nginx -p 80:80 -v /path/to/nginx/conf:/etc/nginx/conf.d -v /path/to/your/code:/var/www/html nginx
7. 配置 Nginx 虛擬主機: 在 Nginx 配置文件中設置虛擬主機,以便將請求分別轉發到不同的 PHP 容器。例如:
server {
listen 80;
server_name php56.local;
root /var/www/html;
location ~ \.php$ {
fastcgi_pass php56:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
server {
listen 80;
server_name php74.local;
root /var/www/html;
location ~ \.php$ {
fastcgi_pass php74:9001;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
7. 更新 Hosts 文件: 在本地機器上更新 hosts 文件,以便將域名解析到本地:
127.0.0.1 php56.local
127.0.0.1 php74.local
通過以上步驟,就可以在Docker上運行多外PHP版本,如果有任何問題可以在下方留言!