Нам всегда хочется сэкономить где-нибудь. Возникают ситуации, когда надо приобрести недорогой VPS. У дешевых тарифов дается мало ОЗУ — от 64 до 128 мегабайт.
Но это не проблема при правильной настройке сервера.
Код будет писаться под ОС Debian, так как он мне больше всего импонирует как ОС для web-сервера.
Ставим все необходимое для сборки:
apt-get install -y php5-dev bzip2 make
Компилируем eaccelerator, который отвечает за ускорение и оптимизацию PHP:
cd /usr/src wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2 tar -xf eaccelerator-0.9.6.1.tar.bz2 cd eaccelerator-0.9.6.1 phpize ./configure make install
Очищаем систему после сборки:
apt-get remove php5-dev cd rm -rf /usr/src/eaccelerator-0.9.6.1 rm -f /usr/src/eaccelerator-0.9.6.1.tar.bz2
Создаем конфиг файл:
vi /etc/php5/conf.d/eaccelerator.ini
Вариантов подключения к PHP два — Zend Extension и обычное расширение.
Вот стандартный конфиг:
extension="eaccelerator.so" # eaccelerator.shm_size="16" # иначе получите проблемы на своем VPS eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
Это оптимизированный из интернета:
extension="eaccelerator.so" ; размер shm памяти в мегабайтах eaccelerator.shm_size="32" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" ; памяти у нас много, будем кэшировать в ней eaccelerator.shm_only="1" ; рекомендую отлючить eaccelerator.compress="0" eaccelerator.compress_level="9"
Осталось создать папки для кэша вручную. Это связано с проблемами работы скриптов Web-сервера от разных пользователей (в особенности FastCGI и Апач). Я с этим не заморачиваюсь и иногда просто подбираю нужного пользователя для папок.
Кстати, в случае SHM памяти все будет очень безопасно по причине, что shm блоки будут создаваться от имени пользователя, от которого запускается скрипт. Так что самый лучший вариант в случае FastCGI — отключение файлового кэша и расположение скомпилированного кода только в shm.
Это в случае использования только shm не требуется:
mkdir /tmp/eaccelerator chmod 0777 /tmp/eaccelerator
А испытать работоспособность можно командой:
php -m | grep eAcc eAccelerator
И, наконец, перезапускаем Апача:
/etc/init.d/apache2 restart
Еще хочу добавить, что после установки eaccelerator, может перестать работать phpmyadmin. Если это произойдет, то для исправления этого вносим в конфигурационный файл apache для phpmyadmin, следующую настройку:
Файл находится тут: /etc/phpmyadmin/apache.conf
<Directory /usr/share/phpmyadmin> php_admin_value eaccelerator.enable 0 </Directory>
Если есть какие-то вопросы или дополнения, пишите, будет разбираться вместе.
Печально..написал коммент..а он не опубликовался..
В общем — ВПС — это сложно для меня, но вообще нужно. Ибо это намного выгоднее стандартного хостинга..
Я в начале тоже думал, что это сложно. У меня было несколько VPS и все хорошо настроили админы хостера, лишь только один пришлось корректировать под нужды определенного сервиса для выполнения специфичных задач. Хотя тут очень помогает панель cPanel или ISPmanager — выглядит, как обычный шаред хостинг, но без ограничений.