При установке модуля Joomla поймал ошибку:
mod_fcgid: HTTP request length 131519 (so far) exceeds MaxRequestLen (131072),
В браузере имеем 500 Internal Server Error.
В описание vhost добавляем:
<IfModule mod_fcgid.c>
FcgidConnectTimeout 20
MaxRequestLen 10485760
</IfModule>
Внимательнее с контекстом – просто в конфиг рутовой директории добавить нельзя – будет ругаться. Ошибка уйдёт.
На зметку пара элементарных скриптов для резерного копирования веб проекта – форума, сайта, и т.д. и т.п.
Резервируем базу. Создаем файл:
#touch /etc/periodic/daily/340.websqlbkp.sh
В файл пишем:
#!/bin/sh
bkpdir=/home/bkp/sql
curdate=`date +%Y-%m-%d`
mysqldump -u root -pmypass --databases web-base > ${bkpdir}/web-base-$curdate.sql
Пароль без пробела сразу за атрибутом -p. Делаем файл исполняемым. Создаём директории куда будут складываться бэкапы.
Теперь пака с файликами проекта:
#touch /etc/periodic/daily/350.bkpwebdir.sh
В файле:
#!/bin/sh
bkpdir=/home/bkp/web
curdate=`date +%Y-%m-%d`
tar czf $bkpdir/bkp-$curdate.tar.gz /usr/local/www/apache22/data/mydir
Получим файлики с именами содержащими дату создания. Не забываем периодически старые бэкапы удалять.
Смотрим вывод top
обращаем внимание на размер процессов httpd.
У меня почти с дефолтным набором модулей размер SIZE (это показатель того сколько памяти резервирует под себя процесс) одного процесса httpd равен 82148k.
Задача – сделать процесс апача как можно легче минимальными усилиями. Будем отключать загрузку модулей в конфиге(httpd.conf). Наверное правильнее перекомпилировать апач, но такой вариант позволяет более оперативно управлять конфигурацией сервера, что-то оперативно включать, что-то удалять.
Продолжить чтение →
Иногда полезно просмотреть с какого айпи чаще всего пользователи заходят на Ваш веб сайт. Ну скажем если вы подозреваете что кто-то злоупотребляет количеством одновременных соединений с одной машины.
Парсим лог апача выбираем уникальные айпи и количество хитов.
#sort /var/log/httpd-access.log | awk '{print $1}' | uniq -c | sort -n > /tmp/who
Получаем список – количество вхождений, и айпи.
23 182.24.23.5
24 23.10.234.54
27 129.34.25.333
и т.д.
Кстати ограничить количество соединений на 80 порт можно строкой фаервола (ipfw):
${fwcmd} add allow tcp from any to me 80 limit src-addr 200
После src-addr пишем количество одновременных коннектов с одного айпи.
Продублирую описание ошибки из предыдущей статьи потому как в рунете решения не нашёл, а видно что случается…
Если после настройки fcgid под apache22 мы получили при заходе на страницу Internal Server Error, а в логах апача такую строку:
[warn] [client 223.45.3.19] (53)Software caused connection abort: mod_fcgid: error reading
data from FastCGI server, referer: http://server.ru/index.php
[error] [client client 223.45.3.19] Premature end of script headers: index.php, referer:
http://server.ru/
Стоит проверить права на запуск скрипта php-wrapper (или как он у вас называется) и php-cgi. Скрипт должен быть доступен на запуск для пользователя (или группы) под которым работает апач.
Для увеличения производительности веб сервера сегодня ставим fcgid на апач (сервера у меня не настолько загружены чтобы переходить на nginix или lighttpd). Mod_fcgid написан специально для апача второй ветки и является продолжением разработки fastCGI.
Продолжить чтение →
Тривиальная проблема – не собирается порт.
Нужно обновить апач до 2.2.16
Делаем portsnap fetch
, portsnap update
.
Пробуем обновиться с помощью portupgrade:
#portupgrade -f apache
Не проходит. Пробуем деинсталлировать порт и поставить заново:
#cd /usr/ports/www/apache22
#make deinstall
#make
Получаем ту же ошибку:
# make
===> apache-2.2.16 depends on file: /usr/local/bin/perl5.8.9 - found
===> apache-2.2.16 depends on file: /usr/local/bin/autoconf-2.62 - found
===> apache-2.2.16 depends on package: libtool>=2.2 - found
===> apache-2.2.16 depends on shared library: expat.6 - found
===> apache-2.2.16 depends on shared library: apr-1 - found
===> apache-2.2.16 depends on shared library: pcre.0 - found
===> apache-2.2.16 depends on shared library: iconv.3 - found
===> Configuring for apache-2.2.16
checking for chosen layout... FreeBSD
checking for working mkdir -p... yes
checking build system type... i386-portbld-freebsd7.2
checking host system type... i386-portbld-freebsd7.2
checking target system type... i386-portbld-freebsd7.2
Configuring Apache Portable Runtime library ...
checking for APR... configure: error: the --with-apr parameter is incorrect.
It must specify an install prefix, a build directory, or an apr-config file.
===> Script "configure" failed unexpectedly.
Please report the problem to apache@FreeBSD.org [maintainer] and attach the
"/usr/ports/www/apache22/work/httpd-2.2.16/config.log" including the output
of the failure of your make command. Also, it might be a good idea to provide
an overview of all packages installed on your system (e.g. an `ls
/var/db/pkg`).
*** Error code 1
Stop in /usr/ports/www/apache22.
*** Error code 1
Stop in /usr/ports/www/apache22.
Ругается на APR (что это такое можно почитать здесь: http://www.rsdn.ru/article/files/libs/apr.xml)
Если не используем – комментируем опции в Makefile
#--with-apr=${LOCALBASE}/bin/apr-1-config \
#--with-apr-util=${LOCALBASE}/bin/apu-1-config
Далее собираем ставим как обычно.
По сути шпаргалка для себя, поскольку тема описана в инете миллион раз, но как-то временами очень разрозненно. Итак задача – для ограничения пользователей к вебинтерфейсу какого-нибудь вебсервиса закрыть директорию апача паролем и предотвратить перехват пароля шифрованием с помощью openssl, плюс прописать сети из которых доступ к апачу разрешён, и закрыть всё это дополнительно фаерволлом… Продолжить чтение →
В принципе проблема не нова и где только не описана – но продублирую у себя для себя же. :)
В apache 2.2 при по-сути дефолтных настройках апач при запуске ругается:
[warn] (2)No such file or directory: Failed to enable the ‘httpready’ Accept Filter
Лечится так (сорри за почти откровенный копипаст из сети): Продолжить чтение →