參考了 https://www.jianshu.com/p/fcd0e542a6b2 dodos大佬的一些經驗php
1.首先,因爲nginx跟php的特性,使得兩者能夠單獨做爲獨立容器存在,因此爲了使html、php代碼都能運行,須要兩個容器都掛載同一個代碼項目的目錄html
server {
listen 80;
server_name xxx;mysql
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;nginx
location / {
root /usr/local/nginx/html; //由於掛載的代碼目錄是這裏,因此nginx的配置文件也要指向這裏
index index.html index.htm;
}sql
#error_page 404 /404.html;docker
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html; //由於掛載的代碼目錄是這裏,因此nginx的配置文件也要指向這裏
}vim
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}php7
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass docker-phpfpm:9000; //docker-phpfpm是鏈接的php容器名,即命令中--link 對應的容器名
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; //由於phpfpm容器掛載的代碼目錄是這裏,因此指向的php目錄也必須是這個目錄
include fastcgi_params;
}測試
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}spa
其他的東西由於是測試搭建環境,並無開啓,後續考慮進階
3.在宿主機上修改/var/www/html目錄的文件,添加一個index.php , 內容只用一個 phpinfo();
請求域名 /index.php,能夠正常請求
到此基本上基本的nginx + php的獨立容器就搭建完成了
補充 :本身給本身挖了個坑,沒有掛載nginx配置文件目錄及php的目錄,致使只能在docker裏修改,就必須在docker中安裝vim等,須要之後建立docker的時候掛載目錄,提升配置效率等
補坑