Яке ім'я та розташування файлу конфігурації Nginx (еквівалент htaccess)?


30

Існує багато навчальних посібників щодо написання правил перезапису Nginx для імітації файлу .htaccess Apache, але я не можу впевнено сказати, що я знаю, що насправді ім'я або розташування цього так званого файлу конфігурації Nginx. Я спеціально шукаю конфігураційний файл Nginx, який дозволяє писати шлях до сервера та директиви PHP. Я використовую Ubuntu 12 linux та Codeigniter як свою PHP.

Ось що я знаю поки що:

  1. Цей файл: /etc/nginx/nginx.confнезважаючи на його заманливу назву, очевидно, не місце для директив сервера.
  2. Цей файл: /etc/nginx/sites-available/defaultздається, що мені потрібно (я в змозі генерувати помилки php, характерні для мого додатка), але я не можу отримати правильну маршрутизацію шляху для Codeigniter. Перш за все, це "config" файл / .htaccess еквівалент, про який всі говорять?

Ваша проблема не пов'язана з PHP на мові (тобто програмування в PHP), це з PHP конфігурації на конкретному сервері, який пояснює повністю дійсні близькі голоси. Я не можу коментувати останню частину вашої публікації, оскільки вона здається дуже суб’єктивною та упередженою.
nickb

1
Ви можете знайти, де знаходиться конфігурація nginx, за допомогою nginx -Vякої ви можете знайти в посібнику man nginx. -VОпція документована як «-V Вивести версію Nginx, компілятор версії і параметри сценарію конфігурації.». Якщо nginxу вас немає шляху, використовуйте, which nginxякий повертає повний шлях до nginx$(which nginx) -V
bucabay

Відповіді:


28

Я використовую PHP з nginx на своєму сервері розробки з наступною конфігурацією:

  1. в /etc/nginx/nginx.confя додав: include /etc/nginx/sites-enabled/*;до останнього }.

  2. запустіть такі команди, щоб створити конфігурації свого сайту:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. відредагуйте конфігурацію сайту, деякі можливі конфігурації (про це я і згадував у моїй установці): http://kbeezie.com/view/nginx-configuration-examples/

  4. посилання на доступний сайт, щоб увімкнути його

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. майте на увазі, що ви можете фактично включати файли в конфігурації практично де завгодно, це полегшує створення декількох сайтів, коли ви хочете з'єднати подібні конфігурації разом.

Так, .htaccess можна порівняти з server{}блоком у nginx, але вони також дуже різні. nginx має набагато легший підхід до розбору конфігурації, і він не скануватиме каталоги сайтів для додаткової конфігурації, йде лише те, що бачиться на nginx.conf.


- @ Андрій дякує великій кількості корисної інформації !, за замовчуванням мій /etc/nginx/nginx.confфайл вже є include /etc/nginx/sites-enabled/*;в самому кінці. Схоже, ці два файли розмовляють один з одним на моєму сервері, і тепер я маю справу з проблемами, характерними для Codeigniter. Ви використовуєте кодигнатор? Є деяка функціональність шляху, яку мені потрібно отримати, щоб вирішити ...
Tim Peterson

Я використовую власну структуру, яка досить схожа (хоча і примітивніша) на CodeIgniter. На даний момент я намагаюсь перетворити свої правила mod_rewrite regexp, перетворені в модуль HttpRewrite nginx. Першим моїм головним проривом було проходження помилок 403/404 nginx, коли я неправильно налаштував rootпараметр. Ви можете перевірити мої запитання, якщо вам потрібно натхнення.
abestic9

дякую за пораду щодо перевірки ваших питань. Я думаю, що зараз я більше розумію, дякую за те, що я став на шлях ...
Tim peterson
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.