FastCGI и CodeIgniter, мой новый сайт и секрет небольшой памяти
30-04-2008Reading time ~ 2 min.Блог 23122
Пост-солянка. :)
1. На новом сервере я включил PHP как FastCGI. Скорость тестового сайта несколько увеличилась (примерно в 2 раза). Это на WordPress. Теперь я решил поставить другой сайт на своей MaxSite CMS и как оказалось .htaccess при таком режиме работает как-то по другому. В частности при использовании ЧПУ, сервер выдает, что файл не найден.
Погуглив, выяснилось, что это довольно распространенная проблема. Перепробовав кучу вариантов, мне так и не удалось получить рабочий. Тогда я сообразил, что WordPress-то работает нормально, поэтому решил просто взять его .htaccess. Теперь пути заработали. Я даю свой .htaccess, но сразу заявляю, что без гарантий. Возможно, что этот вариант просто счастливо подошел под мой сервер.
Options +FollowSymLinks Options -Indexes <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Но это еще не всё. Посколько в этом файле в index.php не передаются никакие параметры (из URL), то в CodeIgniter в файле config.php нужно указать способ обработки адресов.
У меня получилось так:
$config['uri_protocol'] = "REQUEST_URI";
Возможно эта информация кому-то окажется полезной.
2. Я запустил свой новый сайт max-3000.com. Планы пока раскрывать не буду, просто этот сайт будет уже работать на моей CMS. Кто желает может посмотреть. Система еще не готова (версия всего 0.09), поэтому просьба сильно не пинать.
3. Помните, я говорил, что не в курсе, почему мой сайт (до переезда) показывал столь малое потребление памяти PHP? Значение, которое выдает мой плагин maxsite-memory-usage? Так вот, путем небольших «ковыряний», я выяснил, что снижение происходит при включении php-расширения eAccelerator. Эта штуковина выполняет кэширование уже скомпилированных php-скриптов. Таким образом, при повторном выполнении сразу отдается уже готовый результат. Соответственно увеличивается скорость (в 2-3 раза) и уменьшается потребление памяти (в 5-10 раз).
Сказать что либо по нагрузке на сервере, ничего не могу. Статистика показывает примерно те же цифры, что и до включения eAccelerator'а. Скорее всего он более эффективен при большой посещаемости.
Может задаю ламерский вопрос, но всё же: а как раньше был подключен РНР у вас на сервере? Модулем? Или простым CGI? Если модулем - хотите ли вы сказать, что РНР через FastCGI работает быстрее, чем подключение через модуль?
Было бы круто иметь цмску по функциональности и лёгкости управления подобную вордпрессу, но по скорости и требовательности к ресурсам его обгоняющую в разы.
Надеюсь у тебя такое получится :)
У меня на одном сайте так и не работает - выдает что файл не найден. Может быть дело в хостинге?
Сори за возможно банальный вопрос - что означает "3000" в имени домена? :) Домен-то как эффектно звучит - Макс, да еще и ТРИ ТЫСЯЧИ :mrgreen:
Насчет режимов PHP я ничего толком сказать не могу. Там слишком много особенностей. На сервере есть возможность указать разные варианты, вот я и попробовал. Получилось быстрей. По отзывам на других сайтах/форумах - вполне нормальная конфигурация.
2Dimox: Собственно ничего не обозначает. :) У меня этот ник уже давно (тогда все писали 2000, я же решил сразу на тысячу лет вперед - получилось 3000).
а для общественного использования кагда cms выложишь?
Честно сказать незнал, что так можно Пых настроить... будем знать теперь спасибо!
Хочу задать такой вопрос, а как обстоит дело с шаблонами (темами) под твою ЦМС? Или с WP подходят? Или из WP не сложно переделать?
Шаблоны от WordPress не подходят, поскольку используются другие функции. В моей системе шаблон, на мой взгляд, и проще, и гибче. Из обязательных файлов только index.php - остальное на откуп разработчика. В дефолтном шаблоне будут примеры использования «по-полной» - это с учетом всех типов данных/страниц. Но возможно сделаю и вариант «мини» - предполагаю, что он будет совсем несложный.
Любопытно было бы о цмс-ке более подробно узнать.
Какие задачи она будет выполнять?
Попробуй ещё nginx в связке с апаче и fastcgi :wink:
У меня такого на сервере нет. ;)
Такой надо ставить самому (в убунту, дебиан точно есть). Но с ним сервер выдержит в 3 раза минимум больше посетителей и сэкономит кучу RAMа который так злостно пожирает апач.
Кстати новость в до гонку "Wordpress.com" перешёл на nginx
http://barry.wordpress.com/2008/04/28/load-balancer-update/
nginx+fastcgi рулят
Спасибо за статью, выручил!!!
так будет правильнее указывать