Конфигурация:
macOS Mojave
Debian 9.9.0 64bits on virtualbox 6.0.8, on port 192.168.56.50
php fpm 7.2 on debian
nginx/stable,now 1.16.0-1~stretch on debian
Nginx и php fpm имеют www-данные в качестве пользователя. Диры:
lrwxrwxrwx www-data www-data /var/www/all -> /media/sf_web
drwxrwx--- www-data www-data /var/www
Конфиг нгинкс: /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name _;
charset utf-8;
location / {
root /var/www/all/;
try_files $uri /index.html index.php;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
Когда я делаю эту команду: sudo ls -l /var/www/all/, я получаю:
- drwxrwx--- 1 root vboxsf temp_converter
- drwxrwx--- 1 root vboxsf myproject
Я хочу показать папки проектов в /media/sf_web с помощью Firefox (или другого веб-браузера), но это не работает. Когда я пытаюсь подключиться к этому ip, nginx показывает «Файл не найден», а в журнале ошибок я вижу «Первичный скрипт неизвестен».
э.дж :
🤔 А знаете ли вы, что...
PHP позволяет встраивать код в HTML-страницы с использованием специальных тегов <?php ?>.
Вы не установили глобальный оператор root
, поэтому Nginx будет искать файлы PHP в корневом каталоге по умолчанию. Вам нужно переместить оператор root
из блока location /
в область блока server
.
Утверждение try_files
совершенно неверно.
Пытаться:
root /var/www/all/;
location / {
try_files $uri $uri/ /index.php;
}
...
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $request_filename;
}