apache
Как исправить в apache ошибку ssl_error_rx_record_too_long
Если вы настроили apache для работы с https, то после этого вы можете получить такую ошибку
(Error code: ssl_error_rx_record_too_long)
Исправить это можно заменив
NameVirtualHost *
на
NameVirtualHost *:80
и добавить в каждый
<VirtualHost *>
порт :80 или :443
<VirtualHost *:80>
<VirtualHost *:443>
Apache2 + MySQL установка и настройка (Ubuntu/Debian)
Как установить и настроить apache2 и MySQL.
Подробная инструкция написано тут.
Рекомендую для новичков и продвинутым. :)
Замена автоиндексу в apache2
Для создания файлового архива потребовался "единый" index.php для кучи каталогов. Решение нашлось следущее (правда не совсем удачное :))
1. Отключаем модуль autoindex в апаче, удалив соответствующие файлы из /etc/apache2/mods-enabled
2. В /etc/apache2/apache2.conf добавляем строки:
ErrorDocument 404 /index.php ErrorDocument 402 /index.php
3. Закидываем index.php в рутовский каталог.
4. Для обработки файлов в index.php добавляем код примерно такого содержания:
$url=$_SERVER['REQUEST_URI']; if($url == "" || $url == "/" || ereg("/+/$",$url)) {$arr = glob("*");} else {$arr = glob($root.$url."*");} // здесь: // $root = DirectoryRoot (обычно это /var/www) // можно заченить на opendir, readdir... мне показалось так удобнее for ($i = 0; $i <= count($arr)-1; $i++) { $f = "$arr[$i]"; $fu = str_replace("$root","",$f); $fn = str_replace("$root".$url,"",$f); // здесь: // $f - системный путь к файлу // $fu - ссылка на файл // $fn - имя файла // ВАШ КОД // ссылка, например, будет выглядеть так: // $filesize = get_file_size("$f"); // echo "<a href='$fu'> $fn ($filesize)</a>"; }
Обновление временных SSL сертификатов в Apache на RHEL
Обновление временных SSL сертификатов в RHEL является гораздо большим геморроем, чем в Debian. Впрочем, убедитесь в этом сами:
Переход с apache 2.0 на 2.2, ошибка "client denied by server configuration"
В apache 2.2 изменили права на DocumentRoot по умолчанию. Предполагается что теперь
нужно разрешать право смотреть на каждом виртуальном хосту. Но если у вас много виртуальных хостов то проще вернуть все на место Ж:-)
в 2.2 по умолчанию
<Directory />
AllowOverride None
Order Deny,Allow
Deny from all
<Directory>исправить на
<Directory />
AllowOverride None
Order Deny,Allow
<Directory>Как отключить в Apache список модулей в статусе
# занести в конфиг апача
# не показывать Apache/2.0.55 (Debian) DAV/2 SVN/1.3.2 Perl/v5.8.8 Server at remote.org.ua Port 80
ExtendedStatus Off
ServerTokens Prod
Перекомпиляция apache в OpenBSD для изменения параметров chmod
Иногда возникает потребность в OpenBSD перекомпилировать suexec для изменения параметров(жутко секурная программа, по другому исправить параметры нельзя Ж:-) например мне понадобилось что бы я мог запускать cgi скрипты не из /var/www/htdocs, а из /usr/local/www/htdocs. Точно так же можно изменять любые параметры suexec
1) открываем /usr/src/usr.sbin/httpd/Makefile.bsd-wrapper
и изменяем нужный параметр
в моем случае это вот
===
#HTTPD_PREFIX= /var/www
HTTPD_PREFIX= /usr/local/www
===
2) перекомпилируем и устанавливаем апач
cd /usr/src/usr.sbin/httpd/
make -f Makefile.bsd-wrapper
make install
3) незабываем опять дать права запуска suexec
chown root:wheel /usr/sbin/suexec
4) подправляем конфиг (если необходимо) и перезапускаем апач
Добавление модуля к apache в OpenBSD
OpenBSD поставляется с пропатченым apache, дополнительными модулями которого не подключены по умолчанию, но исходные коды модулей есть.
Вот пример установки модуля mod_mime_magic. В принципе так можно делать в любой OS, но если есть возможность лучше воспользоватся системой пакетов.
$ cd /usr/src/usr.sbin/httpd/src/modules/standard/ $ apxs -i -a -c mod_mime_magic.c cc -O2 -pipe -DDEV_RANDOM=/dev/arandom -DMOD_SSL=208116 -DEAPI -DUSE_SETUSERCONTEXT -fPIC -DSHARED_MODULE -I/usr/lib/apache/include -c mod_mime_magic.c cc -shared -fPIC -DSHARED_MODULE -o mod_mime_magic.so mod_mime_magic.o [activating module `mime_magic' in /var/www/conf/httpd.conf]
Тестирование https из командной строки
printf "GET / HTTP/1.0\nHost: ВИРТУАЛЬНЫЙ_ХОСТ\n\n" | openssl s_client -connect НУЖНЫЙ_IP:443 -state -debug



