Я пытаюсь использовать подпапку для размещения веб-приложения на моем сервере. Например: example.com/netdata ===> Мониторинг Netdata example.com/passbolt ====> Менеджер паролей и т. Д.
Для работы я использовал эту конфигурацию:
#Passbolt
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
allow all;
root /var/www/html/;
server_name passbolt.local;
location /passbolt/ {
alias /var/www/html/passbolt/app/webroot/;
try_files $uri $uri/ /index.php?$args;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
}
Но я всегда получал ошибку 403 запрета, поэтому я проверял разрешение на каждый файл, но все они принадлежат www-data, который является пользователем моего сервера nginx ..
Я использую Debian 8.
Кто-нибудь может мне помочь?
РЕДАКТИРОВАТЬ 1: в журнале я получил эту ошибку:
2017/04/24 16:07:08 [error] 28301#0: *2 directory index of "/var/www/html/passbolt/app/webroot/" is forbidden, client: 192.168.122.1, server: passbolt.local, request: "GET /passbolt/ HTTP/1.1", host: "passbolt.local"
Добавь это:
location / {
index index.htm index.html index.php index.py index.cgi index.sh;
}
Хорошо, я нашел решение. Мои приложения работают с cakephp, и с этим фреймворком вам нужно позаботиться о перезаписи URL-адресов и других подобных вещах.
Вот моя конфигурация в Nginx, чтобы все заработало:
#Passbolt
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
root /var/www/html/;
server_name passbolt.local;
location /passbolt {
if (-f $request_filename) {
break;
}
# Avoid recursivity
if ($request_uri ~ /webroot/index.php) {
break;
}
rewrite ^/passbolt$ /passbolt/ permanent;
rewrite ^/passbolt/app/webroot/(.*) /passbolt/app/webroot/index.php?url=$1 last;
rewrite ^/passbolt/(.*)$ /passbolt/app/webroot/$1 last;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
}
Большое спасибо за помощь!