Как перекомпилировать Apache, PHP и IMAP с дескрипторами файлов, превышающими значение FD_SETSIZE (1024), в Debian и Ubuntu

Создана:

2016-11-16 13:02:35 UTC

Изменена:

2017-08-16 18:32:13 UTC

0

Помогла ли вам статья?


Есть вопросы?

Отправить запрос

Как перекомпилировать Apache, PHP и IMAP с дескрипторами файлов, превышающими значение FD_SETSIZE (1024), в Debian и Ubuntu

Applicable to:

  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux
  • Plesk 10.4 for Linux/Unix

Дополнительная информация

Начиная с Parallels Plesk Panel (PP) 8.2.0 стандартная сборка Apache позволяет разместить до 900 доменов без перекомпиляции системных пакетов , если на сервере РР включена функция Piped Logs .

Решение

Добавьте следующие строки в /etc/sysctl.conf :

fs.file-max = 65536

Выполните следующую команду:

/sbin/sysctl -w fs.file-max=65536

Обратите внимание, что значение fs.file-max не должно превышать 1048576.

Добавьте следующую строку в начало /etc/init.d/apache2 и /usr/sbin/apache2ctl :

ulimit -n `cat /proc/sys/fs/file-max`

Измените значение __FD_SETSIZE в файлах /usr/include/bits/typesizes.h и /usr/include/nptl/bits/typesizes.h (если есть). Оно должно выглядеть так:

#define __FD_SETSIZE 65536

Скачайте и пересоберите пакеты:

# apt-get install apt-src
# apt-src --build install openssl
# dpkg -i libssl*.deb openssl*.deb
# apt-src --build install apache2
# dpkg -i apache2_*.deb apache2*-common*.deb apache2-mpm-prefork*.deb apache2-utils*.deb apache2.*bin*.deb
# cp /opt/psa/suexec/psa-suexec /usr/lib/apache2/suexec
# /etc/init.d/apache2 restart

Дальнейшие действия зависят от вашей операционной системы:

  • Для Debian 4-6:

    # apt-src --build install libc-client2007e
    # dpkg -i libc-client*-dev*.deb libc-client*.deb mlock*.deb
    # useradd –m php-build
    # echo “php-build ALL=(ALL) ALL” >> /etc/sudoers
    # su – php-build
    # apt-src --build install php5
    # exit
    # cd ~php-build
    # dpkg -i php5*.deb libapache2-mod-php5_*.deb
    

    Примечание . Создание пользователя "php-build" необходимо потому, что после завершения компиляции PHP 5.3.3 в Debian 6.0 пытается запустить собственный экземпляр MySQL для проверки функций MySQL, а MySQL не запускается под пользователем root, что приводит к сбою процесса сборки пакетов.

  • Для Ubuntu 10.04:

    #apt-src --build install libc-client2007e
    #dpkg -i libc-client2007e-dev*.deb libc-client2007e*.deb mlock*.deb
    #apt-src --build install php5
    #dpkg -i `ls *deb|grep php5 | grep -v apache-mod`
    

Чтобы узнать, как предотвратить перезапись ваших пересобранных пакетов во время обновления системы, смотрите следующую статью:

http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html#s-pin

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0
Еще есть вопросы? Отправить запрос
Войдите в службу, чтобы оставить комментарий.