Saya mencoba mengatur alias sehingga ketika seseorang mengakses /phpmyadmin/
, nginx akan menariknya dari /home/phpmyadmin/
daripada dari root dokumen yang biasa. Namun, setiap kali saya menarik URL, itu memberi saya 404 pada semua item yang tidak ditarik melalui fastcgi. fastcgi tampaknya berfungsi dengan baik, sedangkan sisanya tidak. strace
mengatakan kepada saya itu mencoba untuk menarik segala sesuatu yang lain dari root dokumen yang biasa, namun saya tidak tahu mengapa. Adakah yang bisa memberikan wawasan?
Inilah bagian yang relevan dari konfigurasi saya:
location ~ ^/phpmyadmin/(.+\.php)$
{
include fcgi.conf;
fastcgi_index index.php;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME /home$fastcgi_script_name;
}
location /phpmyadmin
{
alias /home/phpmyadmin/;
}
/
di alias dan yanglocation
direktif, meminta/phpmyadminfile
benar-benar akan membuat Anda/home/phpmyadminfile
. Adapun mengapa konfigurasi dalam pertanyaan tidak berfungsi, itu terlihat benar bagi saya, jadi saya curiga adalocation
arahan lain yang tidak ditampilkan yang cocok ketika tidak dimaksudkan. Dalam hal ini, sebagaialias
ujung denganlocation
awalan, docs nginx sarankan menggunakanroot /home;
sebagai gantinya .Jawaban:
Menemukan cara. Saya tidak yakin apakah itu yang TERBAIK, tapi itu pasti berfungsi sekarang.
Inilah yang saya lakukan:
sumber
Saya tidak yakin tetapi sudahkah Anda mencoba menulis seperti ini:
Juga, apa URI dari mana Anda mencoba mengaksesnya?
Sejauh yang saya mengerti, Anda harus menggunakan URI
dan tidak adil
Anda dapat membaca lebih lanjut tentang ini di sini: http://wiki.nginx.org/HttpCoreModule
sumber
Mencoba
sumber
Alasan ini tidak berhasil adalah server memilih lokasi berbasis regex dan bukan lokasi berbasis awalan yang memiliki alias di dalamnya.
Itu hanya akan memilih satu. Ada operator yang bisa Anda gunakan untuk mendapatkan lokasi berbasis awalan untuk mengungguli regex, tetapi kemudian Anda akan menemukan php tidak akan berfungsi. Solusinya akan menjadi seperti jawaban kervin di mana regex PHP bersarang di dalam lokasi dengan direktif alias.
Namun saya menduga pengaturan SCRIPT_FILENAME-nya mungkin tidak berfungsi di sana karena ada perbedaan huruf besar pada URL dan direktori alias.
sumber