看完 docker 官方教程,想搭個本地 php 開發環境,可搜了一圈,也沒找到特別滿意的文章,順手總結一個。php
MacBook Pro,OSX 10.11.5html
解釋執行 php 須要 php-fpm,先讓它運行起來:nginx
docker run --name dream-php -d \ -v ~/Workspace/tmp/www:/var/www/html:ro \ php:7.1-fpm
說明:docker
本地存儲路徑:bash
~/Workspace/tmp/docker/nginx/conf.d/default.conf
配置文件內容:網絡
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; include fastcgi_params; } }
說明:php-fpm
docker run --name dream-nginx -p 80:80 -d \ -v ~/Workspace/tmp/www:/usr/share/nginx/html:ro \ -v ~/Workspace/tmp/docker/nginx/conf.d:/etc/nginx/conf.d:ro \ --link dream-php:php \ nginx
說明:測試
在 ~/Workspace/tmp/www 下放兩個文件:spa
index.htmlcode
<html><body><h1>Hello World</h1></body></html>
phpinfo.php
<?php phpinfo();
接下來看結果吧:
若是看到 Hello World 和熟悉的 phpinfo,那麼大功告成。
訪問 index.html 時,nginx 讀的是 /usr/share/nginx/html/index.html,這個路徑經 dream.nginx 轉換變成本地的 ~/Workspace/tmp/www/index.html。
訪問 phpinfo.php 時,nginx 讓 php-frm 執行 /var/www/html/phpinfo.php,這個路徑經 dream.php 轉換成 ~/Workspace/tmp/www/phpinfo.php。
怎樣觀察容器內文件系統:
docker exec -it dream-nginx bash