여러 nginx 서버 블록을 구성할 수 없습니다.
최근에 라즈베리 파이3(라스비안 스트레치)에 nginx와 php7.0을 설치했는데 서버 구성 파일을 구성할 수 없었습니다.nginx와 php에 대한 정보는 다음과 같습니다.
$ sudo nginx -v
nginx version: nginx/1.10.3
$ sudo php -v
PHP 7.0.30-0+deb9u1 (cli) (built: Jun 14 2018 13:50:25) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.30-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies
서버 구성 파일은 다음과 같습니다.
/etc/nginx/messages-사용 가능/messages
server {
listen 80;
server_name example.com www.example.com;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
include global/restrictions.conf;
# Root
location / {
root /var/www/root/html;
index index.php index.htm index.html index.nginx-debian.html;
try_files $uri $uri/ =404;
# pass the PHP scripts to FastCGI server
include global/root.conf;
}
# WordPress
location /blog/ {
root /var/www/blog/html;
# pass the PHP scripts to FastCGI server
include global/wordpress.conf;
}
# DokuWiKi
location /wiki/ {
root /var/www/wiki/html;
index index.php index.htm index.html;
try_files $uri $uri/ =404;
# pass the PHP scripts to FastCGI server
include global/wiki.conf;
}
# NextCloud
# location /drive/ {
# root /var/www/drive/html;
# pass the PHP scripts to FastCGI server
# include global/.conf;
# }
}
(next cloud는 아직 구성되지 않았습니다.)
/etc/nginx/global/root.conf & /etc/nginx/global/wiki.conf (두 파일의 내용이 동일합니다.)
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
/etc/nginx/global/wordpress.conf
# WordPress single site rules. Designed to be included in any
# server {} block.
# This order might seem weird - this is attempted to match last if
# rules below fail. http://wiki.nginx.org/HttpCoreModule
location /blog/ {
try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Directives to send expires headers and turn off 404 error
# logging.
location ~*
^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$
{
access_log off; log_not_found off; expires max;
}
# Uncomment one of the lines below for the appropriate caching
#plugin (if used). include global/wordpress-wp-super-cache.conf;
#include global/wordpress-w3-total-cache.conf;
# Pass all .php files onto a php-fpm/php-fcgi server.
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
# This is a robust solution for path info security issue and
# works with "cgi.fix_pathinfo = 1" in /etc/php.ini (default)
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
# fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
# Deny all attempts to access hidden files such as .htaccess,
# .htpasswd, .DS_Store (Mac). Keep logging the requests to parse
# later (or to pass to firewall utilities such as fail2ban)
location ~ /\. {
deny all;
}
# Deny access to any files with a .php extension in the uploads
# directory Works in sub-directory installs and also in multisite
# network Keep logging the requests to parse later (or to pass to
# firewall utilities such as fail2ban)
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
이렇게 구성한 이유는 다음과 같습니다.
A. 각 서브디렉토리마다 다른 설정 적용 가능 (다음 클라우드에 wordpress' 404페이지를 표시하고 싶지 않습니다)
B. global configuration.conf를 포함하여 중복되는 구성 파일만 포함하면 됩니다.
문제는 다음과 같습니다.
A. 서버는 각 하위 디렉터리에 파일도 표시하지 않습니다.루트에 nginx 웰컴 페이지가 표시되며(제가 제거했습니다) 하위 디렉터리 아래에 파일이 표시되지 않습니다(예: "/var/www/whosts/hosts"에 있는 "example.com/wiki "은 404 페이지만 표시합니다).
B. php가 제대로 구성되지 않은 것 같습니다.
미리 감사드립니다.
php-fpm을 설치해야 문제가 해결됩니다.
php-fpm 버전 7.0 설치 명령
sudo apt-get install php7.0-fpm
언급URL : https://stackoverflow.com/questions/51471330/i-cant-configure-multiple-nginx-server-blocks
'programing' 카테고리의 다른 글
SQL을 사용하여 JSON에서 매치 수를 세고 있습니까? (0) | 2023.09.14 |
---|---|
오류 2026:tls/ssl 오류:Sslv3 경고 핸드셰이크 실패 (0) | 2023.09.14 |
Base64 문자열을 비트맵 이미지로 변환하여 이미지 보기에 표시하는 방법은 무엇입니까? (0) | 2023.09.14 |
동일한 글꼴에 대해 여러 글꼴 파일을 추가하는 방법? (0) | 2023.09.14 |
Windows Ubuntu의 python에 패턴 모듈을 설치할 수 없습니다. (0) | 2023.09.14 |