Apa nama dan lokasi file konfigurasi Nginx (setara htaccess)?

30

Ada banyak tutorial tentang cara menulis aturan penulisan ulang Nginx untuk meniru file .htaccess Apache tetapi saya tidak dapat dengan yakin mengatakan bahwa saya tahu apa nama atau lokasi file konfigurasi Nginx yang disebut ini sebenarnya. Saya secara khusus mencari file konfigurasi Nginx yang memungkinkan Anda untuk menulis jalur server dan arahan PHP. Saya menggunakan Ubuntu 12 linux dan Codeigniter sebagai kerangka PHP saya.

Inilah yang saya tahu sejauh ini:

  1. File ini: /etc/nginx/nginx.confmeskipun namanya menarik rupanya bukan tempat untuk arahan server.
  2. File ini: /etc/nginx/sites-available/defaultsepertinya yang saya butuhkan (saya bisa membuat kesalahan php khusus untuk aplikasi saya) tapi saya tidak bisa mendapatkan jalur routing khusus Codeigniter yang benar. Pertama-tama, apakah ini file "config" / .htaccess yang setara dengan yang dibicarakan semua orang?
tim peterson
sumber
Masalah Anda bukan dengan bahasa PHP (yaitu pemrograman dalam PHP), melainkan dengan konfigurasi PHP pada server tertentu, yang menjelaskan suara penutupan yang benar-benar valid. Saya tidak dapat mengomentari bagian terakhir dari posting Anda, karena tampaknya sangat subyektif dan bias.
julukan
1
Anda dapat menemukan di mana nginx config berlokasi menggunakan nginx -Vyang dapat Anda temukan di manual man nginx. The -Vopsi didokumentasikan sebagai "-v Cetak versi nginx, versi compiler, dan parameter skrip configure.". Jika nginxtidak ada di jalur Anda, gunakan which nginxyang mengembalikan jalur lengkap ke nginx$(which nginx) -V
bucabay

Jawaban:

28

Saya menggunakan PHP dengan nginx di server pengembangan saya dengan konfigurasi berikut:

  1. di /etc/nginx/nginx.confsaya menambahkan: include /etc/nginx/sites-enabled/*;sebelum yang terakhir }.

  2. jalankan perintah berikut untuk membuat konfigurasi situs Anda:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. edit konfigurasi situs, beberapa kemungkinan konfigurasi (inilah yang saya sebut dalam pengaturan saya): http://kbeezie.com/view/nginx-configuration-examples/

  4. tautan ke situs yang tersedia untuk mengaktifkannya

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. perlu diingat bahwa Anda sebenarnya dapat memasukkan file dalam konfigurasi hampir di mana saja, ini membuat membuat banyak situs menjadi mudah ketika Anda ingin menggabungkan konfigurasi yang sama.

Ya, .htaccess dapat dibandingkan dengan server{}blok di nginx, tetapi mereka juga sangat berbeda. nginx memiliki pendekatan yang jauh lebih ringan untuk parsing konfigurasi, dan itu tidak akan memindai direktori situs untuk konfigurasi tambahan, hanya apa pun yang dilihat oleh nginx.conf, berjalan.

abestic9
sumber
- @ Andrew terima kasih banyak informasi bermanfaat !, secara default /etc/nginx/nginx.conffile saya sudah ada include /etc/nginx/sites-enabled/*;di akhir. Sepertinya 2 file ini saling berbicara di server saya dan sekarang saya sedang berhadapan dengan masalah khusus Codeigniter. Apakah Anda menggunakan codeigniter? Ada beberapa jalan funkiness yang saya butuhkan untuk menangani ...
tim peterson
Saya menggunakan kerangka kerja saya sendiri yang sangat mirip (meskipun lebih primitif) dengan CodeIgniter. Saat ini saya mencoba untuk mendapatkan aturan regexp mod_rewrite saya dikonversi ke modul HttpRewrite nginx. Terobosan besar pertama saya adalah melewati kesalahan 403/404 yang ditampilkan nginx ketika saya salah mengonfigurasi rootparameter. Jangan ragu untuk memeriksa Pertanyaan saya jika Anda membutuhkan inspirasi.
abestic9
terima kasih atas tipnya memeriksa pertanyaan Anda. Saya pikir saya mengerti lebih banyak sekarang, terima kasih atas pengaturan saya di jalan ...
tim peterson