Не так давно необходимо было поднять WordPress на с 256MB оперативной памяти. Сначала был испытана конфигурация на Apache, но в силу того, что веб-сервер отъедал очень много памяти, на сайте было удобного перемещаться 2-3-ем пользователям. Нагрузка на сервер при этом была очень большая. После этого было решено настроить связку Nginx+spawn-fcgi+Wordpess. Даже при таком значении оперативной памяти, сайт работает намного быстрее при бОльшей в десятки раз посещаемости.
Итак, вводные данные:
- OS Debian;
- Nginx;
- PHP5 + php5-cgi
Сам скрипт перезапуска spawn-fcgi:
#! /bin/sh # INIT INFO # Provides: spawn-fcgi # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts FastCGI for PHP # Description: starts FastCGI for PHP using start-stop-daemon # Command: spawn-fcgi -a 127.0.0.1 -p 53217 -P /var/run/fastcgi-php.pid /usr/bin/php5-cgi ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin NAME=spawn-fcgi PID=/var/run/fastcgi-php.pid DAEMON=/usr/bin/spawn-fcgi DAEMON_OPTS="-a 127.0.0.1 -p 53217 -C 5 -P $PID /usr/bin/php5-cgi" test -x $DAEMON || exit 0 set -e case "$1" in start) echo "Starting $NAME: " start-stop-daemon --start --pidfile $PID --exec $DAEMON -- $DAEMON_OPTS echo "done." ;; stop) echo "Stopping $NAME: " start-stop-daemon --stop --pidfile $PID --retry 5 rm -f $PID echo "done." ;; restart) echo "Stopping $NAME: " start-stop-daemon --stop --pidfile $PID --retry 5 rm -f $PID echo "done..." sleep 1 echo "Starting $NAME: " start-stop-daemon --start --pidfile $PID --exec $DAEMON -- $DAEMON_OPTS echo "done." ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart}" >&2 exit 1 ;; esac exit 0
Скрипт довольно простой — производит только запуск и остановку сервиса с промежутком в одну секунду и попытками повторения равным 5-ти.
Для установки скрипта необходимо создать файл в каталоге /etc/init.d и назначит права при помощи команды chmod 755 /etc/init.d/<script>
Для установки автозапуска скрипта нужно выполнить команду
update-rc.d <script> defaults