Арендовал у netangels «облачный VDS» и решил попробовать их образ Debian Wheezy Nginx + PHP (php-fpm). С Nginx дела до тех пор не имел, потому с некоторыми настройками пришлось разбираться с чистого листа.
На самом деле, единственный вопрос, с которым пришлось столкнуться, работа «чистых ссылок» или ЧПУ, используемые мной в drupal. В сети есть огромное число частных решений, при чем именно для drupal, но без особых пояснений, а уж тем более описания вроде того, где может быть конфиг для nginx, и как его перезапустить после изменения конфига.
В Unix конфиги обычно сложены всей кучей в одном месте — /etc, а для nginx его можно обнаружить где то в /etc/nginx. В моем случае — это был /etc/nginx/sites-available/mass-hosting, где находится шаблон конфига для подключаемых к хостингу сайтов.
Запустить и остановить демона можно в папке /etc/init.d, выполнив команды ./nginx stop и ./nginx start (т.е. сначала остановим, потом запустим вновь).
На хостинге должны были жить всего пара сайтов под Drupal, при этом один на 7-ке, а другой на моей любимой шестерочке. Попробовав несколько предлагаемых конфигов, я прописал нечто своё, что работало одинаково для обеих версий.
1 2 3 4 5 6 7 8 |
root /var/www/web/sites/$host; location / { try_files $uri $uri/ @rewrite; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1 last; } |
Суть данных объявлений сводится к тому, что для всех адресов принадлежащих $host и выше проверяется (try_files) существует или нет такой файл. В случае если файла не существует, выполняется группа команд секции @rewrite.