www.maasoftware.ru

MaaSoftware forum
Текущее время: 18 дек 2017 08:18

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Установка Apache из исходников
СообщениеДобавлено: 12 янв 2012 11:22 
Не в сети

Зарегистрирован: 11 авг 2008 18:33
Сообщения: 193
Установка Apache из исходников

apt-get install apache2

Но версия apache в пакетах не поддерживает механизм suexec для разных пользователей, поэтому скачиваем и устанавливаем apache из портов:

В Debian 7 Wheezy pcre устанавливаем из пакетов:
Код:
apt-get install libpcre3-dev
А апач, например, версии 2.2.25, из исходников, аналогично, как далее для Debian 6:
./configure --enable-suexec --with-suexec-docroot=/var/www --enable-rewrite --enable-substitute --with-pcre=/usr/bin/pcre-config

pcre 8.02 для utf-8 pcre с сайта http://www.pcre.org/
apache 2.2.21 с сайта http://apache.org/

wget -O pcre-8.02.tar.bz2 http://sourceforge.net/projects/pcre/files/pcre/8.02/pcre-8.02.tar.bz2/download
tar xjf pcre-8.02.tar.bz2
cd pcre-8.02/
./configure --enable-suexec --with-suexec-docroot=/var/www --enable-rewrite --enable-substitute --with-pcre=/usr/local/bin/pcre-config
make
make install
ldconfig
cd ..
wget http://www.sai.msu.su/apache//httpd/httpd-2.2.21.tar.bz2
tar xjf httpd-2.2.21.tar.bz2
cd httpd-2.2.21/
./configure --enable-suexec --with-suexec-docroot=/var/www --enable-rewrite --enable-substitute --with-pcre=/usr/local/bin/pcre-config
make
make install

Apache установится в /usr/local/apache2

Далее правим конфиг apache'а, добавляем модуль php5.conf php5.load в конфигурацию из пакетной установки /etc/apache2/mods-enabled:
добавляем в /usr/local/apache2/conf/httpd.conf
Код:
Include mods-enabled/*.load
Include mods-enabled/*.conf
и добавляем демон нашего apache2 из /usr/local/apache2 в автозагрузку.

Суть /etc/init.d/apache2 в следующих строках:
Код:
prog="Apache 2.2.21"
program_folder=/usr/local/apache2/bin
prog_file=$program_folder/apachectl

start()
{
    echo -n $"Starting $prog: "
    cd $program_folder
    $prog_file start #&& /bin/root/success || /bin/root/failure
    RETVAL=$?
    echo
}

reload()
{
    echo -n $"Reloading config for $prog: "
    cd $program_folder && $prog_file configtest && $prog_file graceful #&& /bin/root/success || /bin/root/failure
    RETVAL=$?
    echo
}

stop()
{
    echo -n $"Stopping $prog: "
    cd $program_folder
    $prog_file stop #&& /bin/root/success || /bin/root/failure
    RETVAL=$?
    echo
}
Мой файл /etc/init.d/apache2:
Код:
#!/bin/bash
### BEGIN INIT INFO
# Provides:          apache2
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $network $time
# Should-Stop:       $network $time
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: descr text
# Description:       description text
### END INIT INFO

# send notification e-mail on boot up

DEFAULTS="/etc/default/apache2"

# Source function library.
tst=""
if [ -r "/etc/init.d/functions" ]; then
. /etc/init.d/functions
else
tst="echo \"/etc/init.d/functions not found\""

if [ -r "/lib/init/vars.sh" ]; then
  tst=""
  . /lib/init/vars.sh
  tst=""
else
  echo "/lib/init/vars.sh not found"
fi
if [ -r "/lib/lsb/init-functions" ]; then
  tst=""
  . /lib/lsb/init-functions
  tst=""
else
  echo "/lib/lsb/init-functions not found"
fi

$tst
fi


prog="Apache 2.2.21"
RETVAL=0

program_folder=/usr/local/apache2/bin
prog_file=$program_folder/apachectl

start_server="$program_folder/httpd start"
stop_server="$program_folder/httpd stop"
#status_server="$program_folder/httpd status"
reload_server="$program_folder/httpd reload"

start()
{
    echo -n $"Starting $prog: "
    cd $program_folder
#    echo "$prog_file start && /bin/root/success || /bin/root/failure"
    $prog_file start && /bin/root/success || /bin/root/failure
    RETVAL=$?
    echo
}

reload()
{
    echo -n $"Reloading config for $prog: "
    cd $program_folder && $prog_file configtest && $prog_file graceful && /bin/root/success || /bin/root/failure
    RETVAL=$?
    echo
}

stop()
{
    echo -n $"Stopping $prog: "
    cd $program_folder
    $prog_file stop && /bin/root/success || /bin/root/failure
    RETVAL=$?
    echo
}

status() {
    ps axuw|grep apache
    exit 0
}

logrotate() {
    echo -n $"Rotating logs for $prog: "
    for log in `ls /var/log/httpd/*log`; do
    #echo $log
    /etc/simple_logrotate.sh $log >/dev/null
    done
    echo "done"
    exit 0
}

info() {
    echo
    echo $"Usage: $0 {start|stop|restart|status}"
    echo
    exit 0
}

case "$1" in
start)
    start
    ;;

stop)
    stop
    ;;

reload)
    reload
    ;;

restart)
    stop
    sleep 2s
    start
    ;;

status)
    status
    ;;

logrotate)
    logrotate
    ;;

*)
    echo $"Usage: $0 {start|stop|reload|restart|status|logrotate}"
    exit 1
esac

exit 0


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB