Tôi không thể mở phpMyAdmin, gặp lỗi 301 hoặc 500


8

Tôi đã cài đặt phpMyAdmin, nhưng tôi không thể mở nó trên bất kỳ trình duyệt nào: Tôi nhận được chuyển hướng 301 (*) nếu tôi duyệt đến http://localhost:8080/phpmyadmin. Nếu tôi thêm a /vào cuối địa chỉ, tôi sẽ nhận được trạng thái lỗi 500 thay thế .

(*) được chụp bằng Wireshark. Nếu tôi sử dụng netcat từ thiết bị đầu cuối trên cùng một máy chủ, tôi sẽ nhận được chuyển hướng 301 đến một địa chỉ khác .

Môi trường là một VM tôi đã xây dựng cho mục đích phát triển / thử nghiệm, nơi tôi đã cài đặt môi trường LEMP (Linux / Nginx / MySQL / PHP). Đây là bản cài đặt sạch của CentOS 6 64bit đang chạy với tư cách là khách trên máy chủ Ubuntu 12.04 64 bit. VM đang chạy ở chế độ NATed với cổng chuyển tiếp. Tôi có thể mở http://localhost:8080trên máy khách và xem trang chào mừng nginx. Tôi cũng có thể mở một trang phpinfo , vì vậy tôi biết PHP đang chạy.

Tôi đã cài đặt các gói nginx, MySQM, PHP và phpMyAdmin mỗi gói riêng biệt. Tôi đang sử dụng các cài đặt mặc định cho phpMyAdmin. Sau khi cài đặt MySQL, tôi đã chạy mysql_secure_installationlệnh và trong số các tùy chọn khác, tôi đã vô hiệu hóa quyền truy cập root từ xa.

Đây là tập tin cấu hình của tôi:

  • /etc/php.ini: liên kết
  • /etc/php.d/mysql.ini: liên kết
  • /etc/nginx/nginx.conf: liên kết
  • /etc/nginx/conf.d/default.conf: link (Để chạy các tập lệnh PHP, tôi đã tùy chỉnh nó, làm theo các hướng dẫn trực tuyến và tôi không thực sự chắc chắn về những gì tôi đã làm .)
  • /etc/phpMyAdmin/config.inc.php: liên kết

4
Câu hỏi này nhận được 4 phiếu bầu chọn. Tại sao? meta.superuser.com/questions/6455/ Mạnh
người Brazil đó

Câu trả lời:


4

Có nhiều nguyên nhân ngăn tôi đăng nhập vào phpMyAdmin:

mbopes

Lỗi 500 tạo một thông báo PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177trên tệp /var/log/php-fpm/www-error.log. Theo một nhận xét trên http://www.php.net/manual/en/mbopes.installation.php Tôi đã cố gắng cài đặt php-mbstringgói nhưng nó đã có sẵn.

Khởi động lại đã php-fpm servicegiải quyết được lỗi 500.

Phiên php

Sau khi giải quyết lỗi trước, tôi gặp lỗi sau:

nhập mô tả hình ảnh ở đây

/etc/phpmyadmin/config.inc.php có dòng

$ cfg ['Máy chủ'] [$ i] ['auth_type'] = 'cookie';

nhưng session.save_pathbiến của PHP được đặt thành /var/lib/php/sessionthư mục không tồn tại .

Tạo một thư mục với quyền thích hợp đã giải quyết lỗi này, tôi có thể đăng nhập đúng.

dấu gạch chéo chuyển hướng

Nếu tôi cố gắng truy cập bất kỳ địa chỉ nào trên máy chủ này mà không có dấu gạch chéo ở cuối URL, nginx sẽ thêm dấu gạch chéo xóa :8080phần đó. Nó không xảy ra nếu tôi để lại dấu gạch chéo.

(Eg .: http://localhost:8080/exampleđược chuyển hướng đến http://localhost/example/. Thực tế tôi có phpMyAdmin chạy cả trong VM và trên máy chủ thêm sự nhầm lẫn hơn như tôi sẽ thấy hộp thoại đăng nhập phpMyAdmin, nhưng trên các điểm đến sai).

Nó dường như là một lỗi nginx phổ biến . Tôi đã googled và thử các giải pháp khác nhau nhưng không thành công. Nếu tôi tìm thấy một giải pháp cho trường hợp của tôi, tôi sẽ cập nhật câu trả lời này.


0

Đăng nhập gốc phải được cho phép trên /etc/phpmyadmin/config.inc.phptập tin cấu hình.

Thêm dòng sau:

$ cfg ['Máy chủ'] [$ i] ['AllowRoot'] = TRUE;


3
xin chào và chào mừng đến với SuperUser. vui lòng dành chút thời gian giải thích cú pháp và chi tiết về những gì các dòng lệnh đó sẽ thực hiện. nó có thể phù hợp với độc giả tương lai hoặc cho chính QA.
Lorenzo Von Matterhorn

Tôi thậm chí không thể nhìn thấy màn hình đăng nhập phpmyadmin. Tôi đã thêm dòng vào tệp cfg, nhưng nó không khắc phục được vấn đề.
Chàng trai người Brazil

docs.phpmyadmin.net/en/latest/config.html nêu giá trị mặc định là true. Tôi chưa đặt nó thành false và nó không xuất hiện trên tập tin cấu hình.
Đó là chàng trai người Brazil

0

Kiểm tra /var/log/nginx/error.logxem lỗi 500 nói gì.

Có vẻ như bạn đang chạy hai cấu hình (một trên cổng 80 và một trên 8080) có thể xung đột.


Tôi không chạy hai cấu hình máy chủ web trên cùng một máy. 8080 là cổng chuyển hướng NAT cho máy khách VM và 80 là cổng cho hệ điều hành máy chủ. Về mặt kỹ thuật, chúng ở trên cùng một máy, nhưng được ảo hóa lẫn nhau.
Đó là chàng trai người Brazil

Tuy nhiên, đề xuất của bạn về việc tìm kiếm các tệp nhật ký đã đưa tôi đi đúng hướng.
Đó là chàng trai người Brazil
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.