Хозяйке на заметку, или кратко об очевидном, кажущимся неочевидным
Отсутствующие локали
При отсутствии на сервере нужной локали, например ru_RU.CP1251, можно легко её добавить:
localedef ru_RU.CP1251 -i ru_RU -f CP1251
после этого проверяем, появилась ли она, командой
locale -a | grep ru
Переменные окружения
Как известно, большая часть неочевидных проблем в линуксе связана с переменными окружения. Чтобы понять, как так случилось что из консоли ваш демон запускается и работает правильно, а при запуске из init.d что-то не так (например у меня переставал коннектиться к Ораклу, или слетала локаль), достаточно сделать тестовый вывод переменных среды окружения в инит скрипте.
На примере стартового скрипта php-fpm, добавляем в него после #/bin/bash следующую строку:
export > /tmp/envvars и перезагружаемся. Смотрим что там есть, перегружаем руками и смотрим что изменилось. Делаем выводы каких переменных окружения не хватает, и добавляем их прямо в тестовый скрипт. Не слишком красиво, но чаще всего достаточно и такого решения.
Rewrite Rule для CodeIgniter и nginx
В интернетах куча вариантов этих rewrite-rule’ов, у меня же заработал такой вариант (полный конфиг vhost’а):
server {
listen 80;
server_name yourhost.com;
index index.php;
root /www/yourhost.com/htdocs;
access_log logs/yourhost.com_access.log;
location / {
#error_page 404 = 404.html;
if (-f $request_filename) {
expires max;
break;
}
if ($request_filename !~ (js|css|images|robots\.txt|index\.php.*) ) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /usr/local/nginx/conf/fastcgi_params;
}
location ~ /index.php/
{
include /usr/local/nginx/conf/fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/yourhost.com/htdocs/index.php;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param HTTP_REFERER $http_referer;
fastcgi_pass 127.0.0.1:9000;
}
}
Ну и в конфиге самого CodeIgniter’a нужно указать что $config['uri_protocol'] = "REQUEST_URI";
![["Lady with some baggage"] ["Lady with some baggage"]](http://farm5.staticflickr.com/4072/4597949227_2c4b28ed52_s.jpg)
![["***"] ["***"]](http://farm3.staticflickr.com/2691/4440914532_a959558afb_s.jpg)
![["***"] ["***"]](http://farm3.staticflickr.com/2731/4440139155_e75e9ee37c_s.jpg)
![["***"] ["***"]](http://farm3.staticflickr.com/2791/4440139261_06234c1e5a_s.jpg)