2017-09-14 29 views
0

LaravelとPhpbbの両方で動作するnginx設定が必要です。phpbbとlaravelのnginx設定

私はセットアップに私のデジタル海のサーバーをlaravel鍛造を使用している、そしてそれは、このnginxの設定ファイルを作成:

# FORGE CONFIG (DOT NOT REMOVE!) 
include forge-conf/djembefola.org/before/*; 

server { 
    listen 80; 
    listen [::]:80; 
    server_name djembefola.org; 
    root /home/forge/djembefola.org/public; 

    # FORGE SSL (DO NOT REMOVE!) 
    # ssl_certificate; 
    # ssl_certificate_key; 

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:$ 
    ssl_prefer_server_ciphers on; 
    ssl_dhparam /etc/nginx/dhparams.pem; 

    add_header X-Frame-Options "SAMEORIGIN"; 
    add_header X-XSS-Protection "1; mode=block"; 
    add_header X-Content-Type-Options "nosniff"; 

    index index.html index.htm index.php; 

    charset utf-8; 

    # FORGE CONFIG (DOT NOT REMOVE!) 
    include forge-conf/djembefola.org/server/*; 

    location/{ 
     try_files $uri $uri/ /index.php?$query_string; 
    } 

    location = /favicon.ico { access_log off; log_not_found off; } 
    location = /robots.txt { access_log off; log_not_found off; } 

    access_log off; 
    error_log /var/log/nginx/djembefola.org-error.log error; 

    error_page 404 /index.php; 

    location ~ \.php$ { 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
     fastcgi_index index.php; 
     include fastcgi_params; 
    } 

    location ~ /\.(?!well-known).* { 
     deny all; 
    } 
} 

# FORGE CONFIG (DOT NOT REMOVE!) 
include forge-conf/djembefola.org/after/*; 

Laravelのindex.phpのフロントコントローラが住んでいる場所/パブリックフォルダがある...

はまた、パブリックフォルダに、私が持っていると でphpBBののインストール - /公共/ボード

私はフォーラムをアップグレードしています、そのように私が存在するphpbbのインストーラ、ラム酒する必要があります。

ローカルホスト/ボード/インストールし、その後呼び出し

ローカルホスト/ボード/インストール/ app.php /更新

上記URLは、次に404エラーを与えています。

これはインストーラを実行するためにNginxを正しく設定する必要があるためです。

サンプルNginxの設定for phpbb is listed here

私はこれらを何とかマージする必要がありますが、これまでのところ私の試みは失敗しました。

私が追加してみました:

location /board/ { 
    rewrite ^(.*)$ /app.php/$1 last; 
} 

を既存のlaravelのnginxのファイルに、それは失敗します。私はそれをnginx設定の適切な場所に置く必要があることを認識していますが、おそらく私はここでちょっと推測しているので、私はおそらく他のものを見落としてしまう恐れがあります...

誰でも助けてください?

答えて

0

例の設定に基づいて、ブロックラップ内に必要なルールをネストすることができます(/ install /ディレクトリで行ったように)。例:

location /board/ { 
    try_files $uri $uri/ @rewriteapp;  

    # Deny access to internal phpbb files. 
    location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb|store|vendor) { 
     deny all; 
     # deny was ignored before 0.8.40 for connections over IPv6. 
     # Use internal directive to prohibit access on older versions. 
     internal; 
    } 

    # Pass the php scripts to fastcgi server specified in upstream declaration. 
    location ~ \.php(/|$) { 
     # Unmodified fastcgi_params from nginx distribution. 
     include fastcgi_params; 
     # Necessary for php. 
     fastcgi_split_path_info ^(.+\.php)(/.*)$; 
     fastcgi_param PATH_INFO $fastcgi_path_info; 
     fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; 
     fastcgi_param DOCUMENT_ROOT $realpath_root; 
     try_files $uri $uri/ /board/app.php$is_args$args; 
     fastcgi_pass php; 
    } 
} 

location @rewriteapp { 
    rewrite ^(.*)$ /app.php/$1 last; 
} 

@rewriteappはブロックラップの外側にあることに注意してください。あなたがそれを置くことを試みるならば、Nginxは文句を言うだろう。

あなたのディレクトリに一致するようにパスを修正してください。