Skip to content

Latest commit

 

History

History
100 lines (90 loc) · 4.5 KB

deploy.md

File metadata and controls

100 lines (90 loc) · 4.5 KB

symfony 项目部署

  1. 必要条件
    • 熟悉简单vim编辑命令
    • 创建目录、解压命令
  2. 安装lnmp环境 参考lnmp安装步骤
  3. 配置ssh key
    • 生成ssh key 服务器上的 Git - 生成 SSH 公钥
    • 添加ssh key到git代码管理平台 登录git平台,仓库设置->管理部署密钥->添加部署密钥。标题一定要写清楚用途,密钥文本内容为cat ~/.ssh/id_rsa.pub内容
  4. clone代码
    • git clone 提示401无权限原因如下:
      • 用户名或者密码错误
      • ssh key不存在
      • git版本较低,需要升级高版本
  5. 安装项目依赖包 当composer install较慢时,考虑更换中国镜像
  6. 修改php.ini配置项
    • 当symfony执行预置脚本或者清除缓存时

        [Symfony\Component\Process\Exception\RuntimeException]
        The Process class relies on proc_open, which is not available on your PHP installation.
      

      代表此函数被禁用或者缺少相关扩展。

        Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 28672 bytes)
      

      代表php内存配置项配置空间较小。

    • 解除php.ini的函数禁用

        # php --ini
        Configuration File (php.ini) Path: /usr/local/php/etc
        Loaded Configuration File:         /usr/local/php/etc/php.ini  //php配置文件地址
        Scan for additional .ini files in: /usr/local/php/conf.d
        Additional .ini files parsed:      (none)
        # vim /usr/local/php/etc/php.ini
        // 找到disable_function配置项(vim搜索功能),移除对应的函数即可
        // 修改php内存限制配置,memory_limit = 2048M
      
    • 安装php扩展

  7. 新增更新脚本deploy.sh
    • 在项目目录的同级,新增shell脚本,例如项目目录为project_name1,新建文件与此目录同级。
    • deploy.sh内容,注意修改WEB_PATH变量为项目目录,第一行不能有空格。
    • 增加可执行的权限,chmod +x deploy.sh
    • 处理完后,以后更新代码,可直接执行./deploy.sh。更新时,注意是否有错误信息
  8. 修改Nginx配置项
    • 新增支持symfony的配置文件

        # cd /usr/local/nginx/conf
        # vim enable-php-pathinfo-sf.conf
          location / {
                  try_files $uri /app.php$is_args$args;
          }
          # PROD
          location ~^/app\.php(/|$)
          {
              fastcgi_pass  unix:/tmp/php-cgi.sock;
              fastcgi_index index.php;
              include fastcgi.conf;
              include pathinfo.conf;
              internal;
          }
          #DEV 
          location ~^/(app_dev|config)\.php(/|$) 
          { 
              fastcgi_pass  unix:/tmp/php-cgi.sock;
              fastcgi_index index.php;
              include fastcgi.conf;
              include pathinfo.conf;
          }
      
    • 修改nginx.conf

        # vim /usr/local/nginx/conf/nginx.conf
        ...
        server
        {
            ...
            index index.html index.htm index.php app.php; # 新增app.php
            root  /home/wwwroot/default; # 修改为项目目录+/web
            ...
            include enable-php-pathinfo-sf.conf; #把enable-php.conf改为enable-php-pathinfo.conf
            ...
      
    • 修改fastcgi.conf

        $ vim /usr/local/nginx/conf/fastcgi.conf
        #把原有配置为$document_root/ 改为 $document_root/../
        #fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 
        fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/../:/tmp/:/proc/";
      
    • 修改了配置文件一定要重启

  9. 常见问题
    • 项目异常怎么办? 看日志、看日志、看日志。重要的事情说三遍!比如nginx错误日志、php错误日志、symfony错误日志等等。

    • 清除生产环境的缓存

        php bin/console cache:clear --env=prod
      
    • 动态的查看项目日志

        #在项目目录下
        tail -f var/logs/prod.log #生产环境下日志
        tail -f var/log/dev.log #开发环境下日志