Loading

Не так давно необходимо было поднять 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