2018-11-01 Docker 搭建lnmp环境开发thin

2018-11-01  本文已影响0人  rub1cky

项目需要迁移, 容器化开发tp项目。

1.下载需要的镜像文件

下载的地方很多,daocloud aliyun等等,自行百度

2. 根据镜像运行容器, 其实可以通过docker-compose 来做,这里分几步做


基础命令: -v 挂载本地目录, -p端口印射 ,--link 容器连接

1). 创建数据库容器

docker run -p 3309:3306 --name devmysql -d -v /Volumes/mac/UsersDoc/vol/workstation/data/devwygx:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=3 aa5

2). php-fpm容器创建,需要连接mysql数据库

docker run -d -v /Volumes/mac/UsersDoc/vol/workstation/www/thinkphp_manage:/var/www/html -p 9000:9000 --link devmysql:mysql --name php-fpm b75

--link输入之后可以通过

docker exec php-fpm env

会有如下环境参数

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=b7846784e971
MYSQL_PORT=tcp://172.17.0.2:3306
MYSQL_PORT_3306_TCP=tcp://172.17.0.2:3306
MYSQL_PORT_3306_TCP_ADDR=172.17.0.2
MYSQL_PORT_3306_TCP_PORT=3306
MYSQL_PORT_3306_TCP_PROTO=tcp
MYSQL_NAME=/php-fpm/mysql
MYSQL_ENV_MYSQL_ROOT_PASSWORD=3
MYSQL_ENV_MYSQL_MAJOR=5.7
MYSQL_ENV_MYSQL_VERSION=5.7.4-m14
PHP_INI_DIR=/usr/local/etc/php
PHP_EXTRA_CONFIGURE_ARGS=--enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data
GPG_KEYS=1A4E8B7277C42E53DBA9C7B9BCAA30EA9C0D5763
PHP_VERSION=7.0.3
PHP_FILENAME=php-7.0.3.tar.xz
PHP_SHA256=3af2b62617a0e46214500fc3e7f4a421067224913070844d3665d6cc925a1cca
HOME=/root

3)nginx 容器搭建,连接php-fpm解析php文件

 docker run --name thinkphp -d -v /Volumes/mac/UsersDoc/vol/workstation/www/thinkphp_manage:/var/www/html -P --link php-fpm:php-fpm c5c

-P 随机端口印射
4)更改nginx配置文件

docker cp thinkphp:/etc/nginx/conf.d/default.conf default.conf 

复制nginx配置文件到当前目录下,
更改配置文件

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    
    location / { # /root 必须有,我在这卡很久
        root    /var/www/html/public; # 挂载到需要访问的目录
        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           /var/www/html;
        fastcgi_pass   php-fpm:9000; # 很重要, 这里需要改到链接的php-fpm的印射名字或者端口
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html/public$fastcgi_script_name; # document_root 可能不生效,手动改下
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

directory index of "/var/www/html/" is forbidden

检查nginx的配置文件 ,检查location/ 或者是文件权限

Primary script unknown" while reading response header from upstream

检查fastcgi部分配置
尤其是php-fpm的端口和$document_root的配置文件

上一篇下一篇

猜你喜欢

热点阅读