symfony部署

symfony2.x|3.x部署

  • 部署文档

  • 获取项目

     git clone  https://git.oschina.net/我的路径/项目路径.git
    
  • 添加修改parameters.yml

     相关配置写对、写全
    
  • 声明为生产环境

     vim /etc/profile
    
     # 最后添加一行
     export SYMFONY_ENV=prod
    
     ESC
     :wq
     source /etc/profile
    
  • 通过composer安装类库

     # 如果不是国内源则换源
     composer config repo.packagist composer https://packagist.phpcomposer.com
     cd 项目路径
     composer install --optimize-autoloader --no-dev
    
  • symfony2.X.X 为指定路径声明权限

     cd 项目路径
     setfacl    -m u:www:rwx ./app/cache/
     setfacl -d -m u:www:rwx ./app/cache/
     setfacl    -m u:www:rwx ./app/logs/
     setfacl -d -m u:www:rwx ./app/logs/
    
  • symfony3.X.X 为指定路径声明权限

     cd 项目路径
     setfacl    -m u:www:rwx -R ./var/cache/
     setfacl -d -m u:www:rwx -R ./var/cache/
     setfacl    -m u:www:rwx -R ./var/logs/
     setfacl -d -m u:www:rwx -R ./var/logs/
     setfacl    -m u:www:rwx -R ./var/sessions/
     setfacl -d -m u:www:rwx -R ./var/sessions/
    
  • 为项目中指定路径生成文件的代码创建路径并声明权限

     # 仅作为参考,实际路径以自己代码为准
     mkdir /www
     mkdir /www/common
     setfacl    -m u:www:rwx /www/common/
     setfacl -d -m u:www:rwx /www/common/
    
  • Nginx的配置

     以下为HTTP配置:
     server {
         #域名
         server_name localhost;
         root /项目路径/web;
    
         location / {
             # 尝试访问其他文件,回退到app.php
             try_files $uri /app.php$is_args$args;
         }
    
         # 开发环境
         location ~ ^/(app_dev|config)\.php(/|$) {
    
             #fastcgi_pass unix:/var/run/php5-fpm.sock;
             fastcgi_pass 127.0.0.1:9000;
             fastcgi_split_path_info ^(.+\.php)(/.*)$;
             include fastcgi_params;
    
             # 当你使用符号链接将文件连接到当前版本的应用程序
             # 时,你应该使用实际的路径,而不是PHP FPM路径。
             # 否则,PHP的opcache可能无法正确检测到你的PHP文
             # 件的变化(参考:https://github.com/zendtech/
             # ZendOptimizerPlus/issues/126)获取更多信息。
    
             fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
             fastcgi_param DOCUMENT_ROOT $realpath_root;
         }
    
         # 生产环境
         location ~ ^/app\.php(/|$) {
             #fastcgi_pass unix:/var/run/php5-fpm.sock;
             fastcgi_pass 127.0.0.1:9000;
             fastcgi_split_path_info ^(.+\.php)(/.*)$;
             include fastcgi_params;
    
             # 当你使用符号链接将文件连接到当前版本的应用程序
             # 时,你应该使用实际的路径,而不是PHP FPM路径。
             # 否则,PHP的opcache可能无法正确检测到你的PHP文
             # 件的变化(参考:https://github.com/zendtech/
             # ZendOptimizerPlus/issues/126)获取更多信息。
    
             fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
             fastcgi_param DOCUMENT_ROOT $realpath_root;
    
             # 阻止这些包含在前端URL中,这将返回404:
             # http://domain.tld/app.php/some-path
             # 删除允许uri使用这条配置:
    
             internal;
         }
    
         # 为所有不匹配php文件,向前端返回404页面,
         # 这可以防止用户访问不该被访问的php文件。
         location ~ \.php$ {
           return 404;
         }
    
         error_log /nginx安装路径/logs/error.log;
         access_log /nginx安装路径/logs/access.log;
     }
    
  • 实测可用配置

     server {
         listen       8080;
         server_name localhost;
         root 项目路径/web;
    
         location / {
             try_files $uri /app.php$is_args$args;
         }
    
         location ~ ^/app\.php(/|$) {
             fastcgi_pass 127.0.0.1:9000;
             fastcgi_split_path_info ^(.+\.php)(/.*)$;
             include fastcgi_params;
    
             fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
             fastcgi_param DOCUMENT_ROOT $realpath_root;
    
             internal;
         }
    
         location ~ \.php$ {
           return 404;
         }
     }
    

results matching ""

    No results matching ""