Я установил Nginx, php-fpm, mysql и phpmyadmin ..
Когда я набираю myserver.com, я вижу «Добро пожаловать в nginx!».
Но когда я набираю myserver.com/phpmyadmin, я получаю: «Входной файл не указан». Я знаю, что это, вероятно, проблема с путем, но я не могу найти где ...: S
Файл конфигурации:
/ и т.д. / nginx / сайты-доступные / по умолчанию
server {
listen 80; ## listen for ipv4; this line is default and implied
listen [::]:80 default_server ipv6only=on; ## listen for ipv6
root /usr/share/nginx/www;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name _;
location / {
try_files $uri $uri/ /index.html;
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
/etc/nginx/sites-availables/www.myserver.com.vhost
server {
listen 80;
server_name www.server.com server.com;
root /usr/share/nginx/www.akdom.net;
if ($http_host != "www.akdom.net") {
rewrite ^ http://www.akdom.net$request_uri permanent;
}
index index.php index.html;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Make sure files with the following extensions do not get loaded by nginx because nginx would display the s$
location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..$
deny all;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
expires max;
log_not_found off;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}
}
В / usr / share / У меня есть phpmyadmin /, nginx / www / и nginx / www.exemple.com /
Как исправить эту ошибку? Что вызывает это?
Спасибо за ваше время.
В файле /etc/nginx/sites-availables/www.myserver.com.vhost
Измените строку root /usr/share/;
внутри местоположения / phpmyadmin в: root /usr/share/phpmyadmin/;
Здесь вы стали жертвой правил выбора местоположения.
Чтобы это работало, вам нужно сделать ваше местоположение / phpmyadmin более предпочтительным, чем местоположение ~ .php $. Для этого мы должны учитывать, что документация говорит о местонахождении.
По сути, единственные местоположения, более конкретные, чем местоположение регулярного выражения, - это точное совпадение = и отрицательное местоположение регулярного выражения ^ ~
Точное соответствие здесь не лучший вариант, поэтому нам нужно использовать отрицательное расположение регулярного выражения.
location ^~ /phpmyadmin {
root /usr/share;
index index.php index.html index.htm;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
root /usr/share; # If you're only setting root then this is not needed.
}
location ~ /\. { # We need to duplicate this so that we don't serve htaccess/passwd files for this subdir.
deny all;
access_log off;
log_not_found off;
}
}