Я как обычно ставить буду из портов. Советую перед установкой обновить их.
# cd /usr/ports/www/apache22/
# make install clean
# make install clean
Все конфигурационные файлы располагаются теперь в /usr/local/etc/apache22/. Давайте отредактируем httpd.conf, а именно добавим/исправим:
# Слушаем 80 порт
Listen 80
# Имя сервера
ServerName fr33man.ru
# Каталог, где храняться html файлы
DocumentRoot "/usr/local/www/html/"
# Папка для скриптов
ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/"
# Пользовательские странички хранятся в ~/www каталоге
UserDir www
# Описываем каталоги пользователей
< Directory "/home/*/www">
AllowOverride None
Options Indexes
Order Deny,Allow
Allow from All
< /Directory>
# Описываем папку со скриптами и с Html страничками
< Directory "/usr/local/www/cgi-bin/">
AllowOverride None
Options ExecCGI
Order Allow,Deny
Allow from All
< /Directory>
< Directory "/usr/local/www/html/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
< /Directory>
Здесь мы указываем, что странички пользователей будут храниться в папке www, в их домашнем каталоге. Так же мы описываем каждую директорию.
Для начала остановимся на этом, и перейдем к настроке SSL.
Настройка SSL.
Перед настройкой сервера создадим сертефикаты:
# cat gen.sh
# ./gen.sh
# ls
|
Все прошло без проблем, осталось перенести их в надежное место:
# cp server.* /usr/local/etc/apache22/
После этого добавляем в httpd.conf строку:
Include etc/apache22/extra/httpd-ssl.conf
Последний шаг - редактирование httpd-ssl.conf:
# Слушаем 443 порт
Listen 443
# Добавляем типы, для сертефикатов
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
# На запрос пароля выполняем скрипт
SSLPassPhraseDialog exec:/usr/local/etc/apache22/echo
# Параметры SSL кэша
SSLSessionCache shmcb:/var/run/ssl_scache(512000)
SSLSessionCacheTimeout 300
SSLMutex file:/var/run/ssl_mutex
# Описываем виртуальный хост
< VirtualHost 213.251.193.69:443>
DocumentRoot "/usr/local/www/html/"
ServerName ssl.fr33man.ru:443
ServerAdmin postmaster@fr33man.ru
ErrorLog /var/log/httpd-error.log
TransferLog /var/log/httpd-access.log
Alias /admin/ "/usr/local/www/secretarea/"
< Directory "/usr/local/www/secretarea">
Options All
AllowOverride All
Order Deny,Allow
Allow from all
< /Directory>
< Directory "/usr/local/www/html/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
< /Directory>
# Включаем режим SSL и указываем пути к сертефикатам
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+
LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/etc/apache22/server.crt
SSLCertificateKeyFile /usr/local/etc/apache22/server.key
< FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
< /FilesMatch>
< Directory "/usr/local/www/apache22/cgi-bin">
SSLOptions +StdEnvVars
< /Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /var/log/httpd-ssl_request.log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
< /VirtualHost>
Так как директория admin не описана в httpd.conf, то по протоколу http она доступна не будет, но будет доступна через https.
В httpd-ssl.conf промелькнул файл /usr/local/etc/apache22/echo. Это простой sh-скрипт, который выводит на экран пароль от секретного ключа:
# cat /usr/local/etc/apache22/echo
# ls -la /usr/local/etc/apache22/echo
|
А нужен он для того, чтобы при перезагрузке apache не спрашивал парольную фразу.
Осталось запустить apache и проверить это все в работе:
/usr/local/etc/rc.d/apache22.sh start
возможно у Вас отключен javascript, если включен - просто обновите страницу