Date: Sat, 10 Nov 2002
From: Denis Y. Rechkunov <den@siberianet.ru>
Subject: Пошаговое руководство по установке Apache + mod_php + mod_perl + mod_ssl + MySQL
--------------------------------------------------------------
Apache + PHP + Perl + SSL + MySQL в одном флаконе
-------------------
установим то чем будем качать, в данном случае wget
# cd /usr/ports/ftp/wget
# make && make install
создадим папку для дистрибутивов и перейдем в нее
# mkdir /usr/local/src
# cd /usr/local/src
качаем и устанавливаем сервер mySQL
# wget ftp://ftp.ssnet.ru/pub/freebsd/src/mysql-3.23.52.tar.gz
# tar -zxvf mysql-3.23.52.tar.gz
создать группу mysql
создать пользователя mysql в группе mysql и никаких bash'ей
# /usr/sbin/pw useradd mysql -q -m -g mysql -k /usr/share/skel -s /sbin/nologin
ну а теперь собственно ставим на рога MySQL сервант
откроем файл rc.local и вставим туды строчку вида...
/usr/local/etc/rc.d/mysql.server start
ну и ребуримся %)
# ee /etc/rc.local
# sync && reboot
ребутнулись и проверим как ОНО "стоит" :)
# ps ax|grep mysql
# mysqlshow
убедились? ну и ладненько поехали дальше ставить Apache + php + perl + ssl начнем...
# cd /usr/local/src
# wget ftp://ftp.ssnet.ru/pub/freebsd/src/apache_1.3.26.tar.gz
# tar -zxvf apache_1.3.26.tar.gz
# cd apache_1.3.26
# wget ftp://ftp.ssnet.ru/pub/freebsd/src/patches_1.3.26rusPL30.15.tar.gz
# tar -zxvf patches_1.3.26rusPL30.15.tar.gz
# ./configure
на этом пока оставим Апач и перейдем к PHP
# cd ..
# wget ftp://ftp.ssnet.ru/pub/freebsd/src/php-4.1.1.tar.gz
# tar -zxvf php-4.1.1.tar.gz
# cd php-4.1.1
# ./configure --with-apache=../apache_1.3.26 --enable-track-vars
--enable-mod_charset --with- mysql=/usr/local/mysql
# make && make install
а теперь mod_perl
# cd ..
# wget ftp://ftp.ssnet.ru/pub/freebsd/src/mod_perl-1.0-current.tar.gz
# tar -zxvf mod_perl-1.0-current.tar.gz
# cd mod_perl-1.27
# perl Makefile.PL APACHE_SRC=../apache_1.3.26/src DO_HTTPD=1 USE_APACI=1 EVERYTHING=1
# make && make test && make install
тааак... далее SSL и собственно Apache
# cd ..
# wget ftp://ftp.ssnet.ru/pub/freebsd/src/mod_ssl-2.8.10-1.3.26.tar.gz
# wget ftp://ftp.ssnet.ru/pub/freebsd/src/openssl-0.9.6d.tar.gz
# tar -zxvf mod_ssl-2.8.10-1.3.26.tar.gz
# tar -zxvf openssl-0.9.6d.tar.gz
# cd openssl-0.9.6d
# ./config
# make
# cd ..
# cd mod_ssl-2.8.10-1.3.26
# ./configure --with-apache=../apache_1.3.26 --with-ssl=../openssl-0.9.6d
--prefix=/usr/local/ apache --activate-module=src/modules/php4/libphp4.a
# cd ../apache_1.3.26
# make
# make certificate
# make install
немного поправим конфиг у апача
# ee /usr/local/apache/conf/httpd.conf
и добавим строчки
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
этим самым включаем php
далее ищем фрагмент вида
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>
и превращаем его в
<IfModule mod_dir.c>
DirectoryIndex index.html index.php index.shtml index.prl
</IfModule>
далее уберем коментарий на строчках AddType text/html .shtml
AddHandler server-parsed .shtml
этим включим сервер инклудес :) полезная фичка
теперь сделаем чтоб апачч при запуске с ssl не рычал на пароль
найдем строчку
SSLPassPhraseDialog builtin
и коментарим ее (#SSLPassPhraseDialog builtin)
пишем новую
SSLPassPhraseDialog exec:/usr/local/apache/bin/startssl.pl
да и ваше лазим по конфигу и правим под себя...
(полезно копию оригинала оставить,
а то /dev/кривые_ручки, обычно, не совместим со стабильной работой)
сохраняем и выходим
теперь становимся кулпprogrammmmmm! ;)
# ee /usr/local/apache/bin/startssl.pl
и малюем супер скрипт
#!/usr/bin/perl
print "super-duper-mega-passwordn";
вместо super-duper-mega-password пишем пароль который указали когда делали
"make certificate"
сохраняем и выходим
# chmod +x /usr/local/apache/bin/startssl.pl
вырубаем "старый" сервак httpd который поставился с фрюхой (ну или не поставился)