docker 獨立搭建linux + php 隨筆

  參考了 https://www.jianshu.com/p/fcd0e542a6b2  dodos大佬的一些經驗php

1.首先,因爲nginx跟php的特性,使得兩者能夠單獨做爲獨立容器存在,因此爲了使html、php代碼都能運行,須要兩個容器都掛載同一個代碼項目的目錄html

docker run --name docker-phpfpm -p 9000:9000 -v /var/www/html:/usr/local/nginx/html -d php:5.6-fpm
docker run --name nginx -p 80:80 -v /var/www/html:/usr/local/nginx/html --link docker-phpfpm:docker-phpfpm -d nginx  (由於我使用的nginx是官方鏡像最新版,因此不須要在最後標註版本
2.修改nginx對應的default.conf,目錄在/etc/nginx/conf.d下,大致內容以下
 

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的時候掛載目錄,提升配置效率等

 

補坑 

docker run --name mysql -p 3306:3306 -v /root/bo/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -it mysql
docker run --name php7 -p 9000:9000 -v /var/www/html:/usr/local/nginx/html --link mysql:mysql -it php7
docker run --name nginx -p 80:80 -v /var/www/html:/usr/local/nginx/html --link php7:php7 -it nginx
大體語法結構:docker run --name 容器名稱 -p 端口映射 -v 掛載目錄 --link 連接容器 -it[命令模式] 鏡像名
相關文章
相關標籤/搜索