The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Ошибка при установке Apache с модулем mod_perl "
Отправлено mixa, 02-Авг-07 17:11 
>Из портов я не устанавливаю так как у меня их нет. Может

Но исходники откуда то берете, качаете?

Ладно, вот попадалась как то на глаза чуть ли не степ бай степ, сохранил на винт, когда также врукопашную устанавливал, стренькое уже руководство, подправите сами., надеюсь меня не убьют за этот пост :))

                           Сборка веб-сервера
                           ------------------

Распаковываем архивы:

# 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

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру