Saya tidak bisa membuka phpMyAdmin, dapatkan error 301 atau 500

8

Saya telah menginstal phpMyAdmin, tetapi saya tidak dapat membukanya di browser apa pun: Saya mendapatkan 301 redirect (*) jika saya telusuri http://localhost:8080/phpmyadmin. Jika saya menambahkan a /ke akhir addres, saya mendapatkan 500 status kesalahan .

(*) ditangkap menggunakan Wireshark. Jika saya menggunakan netcat dari terminal pada host yang sama, saya mendapatkan 301 redirect ke yang berbeda alamat .

Lingkungan adalah VM yang saya bangun untuk tujuan pengembangan / pengujian, di mana saya menginstal lingkungan LEMP (Linux / Nginx / MySQL / PHP). Ini adalah instalasi bersih CentOS 6 64bit yang dijalankan sebagai tamu pada host Ubuntu 12.04 64bit. VM berjalan dalam mode NATed dengan port forwarding. Saya dapat membuka http://localhost:8080di mesin tamu dan melihat halaman selamat datang nginx. Saya dapat membuka halaman phpinfo juga, jadi saya tahu PHP sedang berjalan.

Saya telah menginstal masing-masing paket nginx, MySQM, PHP dan phpMyAdmin secara terpisah. Saya menggunakan pengaturan default untuk phpMyAdmin. Setelah installig MySQL, saya telah menjalankan mysql_secure_installationperintah dan, di antara opsi lain, saya menonaktifkan akses root jarak jauh.

Ini file konfigurasi saya:

  • /etc/php.ini: tautan
  • /etc/php.d/mysql.ini: tautan
  • /etc/nginx/nginx.conf: tautan
  • /etc/nginx/conf.d/default.conf: tautan (Untuk menjalankan skrip PHP, saya telah mengubahnya, mengikuti tutorial online, dan saya tidak begitu yakin dengan apa yang saya lakukan .)
  • /etc/phpMyAdmin/config.inc.php: tautan
Orang Brasil itu
sumber
4
Pertanyaan ini mendapat 4 suara untuk ditutup. Mengapa? meta.superuser.com/questions/6455/…
Orang Brasil

Jawaban:

4

Ada beberapa penyebab yang mencegah saya masuk ke phpMyAdmin:

mbstring

Kesalahan 500 menghasilkan pesan PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177pada file /var/log/php-fpm/www-error.log. Menurut komentar di http://www.php.net/manual/en/mbstring.installation.php Saya mencoba menginstal php-mbstringpaket tetapi sudah ada.

Mulai ulang php-fpm servicememecahkan kesalahan 500.

sesi php

Setelah menyelesaikan kesalahan sebelumnya, saya mendapatkan kesalahan berikut:

masukkan deskripsi gambar di sini

/etc/phpmyadmin/config.inc.php punya garis

$ cfg ['Server'] [$ i] ['auth_type'] = 'cookie';

tetapi session.save_pathvariabel PHP diatur ke /var/lib/php/sessionfolder tidak ada .

Membuat folder dengan izin yang tepat menyelesaikan kesalahan ini, saya bisa masuk dengan benar.

pengalihan garis miring

Jika saya mencoba mengakses alamat apa pun di server ini tanpa garis miring di akhir URL, nginx menambahkan garis miring dan menghapus :8080bagiannya. Itu tidak terjadi jika saya meninggalkan garis miring.

(mis .: http://localhost:8080/exampleakan dialihkan ke http://localhost/example/. Fakta saya memiliki phpMyAdmin yang menjalankan keduanya di VM dan di mesin host menambahkan lebih banyak kebingungan karena saya akan melihat dialog login phpMyAdmin, tetapi pada tujuan yang salah).

Tampaknya menjadi kesalahan nginx yang umum . Saya telah mencari di Google dan mencoba berbagai solusi tanpa hasil. Jika saya menemukan solusi untuk kasus saya, saya akan memperbarui jawaban ini.

Orang Brasil itu
sumber
0

Login root harus diizinkan pada /etc/phpmyadmin/config.inc.phpfile konfigurasi.

Tambahkan baris berikut:

$ cfg ['Server'] [$ i] ['AllowRoot'] = TRUE;

Pbarney8
sumber
3
Halo dan selamat datang di SuperUser. tolong luangkan waktu untuk menjelaskan sintaks dan perincian tentang apa yang akan dilakukan oleh baris perintah tersebut. mungkin relevan untuk pembaca di masa depan atau untuk QA sendiri.
Lorenzo Von Matterhorn
Saya bahkan tidak bisa melihat layar login phpmyadmin. Saya telah menambahkan baris ke file cfg, tetapi tidak memperbaiki masalah.
Orang Brazil itu
docs.phpmyadmin.net/en/latest/config.html menyatakan nilai defaultnya true. Saya belum menetapkannya ke false, dan itu tidak ada pada file konfigurasi.
Orang Brasil itu
0

Periksa Anda /var/log/nginx/error.loguntuk melihat apa yang dikatakan kesalahan 500.

Sepertinya Anda menjalankan dua konfigurasi (satu di port 80 dan yang lain di 8080) yang mungkin konflik.

kevin
sumber
Saya tidak menjalankan dua konfigurasi server web pada mesin yang sama. 8080 adalah port redirect NAT untuk VM tamu, dan 80 adalah port untuk OS host. Secara teknis, mereka berada di mesin yang sama, tetapi saling tervirtualisasi.
Orang Brasil itu
Saran Anda untuk mencari file log, telah menempatkan saya ke arah yang benar.
Orang Brasil itu