docker部署thinkphp 走过的坑总结

1.先下载 docker镜像 并且运行   

docker run -idt --privileged=true --restart always --name archivesmanagelnmp -p 80:80  -v /docker/php/nginx/enable-php.conf:/usr/local/nginx/conf/enable-php.conf  -v /docker/php/archivesmanage:/home/wwwroot/default duckll/lnmp

 注意:红色的字体的,docker基础部分,不做过多解释!

 enable-php.conf  这个文件是 nginx -> php配置文件  

刚开始没有 enable-php.conf 没有关系 先执行不是挂载方式的  ,然后通过docker拷贝命令 把 文件 拷贝到本地

docker run -idt --name webserver -p 80:80  duckll/lnmp

//这是拷贝 nginx.conf
docker cp webserver:/usr/local/nginx/conf/nginx.conf /docker/php/nginx/nginx.conf


//这里才是拷贝 enable-php.conf
docker cp webserver:/usr/local/nginx/conf/enable-php.conf /docker/php/nginx/enable-php.conf

为什么要挂载 enable-php.conf 因为后续要改到这个文件 如果不改的话 只能访问首页 其他的页面不能访问

把 enable-php.conf  里面的内容全部替换成这样的

  #error_page   404   /404.html;
        location /
            {
                index index.php;
                #ThinkPHP REWRITE支持
                if (!-e  $request_filename) {
                    rewrite ^/(.*)$ /index.php?s=$1 last;
                }
                #301 跳转设置
                if ($host = 'vc.cn') {
                        rewrite ^/(.*) http://www.vc.cn/$1 permanent;
                }
            
            }        
        location ~ [^/]\.php(/|$)
            {
                # comment try_files $uri =404; to enable pathinfo
                try_files $uri =404;
                fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                include fastcgi.conf;
                #include pathinfo.conf;
            }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }
        location ~ .*\.(js|css)?$
            {
                expires      12h;
            }
     

 

3.上传项目到 /docker/php/archivesmanage 目录下就好了

 

你可能感兴趣的:(部署,thinkphp,docker)