2013-12-06 3 views
1

У меня есть Freebsd 8 srv с nginx, php, mysql, phpBB forum, local extjs app, bugzilla, joomla и PhpMyAdmin (/ pma) Проблема в том, когда я иду pma и login через Я перенаправлен на domain_name/index.php? токен ... вместо /domain_name/pma/index.php?token ... То же самое происходит, когда я вхожу в joomla admin part (имя_домена/администратор/index.php. перенаправлено на domain_name/index.php) Я понимаю, что это проблема с конфигурацией местоположения, возможно, но я не знаю, где она находится. Config ниже:nginx перенаправляет все запросы php в корневую папку домена

user www;. 
worker_processes 4; 

pid /var/run/nginx.pid; 
error_log /var/log/nginx-error.log warn; 

events { 
worker_connections 1024; 
use kqueue; 
} 

http { 
gzip on; 
gzip_static on; 
gzip_vary on; 
gzip_http_version 1.1; 
gzip_min_length 700; 
gzip_comp_level 6; 
gzip_disable "msie6"; 

include mime.types; 
default_type application/octet-stream; 

# log options. 
log_format main '$remote_addr - $remote_user [$time_local] ' 
'"$request" $status $bytes_sent ' 
'"$http_referer" "$http_user_agent" ' 
'"$gzip_ratio"'; 

# nginx options 
sendfile on; 
tcp_nopush on; 
tcp_nodelay on; 
keepalive_timeout 65; 
server_tokens off; 

# fastcgi 
fastcgi_intercept_errors on; 

# virtual server 
server { 
    listen 80; 
    server_name domain_name www.domain_name; 
    server_name_in_redirect off; 
    rewrite 301 http://domain_name$request_uri; 

    access_log /var/log/haim_access_log main; 
    error_log /var/log/haim_error_log error; 

    root /usr/local/www; 

# phpBB: Support Clean (aka Search Engine Friendly) URLs 
    location/{ 
    try_files $uri $uri/ /index.php?$args; 
    } 
# Joomla: caching of files 
    location ~* \.(ico|pdf|flv)$ { 
    expires 30d; 
    } 

    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ { 
    expires 14d; 
    } 

# Joomla: deny running scripts inside writable directories 
    location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ { 
    return 403; 
    error_page 403 /403_error.html; 
    } 

# error pages 40x 
    error_page 404 /40x.html; 
    location = /nginx-distr/40x.html { 
} 

# phpBB 3 forum config 
location /forum { 
} 

# phpBB 3: Deny access to internal phpbb files. 
    location ~ /(config\.php|common\.php|includes|cache|files|store|images/avatars/upload) { 
root /usr/local/www/forum; 
    deny all; 
    # deny was ignored before 0.8.40 for connections over IPv6. 
    # Use internal directive to prohibit access on older versions. 
    # internal; 
} 

# phpMyAdmin 
    location ~ /pma4/(.*\.php)$ { 
    root /usr/local/www/pma4; 
    index index.php; 
    fastcgi_pass localhost:9000; 
    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME /usr/local/www/pma4/$1; 
    fastcgi_param DOCUMENT_ROOT /usr/local/www/pma4; 
    } 

# bugzilla 
    location ~ ^/bugzilla/(.*\.cgi) { 
    fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock; 
    fastcgi_param SCRIPT_FILENAME /usr/local/www/bugzilla/$1; 
    fastcgi_param DOCUMENT_ROOT /usr/local/www/bugzilla; 
    include fastcgi_params; 
    } 

# php 
    location ~ [^/]\.php(/|$) { 
    fastcgi_split_path_info ^(.+?\.php)(/.*)$; 
    if (!-f $document_root$fastcgi_script_name) { 
    return 404; 
} 
fastcgi_pass 127.0.0.1:9000; 
fastcgi_index index.php; 
include fastcgi_params; 
} 

# cgi 
    location ~ [^/]\.cgi(/|$) { 
    fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock; 
    fastcgi_index index.cgi; 
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; 
    include fastcgi_params; 
    } 

# phpBB: Deny access to version control system directories. 
    location ~ /\.svn|/\.git { 
    deny all; 
    } 

# Original: block access for .htpasswd 
    location ~ /\.ht { 
    deny all; 
    } 

} 
} 
+0

Будьте Удельный c и размещать только конкретный код. – Praveen

+0

Я отправил полный nginx.conf, потому что я комментировал каждую часть один за другим, пытаясь выяснить, что может вызвать проблему, и не повезло. так что я думал, что будет более recourcefull, чтобы опубликовать весь. –

+0

Что находится в ваших файлах конфигурации для вашего конкретного сервера/виртуального хоста? (например, сайты доступны/по умолчанию (или любые файлы конфигурации, которые вы используете на доступных сайтах). Вероятно, это проблема с document_root. – aenw

ответ

0

Эта конфигурация должна помочь

location /pma4 { 
    root /usr/local/www; 
    index index.php; 
    location ~ .*\.php$ { 
     fastcgi_pass localhost:9000; 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME /usr/local/www/pma4/$1; 
     fastcgi_param DOCUMENT_ROOT /usr/local/www; 
    } 
} 
+0

нет, это не так. –

+0

Вы хотели бы добавить описание, что именно не работает? – ig0r

+0

first из всего, что вы забыли} в конце, и после этого я получил ошибку « Выполнение проверки работоспособности по конфигурации nginx: nginx: [появление] pcre_compile() failed: неизвестное имя свойства после \ P или \ p в". * \ php $ "at" hp $ "в /usr/local/etc/nginx/nginx.conf:113 nginx: файл конфигурации /usr/local/etc/nginx/nginx.conf test failed" исправлено, но все же было перенаправлено на имя_домена /index.php –

0

После нескольких дней разбив голову на клавиатуре, я наконец-то нашел реальное решение этой проблемы, и я делю здесь, как эта нить еще высокий приоритет поиска Google.

Как указано по ссылке: http://www.samundra.com.np/use-phpmyadmin-with-nginx-and-php7/1374

Чтобы решить эту проблему, необходимо добавить следующий блок кода в Nginx сайт- доступны по умолчанию, вы получите доступ к его:

sudo nano /etc/nginx/sites-available/default 

блок:

# Phpmyadmin Configurations 
    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_param HTTPS on; # <-- add this line 
       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
       fastcgi_index index.php; 
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
       include fastcgi_params; 
     } 
     location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { 
       root /usr/share/; 
     } 
    } 

    # Dealing with the uppercased letters 
    location /phpMyAdmin { 
     rewrite ^/* /phpmyadmin last; 
    } 

Я надеюсь, что это помогает кто-то один день ...

Смежные вопросы