docker部署PHP项目
 
                    docker通过文件映射方式部署PHP项目
自从用了docker进行项目部署后,发现越来越香,前面有跟大家分享过如何通过将项目跟环境进行打包的方式部署php项目,今天跟大家分享另一种部署方式,直接将PHP项目映射到PHP容器,同时将nginx跟php进行关联的方式进行部署,这种部署方式就少了构建镜像的步骤。
这里我们PHP镜像就用之前分享过自己构建的镜像,大家可以看这一篇Docker构建PHP镜像,假设服务器PHP项目是在/www/wwwroot目录下,如果我们的PHP项目有定时调度任务,我这里用到的是laravel项目,项目刚好需要用到定时调度,我们可以创建一份定时调度配置映射到PHP容器里,因为我之前构建的PHP镜像默认是开启了crontab功能。
我们在服务器home目录下创建一个php目录用来存放我们的启动文件,我们先创建一份文件名为crontab的文件,存放我们定时调度的任务,配置如下
*/30 * * * * /usr/local/bin/php /www/wwwroot/personSpaces/artisan schedule:run */30 * * * * /usr/local/bin/php /www/wwwroot/personBlog/artisan schedule:run */30 * * * * /usr/local/bin/php /www/wwwroot/onedrive/one.php cache:refresh
这里我配置了三个定时调度任务。
我们可以创建我们的启动文件(docker-compose.yml)文件,配置如下
version: "3" services: php: image: hongzhuangxian/php-fpm7.3-diy container_name: docker_php_compose restart: always ports: - 9101:9000 volumes: - /www/wwwroot:/www/wwwroot - /home/php/crontab:/var/spool/cron/crontabs/root
这里我们将网站目录映射到容器的/www/wwwroot目录,同时将定时调度配置映射到容器/var/spool/cron/crontabs/root目录下,然后我们输入以下命令启动
docker-compose up -d
最后我们配置Nginx配置,假设服务器内网ip是127.0.1.1,连接PHP容器可以用
127.0.1.1:9101
配置如下
server {
    listen       80;
    server_name  personSpace.test.com;
    #charset koi8-r;
   
    location / {
       root   /var/www/html/personSpace/public;
       index  index.php index.html index.htm;
       # 如果没有以下4行,laravel将只能访问首页,其他页面都是404
       try_files $uri $uri/ /index.php?$query_string;
       if (!-e $request_filename){  
           rewrite ^/(.*) /index.php last;  
       }
       # 如果没有以上4行,laravel将只能访问首页,其他页面都是404
    }
    #
    location ~ \.php$ {
        root           /var/www/html/personSpaces/public;
        index          index.php index.html;
        # 坑在这里,需将原有的127.0.0.1:9000替换成phpfpm:9000
        fastcgi_pass   127.0.1.1:9101;      
        # 坑在这里,需将原有的127.0.0.1:9000替换成phpfpm:9000
        fastcgi_index  index.php;
        # 下面这行也改了  中间的$document_root
        fastcgi_param  SCRIPT_FILENAME $document_root$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;
    #}
}大家可以根据自己服务器的内网ip,自行替换127.0.1.1,配置完成之后,记得重载nginx配置。
这样我们就成功的通过映射方式部署PHP项目。
 
                                             
                                             
                                            
0条评论