2017-09-14 13 views
0

Laravel 및 Phpbb 모두에서 작동하는 nginx config가 필요합니다.phpbb 및 laravel에 대한 nginx 설정

내가 설정 내 디지털 바다 서버로 만들어 laravel 사용하고, 그것은이의 nginx의 설정 생성 : Laravel의 index.php를 전면 컨트롤러가 사는 곳

# 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/*; 

해당/공용 폴더는 ...

또한 공용 폴더에, 나는 가지고 에서의 phpBB의 설치 -/공공/보드

내가 포럼을 업그레이드하고, 그리고 같은 난에있는 phpBB를 설치, 럼해야합니다

를 다음 호출

로컬 호스트/보드/설치,

:

로컬 호스트/보드// app.php/업데이트

위의 URL은 다음 404 오류를주고 설치합니다.

설치 프로그램을 실행하기 위해 Nginx를 올바르게 구성해야하기 때문에이 부분을 읽었습니다.

샘플 Nginx 설정 for phpbb is listed here.

그래서 어떻게 든 이들을 병합해야하지만 지금까지 내 시도는 실패했습니다.

내가 추가하는 시도 : 기존 laravel의 nginx를 파일에

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

하지만 실패합니다. 나는 그것을 nginx 설정의 올바른 장소에 넣어야한다는 것을 알고 있지만 여기에 약간 짐작 하듯이 아마도 다른 것을 내려다 볼까 걱정됩니다 ...

아무도 도와 줄 수 있습니까?

답변

0

예제 config을 기반으로 (/ 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는 내부에 넣으려고하면 불평 할 것입니다.

귀하의 디렉토리와 일치하는 경로를 수정하십시오.