У меня проблемы с моим phpmyadmin при установке nginx.
Когда я вхожу <ServerIP>/phpmyadmin
и входит в систему, меня перенаправляют на <ServerIP>/index.php?<tokenstuff>
вместо того <ServerIP>/phpmyadmin/index.php?<tokenstuff>
Файл конфигурации Nginx:
user nginx;
worker_processes 5;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 2;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
Default.conf:
server {
listen 80;
server_name _;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
#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;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/nginx/html;
try_files $uri =404;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
}
(Также принимаются любые общие советы по наведению порядка в этих файлах конфигурации)
Несмотря на то, что автор решил свою проблему переустановкой phpMyAdmin, nginx необходимо правильно настроить, чтобы правильно обрабатывать перенаправление при входе в систему.
Спустя несколько дней, разбив голову о клавиатуру, я наконец нашел реальное решение и делюсь здесь, так как эта ветка по-прежнему имеет высокий приоритет в поиске Google.
Как сказано по ссылке: http://www.samundra.com.np/use-phpmyadmin-with-nginx-and-php7/1374
Чтобы решить эту проблему, вы должны добавить следующий блок кода на свой сайт nginx по умолчанию, доступ к которому вы получите с помощью:
sudo nano /etc/nginx/sites-available/default
Поместите этот блок в server
блок:
# 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;
}
Надеюсь, однажды это кому-нибудь поможет ...
Эта проблема вызвана общей конфигурацией cgi.fix_pathinfo = 0, которая отключает текущий путь для PHP-FPM. Одно из быстрых решений - изменить cgi.fix_pathinfo обратно на 1 или установить параметры пути в блоке виртуального сервера nginx.
Это не похоже на проблему с nginx. Похоже, что phpMyAdmin установлен неправильно и думает, что он находится в /
вместо того /phpmyadmin
. Проверьте конфигурацию phpMyAdmin.
Кажется, ваша проблема похожа на эту: https://stackoverflow.com/questions/1011101/nginx-location-directive-doesnt-seem-to-be-working-am-i-missing-something
Если, прочитав это и изменив свою конфигурацию, у вас все еще есть проблемы, сообщите об этом!
открыто:
/var/lib/phpMyAdmin/config.inc.php
Добавить:
$cfg['PmaAbsoluteUri'] = 'https://www.example.net/path_to_your_phpMyAdmin_directory/';
видеть:
https://docs.phpmyadmin.net/en/latest/config.html#basic-settings
.
добавьте виртуальный хост на свой сервер лампы с любым доменным именем, например phpmyadmin1.com
server {
#listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
root /var/www/phpmyadmin;
#some /var/www/html/phpmyadmin
index index.php index.html index.htm;
server_name phpmyadmin1.com;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
root /usr/share/nginx/html;
try_files $uri =404;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Отредактируйте файл Hosts
добавьте эту строку внизу
192.168.1.xx phpmyadmin1.com
сохраните и закройте, затем перезапустите сервер
service nginx restart
service php5-fpm restart
Получите доступ к URL-адресу вашего виртуального хоста в браузере, на странице входа в phpmyadmin
Только это сработало для меня
location /utils/phpmyadmin/ {
try_files $uri $uri/ =404;
index index.php index.html index.htm
proxy_set_header Proxy "";
}
phpMyAdmin из репозиториев Ubuntu 16.04 и более поздних версий не перенаправляет должным образом.
Я просто скачиваю новую версию phpmyadmin с официального сайта phpmyadmin:
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.6.6/phpMyAdmin-4.6.6-all-languages.tar.gz
sudo tar xvf phpMyAdmin-4.6.6-all-languages.tar.gz
sudo mv phpMyAdmin-4.6.6-all-languages /usr/share/phpmyadmin
sudo rm -rf phpMyAdmin-4.6.6-all-languages.tar.gz
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
откройте config.inc.php:
sudo nano /usr/share/phpmyadmin/config.inc.php
и поместите случайный символ между '
$cfg['blowfish_secret'] = 'i\kywQ>_h4L~S-Pt2rS'VAe)QpED7JI#';
сохраните и откройте свой домен / phpmyadmin в браузере
также вы можете изменить ссылку на phpmyadmin (для большей безопасности) и добавить базовую аутентификацию из nginx для ссылки:
sudo ln -s /usr/share/phpmyadmin /var/www/html
cd /var/www/html
sudo mv phpmyadmin anything
теперь ваш phpmyadmin работает над https: // домен / что угодно, давайте добавим пароль:
sudo sh -c "echo -n 'YourNameForLoginThere:' >> /etc/nginx/pmapass"
sudo sh -c "openssl passwd -apr1 >> /etc/nginx/pmapass"
теперь откройте конфигурацию nginx (по умолчанию: Судо нано / и т. д. / nginx / сайты-доступные / по умолчанию) и добавить до последнего}
location /anything {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/pmapass;
}
Включить хранилище конфигурации:
sudo nano /usr/share/phpmyadmin/config.inc.php
Найдите следующие строки:
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
Изменить на:
$cfg['Servers'][$i]['controluser'] = 'yourdatabaseuser';
$cfg['Servers'][$i]['controlpass'] = 'yourdatabasepassword';
Найдите:
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
Раскомментируйте их ( удалять // )
Теперь сохраните и выйдите.
Зайдите в свой mysql (по умолчанию: sudo mysql -u root -p)
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'yourdatabaseuser'@'localhost' IDENTIFIED BY 'yourdatabasepassword';
exit;
теперь попробуйте открыть домен / что-нибудь в браузере