php服务docker化,docker化你的PHP应用环境Nginx PHP-FPM
文章目錄
[隱藏]
開始之前
配置Nginx
配置PHP
開始之前
在開始之前,我們假設你對Docker使用已經有了一些經驗。本文嘗試使用Docker官方存儲庫來運行一個簡單的PHP應用程序,環境是Nginx和PHP。首先第一件事當然是安裝Docker(如果你還沒安裝)。第二獲取Docker Compose。
配置Nginx
我們從配置Web服務器開始,這里我們使用Docker官方的Nginx鏡像。既然我們準備使用Docker Compose,我們接下來先創建docker-compose.yml文件,其實docker nginx的80端口映射到宿主機的8080端口:
web:
image: nginx:latest
ports:
– "8080:80"
現在我們運行:
docker-compose up
現在我們應該通過ip:8080會得到nginx的默認頁面了。
現在nginx是啟動了,讓我們再來添加一些配置。首先更新docker-compose.yml使它掛載到一個本地目錄。我們使用目錄code。
web:
image: nginx:latest
ports:
– "8080:80"
volumes:
– ./code:/code
下一步我們創建一個虛擬機配置文件site.conf,設置其根目錄為/code,把該文件放置到與docker-compose.yml同級目錄。
server {
index index.html;
server_name php-docker.local;
error_log? /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /code;
}
為了讓這個虛擬機配置生效,我們還需要再次更改docker-compose.yml文件:
web:
image: nginx:latest
ports:
– "8080:80"
volumes:
– ./code:/code
– ./site.conf:/etc/nginx/conf.d/site.conf
此次更新是把本地的site.conf掛載docker nginx里的/etc/nginx/conf.d/site.conf,這樣這個配置文件就被添加到docker nginx里了。下面我們執行這個命令生效它:
docker-compose up
配置PHP
現在我們已經把nginx配置好了,接下來配置PHP。首先是拉取官方的PHP7-FPM鏡像,并鏈接到Nginx容器,docker-compose.yml如下:
web:
image: nginx:latest
ports:
– "8080:80"
volumes:
– ./code:/code
– ./site.conf:/etc/nginx/conf.d/site.conf
links:
– php
php:
image: php:7-fpm
下一步是配置nginx使用php-fpm容器來解析php文件。更新后的site.conf如下:
server {
index index.php index.html;
server_name php-docker.local;
error_log? /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /code;
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
為了測試,讓我們在./code目錄新建一個index.php,內容如下:
phpinfo();
?>
然后通過ip:8080打開,但出現File not found錯誤。這是因為PHP容器找不到此文件,我們也需要像nginx一樣掛載code目錄,更新docker-compose.yml文件如下:
web:
image: nginx:latest
ports:
– "8080:80"
volumes:
– ./code:/code
– ./site.conf:/etc/nginx/conf.d/site.conf
links:
– php
php:
image: php:7-fpm
volumes:
– ./code:/code
最后,啟動容器:
docker-compose up
我們將會看到正常的phpinfo頁面
docker化你的PHP應用環境Nginx PHP-FPM
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的php服务docker化,docker化你的PHP应用环境Nginx PHP-FPM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java调用gbase存储过程,GBas
- 下一篇: android r.java 原理,深入