>Из портов я не устанавливаю так как у меня их нет. Может Но исходники откуда то берете, качаете?
Ладно, вот попадалась как то на глаза чуть ли не степ бай степ, сохранил на винт, когда также врукопашную устанавливал, стренькое уже руководство, подправите сами., надеюсь меня не убьют за этот пост :))
Сборка веб-сервера
------------------
Распаковываем архивы:
# tar xvfz apache_1.3.33.tar.gz
# tar xvfz mod_perl-1.29.tar.gz
# tar xvfj php-4.4.0.tar.bz2
# tar xvfz mod_ssl-2.8.24-1.3.33.tar.gz
# tar xvfz openssl-0.9.8.tar.gz
# tar xvfz mysql-4.0.25.tar.gz
Устанавливаем openssl
# cd openssl-0.9.8
# sh config no-idea no-threads -fPIC
# make
# make test
# make all
# make install
Внедрение модуля mod-ssl в исходный код apache
# cd ../mod_ssl-2.8.24-1.3.33
# ./configure --with-apache=../apache_1.3.33 --with-ssl=../openssl-0.9.8
--prefix=/usr/local/apache
Выполняем конфигурацию apache
# cd ../apache_1.3.33
# ./configure --prefix=/usr/local/apache --bindir=/usr/bin --sbindir=/usr/sbin
--sysconfdir=/usr/local/apache/conf --logfiledir=/var/log/apache
--datadir=/usr/local/apache/data
Устанавливаем базу данных mysql:
# cd ../mysql-4.0.25
# ./configure --with-innodb
# make
# make install
# ./scripts/mysql_install_db
# /usr/local/bin/mysqld_safe --user=root & - Данную строку необходимо добавить в автозагрузку,
т. е. в файл /etc/rc.local
Если у вас много оперативной памяти и много таблиц, можно попробовать
использовать следующую оптимизацию. Запускем mysqld следующим образом.
# /usr/local/bin/mysqld_safe --user=root -O key_buffer=64M -O table_cache=256
-O sort_buffer=4M -O record_buffer=1M &
Эту строчку надо добавить в автозагрузку, т. е. в файл /etc/rc.local
key_buffer - Величина буфера в байтах, который используется для индексов.
Рекомендуется увеличить его, если используется много insert и delete запросов.
sort_buffer - Под каждый поток, который использует сортировку order by group by
выделяется количество памяти, определённое этим параметром, поэтому, при большом
количестве памяти следует увеличить этот параметр.
record_buffer - При последовательном сканировании таблиц, например, при
использовании insert, под каждую таблицу выделяется память, определяемая этим
параметром. Его также следует увеличить в целях увеличения производительности
базы данных.
После такой оптимизации mysql работает значительно быстрее.
Если оперативной памяти немного, то mysql запускаем стандартным способом
# /usr/local/bin/mysqld_safe --user=root &
Эту строчку надо добавить в автозагрузку, т. е. в файл /etc/rc.local
# /usr/local/bin/mysqladmin -u root password 'пароль'
# ldconfig -im /usr/local/lib/mysql
Эту директорию надо прописать в файлах конфигурации системы и добавить в
автозагрузку в файл /etc/rc.local, чтобы после перезагрузки было известно где
искать файл библиотеки libmysqlclient.so.10
Устанавливаем PHP
# cd ../php-4.4.0
# ./configure --prefix=/usr --with-apache=../apache_1.3.33
--with-config-file-path=/usr/local/apache/conf --disable-debug --enable-safe-mode
--enable-inline-optimization --with-gd=/usr/local --with-gnu-ld
--enable-memory-limit --with-mysql --with-zlib
# make
# make install
Внедрение модуля mod_perl в исходный код apache
# cd ../mod_perl-1.29
# perl Makefile.PL EVERYTHING=1 APACHE_SRC=../apache-1.3.33/src USE_APACI=1
PREF_HTTPD=1 DO_HTTPD=1
# make
# make install
На этом все приготовления закончены, переходим к компиляции apache
# cd ../apache_1.3.33
# ./configure --prefix=/usr/local/apache --bindir=/usr/bin --sbindir=/usr/sbin
--sysconfdir=/usr/local/apache/conf --logfiledir=/var/log/apache
--datadir=/usr/local/apache/data --localstatedir=/var --runtimedir=/var/run
--enable-module=ssl --enable-rule=SSL_SDBM --disable-rule=SSL_COMPAT
--activate-module=src/modules/php4/libphp4.a --enable-module=php4
--activate-module=src/modules/perl/libperl.a --enable-module=perl
--disable-module=status --disable-module=userdir --disable-module=autoindex
--disable-module=asis --disable-module=imap --disable-module=env
--disable-module=actions
На момент конфигурирования веб сервера libphp4.a libperl.а еще не созданы и
если у вас появится ошибка, то не удивляйтесь, если не найдете их в каталоге,
откуда, якобы, они должны подключаться:
src/modules/php4/libphp4.a
src/modules/perl/libperl.а
Но если в этих каталогах пусто, то вы сделали что то не так и ошибку следует
искать в инсталлировании mod-perl либо в mod-php, в зависимости от того какая
директория пуста. Я, например, почему-то забыл выполнить make install для mod-php
и после инсталляции и повторном конфигурировании apache, всё прошло успешно.
# make
# make certificate
Последуют вопросы о фирме месте расположения и т.д. для сертификата.
На вопрос Encrypt the private key now? ответить нет
на остальные вопросы отвечать по вкусу.
# make install
Всё, apache скомпилирован и установлен.
Запуск apache с поддержкой протокола https
# cd /usr/sbin
# ./apachectl startssl
Для проверки работоспособности сервера, следует набрать его адрес в броузере, т. е.,
примерно, следующее:
http://your.server.ru/
или так:
https://your.server.ru/
Открываем http.conf и добавляем index.php, index.pphp и index.php3 после index.html
DirectoryIndex index.html index.php index.pphp index.php3
Для того чтоб выполнялись файлы написанные на php и php3 добавляем следующие записи:
AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php3-source .phps
Расскомментировать строки для выполнения server-parsed HTML files:
AddType text/html .shtml
AddHandler server-parsed .shtml
В директории /usr/local/apache/data/cgi-bin для выполнения cgi скриптов следует изменить
Options NONE
на
Options ExecCGI
Находим строчку
SSLPassPhraseDialog builtin
и заменяем её на
SSLPassPhraseDialog exec:/usr/local/etc/rc.d/startssl.pl
(но это только в том случае, если на вопрос Encrypt the private key now? ответили да)
После этого, создаём файл startssl.pl в директории /usr/local/etc/rc.d и записываем в него
своё секретное_слово, указанное при криптовании и сборк-компиляции apache.
# touch /usr/local/etc/rc.d/startssl.pl
# ee /usr/local/etc/rc.d/startssl.pl
#!/usr/bin/perl
print "секретное_слово\n"
# chmod 700 /usr/local/etc/rc.d/startssl.pl
Открываем php.ini (или создаём вначале, если таковой отсутствует) и меняем
# touch /usr/local/apache/conf/php.ini
# ee /usr/local/apache/conf/php.ini
register_globals = off
на
register_globals = on
также добавляем в нём следующие строки для библиотеки gd
safe_mode = off
extension_dir = /usr/local/lib
Примерный файл /etc/rc.local
/sbin/ldconfig -im /usr/local/lib/mysql
/usr/local/bin/mysqld_safe --user=root &
/usr/sbin/apachectl startssl