歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Symfony2在Nginx下的配置教程

該配置以example.com作為域名,請根據自己的實際情況進行替換。

提醒 此配置僅允許web目錄下app.php和app_dev.php兩個入口文件以PHP腳本方式運行,web目錄下存在的其他PHP文件(比如另外定義了其他的Symfony2入口文件,或者其他PHP程序也安裝在該目錄下)如果被訪問,將被用戶下載。

server {
  listen 80;
   
  server_name example.com; # 域名
  root /var/www/symfony2/web; # 站點根目錄
   
  error_log /var/log/nginx/symfony2.error.log;
  access_log /var/log/nginx/symfony2.access.log;
   
  # 如果URL中包含app.php,則轉發為偽靜態格式
  rewrite ^/app\.php/?(.*)$ /$1 permanent;
   
  location / {
    index app.php;
    try_files $uri @rewriteapp;
  }
   
  location @rewriteapp {
    rewrite ^(.*)$ /app.php/$1 last;
  }
   
  # 此段為將PHP請求轉交給FastCGI服務,PHP-FPM是非常流行的選項。
  location ~ ^/(app|app_dev)\.php(/|$) {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param  HTTPS              off;
  }
}

以下為HTTPS配置:

server {
  listen 443;
   
  server_name example.com;
  root /var/www/symfony2/web;
   
  ssl on;
  ssl_certificate      /etc/ssl/certs/symfony2.crt;
  ssl_certificate_key  /etc/ssl/private/symfony2.key;
   
  error_log /var/log/nginx/symfony2.error.log;
  access_log /var/log/nginx/symfony2.access.log;
   
  rewrite ^/app\.php/?(.*)$ /$1 permanent;
   
  location / {
    index app.php;
    try_files $uri @rewriteapp;
  }
   
  location @rewriteapp {
    rewrite ^(.*)$ /app.php/$1 last;
  }
   
  location ~ ^/(app|app_dev)\.php(/|$) {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param  HTTPS              on;
  }
}


 

Copyright © Linux教程網 All Rights Reserved