美文网首页
2018-11-01 Docker 搭建lnmp环境开发thin

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

作者: rub1cky | 来源:发表于2018-11-01 11:07 被阅读0次

    项目需要迁移, 容器化开发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的配置文件

    相关文章

      网友评论

          本文标题:2018-11-01 Docker 搭建lnmp环境开发thin

          本文链接:https://www.haomeiwen.com/subject/rzvtxqtx.html