Кому нужна медленная социальная сеть? Оптимизируем свой сайт – PHP
Первую часть, посвященную настройке FreeBSD и Apache, тоже стоит прочитать (кто этого еще не сделал).
PHP
Теперь займемся оптимизацией и защитой PHP. Кроме самого PHP – установите eAccelerator! Для чего? Приятно видеть в админке WP не 45Mb, а 20?
eAccelerator – это PHP ускоритель, оптимизатор кэш-памяти динамического содержимого. Он увеличивает производительность PHP скриптов за счет кэширования их в компилированном состоянии, тем самым дополнительные ресурсы сервера на компиляцию скриптов не используются. Также оптимизируются скрипты для ускорения выполнения. eAccelerator обычно уменьшает нагрузку на сервер и увеличивает скорость вашего кода PHP в 1-10 раз.
Установка и настройка акселератора:
- официальный русский сайт (голая теория и расписаны переменные);
- страница с его настройками (на англ. языке);
- дневник доброго Даймона (тут лучше расписан сам процесс и можно задать вопросы автору в комментах);
- полезный совет от Даймона;
- настройка eAccelerator для тех, кто использует Zend Optimizer (вот установка самого Zend Optimizer).
Естественно, все ссылки даны лишь в ознакомительных целях, вы можете найти и другой материал. Буду рад, если вы укажете тот материал, который вам помог.
Безопасность
- отключите возможность выполнения следующих функций (в интернете советую больше отключать, но для WP нам нельзя все закрывать..):
disable_functions = dl, shell_exec, poopen, proc_nice, posix_mkfifo
- также используйте Suhosin и блокируйте следующие функции (спасибо Vladimir’у за список):
exec, passthru, shell_exec, system, pcntl_exec, popen, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, leak, apache_child_terminate, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid
- safe_mode и safe_mode_gid – поставьте Off
- более подробно написано на сайте Безопасности PHP.
Оптимизация
Все параметры ниже редактируются в файле php.ini, который зачастую находится в папке /etc/php.ini
- max_execution_time = 20, время выполнения скрипта – ограничение на выполнение, если скрипт с проблемой или хакер пытается “подвесить” Вас – не дайте возможность серверу уйти в себя!
- max_input_time = 30, аналогично;
- memory_limit = 64M, установите общее ограничение памяти на каждого клиента, аналогично можно задавать в настройка WP, но лучше тут и для всех хостов сразу!
- log_errors = On, контролируйте PHP!
- log_errors_max_len = 1024, задайте ограничение для лога ошибок – раздел с логами не бесконечен…
- post_max_size = 2M, задайте максимальный размер загружаемого контента – фотографий, записей, страниц и т.п.
В следующей части вы прочитаете о некоторых советах по настройке MySQL.
Данный пост является гостевым, весь материал принадлежит Александру
(вот его социальная сеть SportActions.ru и личный сайт Milordk.ru).
Дополнительно – не включайте модули которые не используйте! это и безопасность и ресурсы :)
Ясно, ждем про mysql
@Игорь:
Чего ждать-то, сегодня и опубликую…
Опечатка: posix_mkfifo, не postix_mkifo.
А вообще на боевом сервере мы используем Suhosin и блокируем такие функции: exec, passthru, shell_exec, system, pcntl_exec, popen, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, leak, apache_child_terminate, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid.
Раздел, на котором находятся сайты, смонтирован с параметрами nosuid,nodev,noexec, так что выполнение всяких левых скриптов будет очень сильно затруднено. Вдобавок права доступа установлены так, что сайты изолированы друг от друга.
@Vladimir:
Спасибо, я исправил опечатку :)
И спасибо за подсказки по функциям – я их внесу в тот список в записи.
Vladimir,
мониторание с такими параметрами – половина функционала работать не будет.. это ближе к плагинам.. но без них WP – движок который толком ничего не делает – а ресурсы кушает :)
Долго загружаются- сайт, панель админа, материалы и все остальное (1.5- 3мин.) Устанавливал Joomla 1.5.14 и 1.5.9- не помогает. Одинаково долго в Мозиле, Опере, Експлорере.
Не могли бы мне помочь?
Компьютер- Windows XP Prof. Intel(R) Celeron(R)CPU 3.06GHz 3.07ГГц, 2.00ГБ ОЗУ
Полный объем- 232ГБ, свободно- 162ГБ.
В обычном режиме- без Денвера, загрузки компьютера- нормальные.