Docker Contos 搭建 PHP 環境

莫名私下裡發表於2019-12-26

Docker Contos 搭建 PHP 環境

  1. uname -r //CentOS 系統的核心版本高於 3.10 ,檢視本頁面的前提條件來驗證你的CentOS 版本是否支援 Docker
    • yum -y install docker-io //安裝docker
    • service d ocker start //啟動
  2. 映象加速 網易映象地址

    • vi /etc/docker/daemon.json //新增映象

    { "registry-mirrors": ["http://hub-mirror.c.163.com"] }

  3. 安裝 Nginx
  • docker pull nginx //拉取官方映象
  • docker images //檢視
  • docker run -p 80:80 -d --name mynginx -v /docker/www:/usr/share/nginx/www nginx //開啟nginx應用容器

-p 80:80:將容器的80埠對映到主機的80埠 -d 後臺執行(守護程式) --name mynginx:將容器命名為mynginx -v 將主機中當前目錄下的www掛載到容器的www目錄

  • docker ps -a //檢視容器啟動情況
    1. Docker 安裝 PHP
  • docker pull php:7.2-fpm //拉取官方PHP映象
  • docker images //檢視
  • docker run -p 9000:9000 -d --name myphp-fpm -v /docker/www:/usr/share/nginx/www php:7.1-fpm //開啟php-frm應用容器
  • docker ps -a //檢視容器啟動情況
  • docker inspect myphp-fpm | grep "IPAddress" //檢視ip資訊
    "SecondaryIPAddresses": null,
    "IPAddress": "172.17.0.3",
    "IPAddress": "172.17.0.3",
    [root@localhost ~]# docker exec -it mynginx bash //進入容器
    vi /etc/nginx/conf.d/default.conf //修改配置檔案
    然後使用ctrl + p + q退出容器,使用exit的話會讓容器停止。
  • docker cp mynginx:/etc/nginx/conf.d/default.conf ./default.conf
    在宿主機修改配置檔案的php部分,內容如下:

    server {
    listen       80;
    server_name  localhost;
    
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    
    location / {
        root   /usr/share/nginx/html;
        index index.php index.html index.htm;
    }
    
    #error_page  404              /404.html;
    
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           html;
        fastcgi_pass   172.17.0.3:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /usr/share/nginx/www$fastcgi_script_name;
        include        fastcgi_params;
    }
    
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
    }
  • docker cp ./default.conf mynginx:/etc/nginx/conf.d/default.conf
  • docker exec -it mynginx bash //進入容器中
  • root@3218b3ad4e47:/# service nginx reload //重新載入nginx配置檔案
  • echo "<?php echo phpinfo();" > index.php //寫phpinfo檔案測試

訪問成功

相關文章