Возможно вы искали: 'Edelweiss'

May 15 2025 19:05:45
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Настройка работы Plesk 8 через PHP/FastCGI(mod_fcgid) + SuExec (plesk python web fastcgi php apache)

Настройка работы Plesk 8 через PHP/FastCGI(mod_fcgid) + SuExec (plesk python web fastcgi php apache)

Ключевые слова: plesk, python, web, fastcgi, php, apache, (найти похожие документы)

From: Alexander Dryantsov <lucif3r@mail.ru.>
Newsgroups: email
Date: Mon, 23 May 2008 17:02:14 +0000 (UTC)
Subject: Настройка работы Plesk 8 через PHP/FastCGI(mod_fcgid) + SuExec


Содержание

Введение
Установка Apache
Настройка Apache
Установка и Настройка PHP
Защищаем директории от чтения
Скрипт для автоматизации настройки


Введение

Данный документ описывает настройку сервера под управлением контрольной
панели Plesk для работы с Apache 2.2.3 с mod_fcgid и PHP 5.2.6 в режиме FastCGI
+ Suhosin Security patch
+ модуль eAccelerator
+ модуль ZendOptimizer
+ модуль ionCube loader

Перед установкой создадим директорию /root/distr, в нее мы будем
складывать все наши исходники:

mkdir /root/distr


Установка Apache

В модуле mod_fcgid существует параметр IPC_COMM_TIMEOUT, отвечающий за
время ожидания отклика от бакенда(PHP).

По дефолту этот таймаут выставлен в 40 секунд, я рекомендую увеличить
этот таймаут, в том случае, если у вас имеются медленные скрипты.

К сожалению в Apache 2 нельзя поменять значение этой директивы для
виртуальных хостов, поэтому необходимо изменить значение в исходнике,в
файле fcgid_conf.c.

cd /root/distr/
wget http://ovh.dl.sourceforge.net/sourceforge/mod-fcgid/mod_fcgid.2.2.tgz
tar -zxf mod_fcgid.2.2.tgz
cd mod_fcgid.2.2
perl -i.bak -pe "s//usr/local/apache2//usr/lib/httpd/" Makefile
perl -i.bak-default -pe "s/DEFAULT_IPC_COMM_TIMEOUT 40/DEFAULT_IPC_COMM_TIMEOUT 300/" /root/distr/mod_fcgid.2.2/fcgid_conf.c

make
cp /etc/httpd/modules/mod_fcgid.so /root/distr/mod_fcgid.so.default
make install


Настройка Apache

Убеждаемся, что /etc/httpd/conf.d/fcgid.conf выглядит следующим образом:

# added by psa-mod-fcgid-configurator
LoadModule fcgid_module /usr/lib/httpd/modules/mod_fcgid.so

<IfModule mod_fcgid.c>
SocketPath /var/lib/httpd/fcgid/sock
</IfModule>

# added by psa-mod-fcgid-configurator
<IfModule mod_fcgid.c>
MaxRequestsPerProcess 500
PHP_Fix_Pathinfo_Enable 1
IdleTimeout 3600
ProcessLifeTime 7200
BusyTimeout 1400
OutputBufferSize 4k
DefaultInitEnv RAILS_ENV production
IPCCommTimeout 600
DefaultMaxClassProcessCount 2
DefaultMinClassProcessCount 1
</IfModule>


Все. Настройка Apache'а закончена. Переходим к настройке PHP

Установка и Настройка PHP

В PHP, собранном в режиме FastCGI существует проблема - процесс может
быть запущен и не убит, т.к. постоянно производит чтение и не обращает
на сигнал SIGTERM, и воспринимается модулем fastcgi как рабочий процесс.

Для того чтобы обойти эту проблему мы внесли изменение в PHP
направленное на принудительное завершение процесса, в том случае, если
он не был убит сигналом TERM.

Патч php-kill.patch:

sapi/cgi/cgi_main.c.orig 2008-04-30 02:32:18.000000000 -0500
--- sapi/cgi/cgi_main.c 2008-04-30 08:36:18.000000000 -0500
***************
1150,1155 ****
--- 1150,1164 ----

/* Kill all the processes in our process group */
kill(-pgroup, SIGTERM);
+ if (signal == SIGINT) {
+ sigaction(SIGINT, &old_int, 0);
+ kill(-pgroup, SIGINT);
+ } else {
+ sigaction(SIGTERM, &old_term, 0);
+ kill(-pgroup, SIGTERM);
+ }
+ sigaction(SIGKILL, &old_term, 0);
+ kill(-pgroup, SIGKILL);
#endif

/* We should exit at this point, but MacOSX doesn't seem to */


Применяем патч:

patch -p0 < php-kill.patch


Устанавливаем PHP(можете запустить этот процесс и пойти покурить, либо
выпить чашечку кофе)

Внимание: В процессе пересборки мы дважды остановим сервис Apache'а для
замены файлов, которые могут быть использованы в Apache'е, кроме того,
для совместимости, мы заменим стандартный PHP системы на наш.


Запускаем:

cd /root/distr
wget "http://download.suhosin.org/suhosin-patch-5.2.6-0.9.6.2.patch.gz"
gunzip suhosin-patch-5.2.6-0.9.6.2.patch.gz
wget http://ru2.php.net/get/php-5.2.6.tar.gz/from/this/mirror
tar -zxf php-5.2.6.tar.gz
cd php-5.2.6
patch -p1 < ../suhosin-patch-5.2.6-0.9.6.2.patch
'./configure' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr'
'--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share'
'--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec'
'--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man'
'--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-pic' '--with-mcrypt'
'--with-mhash' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr' '--with-png-dir=/usr'
'--enable-gd-native-ttf' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr'
'--with-openssl' '--with-png' '--with-pspell' '--with-expat-dir=/usr' '--with-pcre-regex=/usr'
'--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes'
'--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-track-vars'
'--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-kerberos' '--enable-ucd-snmp-hack'
'--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio'
'--with-mime-magic=/etc/httpd/conf/magic' '--without-sqlite' '--with-libxml-dir=/usr' '--with-xml'
'--with-mysql' '--with-gd' '--with-odbc' '--enable-dom' '--enable-dba' '--enable-pdo' '--enable-xmlreader'
'--enable-xmlwriter' '--enable-suhosin' '--with-imap' '--with-imap-ssl' '--enable-fastcgi' '--enable-force-cgi-redirect'
make
make install
mkdir /php-fastcgi
/etc/rc.d/init.d/httpd stop
cp /usr/bin/php-cgi /root/distr/
cp /php-fastcgi/php-cgi /root
cp /usr/bin/php-cgi /php-fastcgi/
/etc/rc.d/init.d/httpd start

cd /root/distr
wget http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.2.tar.bz2
tar -jxf eaccelerator-0.9.5.2.tar.bz2
cd eaccelerator-0.9.5.2
make clean
phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config
make
extension_dir=`cat /etc/php.ini|grep extension_dir|grep -v "^;"|awk '{print $3}'|perl -pe "s/"//g"`
cp -rf `make install|grep "Installing shared extensions:"|awk '{print $4}'`eaccelerator.so $extension_dir/
/etc/rc.d/init.d/httpd stop

cd /root/distr/php-5.2.6
make distclean
'./configure' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr'
'--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share'
'--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec'
'--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man'
'--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-pic' '--with-mcrypt'
'--with-mhash' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr' '--with-png-dir=/usr'
'--enable-gd-native-ttf' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr'
'--with-openssl' '--with-png' '--with-pspell' '--with-expat-dir=/usr' '--with-pcre-regex=/usr'
'--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes'
'--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-track-vars'
'--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-kerberos' '--enable-ucd-snmp-hack'
'--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio'
'--with-mime-magic=/etc/httpd/conf/magic' '--without-sqlite' '--with-libxml-dir=/usr' '--with-xml'
'--with-mysql' '--with-gd' '--with-odbc' '--enable-dom' '--enable-dba' '--enable-pdo' '--enable-xmlreader'
'--enable-xmlwriter' '--enable-suhosin' '--with-imap' '--with-imap-ssl' '--enable-fastcgi' '--enable-force-cgi-redirect'

make clean
make
make install

cd /root/distr
echo "zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_5.2.so" >> /etc/php.ini
echo -en "extension="eaccelerator.so"neaccelerator.shm_size="16"neaccelerator.cache_dir="/tmp/eaccelerator"n
eaccelerator.enable="1"neaccelerator.optimizer="1"neaccelerator.check_mtime="1"neaccelerator.debug="0"n
eaccelerator.filter=""neaccelerator.shm_max="0"neaccelerator.shm_ttl="0"neaccelerator.shm_prune_period="0"n
eaccelerator.shm_only="0"neaccelerator.compress="1"neaccelerator.compress_level="9"n" >>/etc/php.ini
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator

echo "zend_extension=/usr/lib/php/zend/ZendOptimizer-5.2.so" >> /etc/php.ini
echo "zend_optimizer.optimization_level=0" >> /etc/php.ini

cd /root/distr/eaccelerator-0.9.5.2
wget http://perun.x-shops.com/php.ini
cp /root/distr/php.ini /etc/php.ini
rm -f /root/distr/php.ini


После чего необходимо проверить записался ли ioncube в php.ini, если
нет, то добавить строчку:

zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_5.2.so


Защищаем директории от чтения

К сожалнию конфигурация Plesk'а разрешает читать пользователям
информацию других пользователей, что не очень приятно, поэтому мы
максимально закроем доступ для пользователей нашего сервера.
Т.к. все они находятся в группе psacln, мы запретим действия этой группе:

chgrp apache /etc/httpd/conf
chgrp apache /etc/httpd/conf.d
chmod -R 750 /etc/httpd/conf
chmod -R 750 /etc/httpd/conf.d
chgrp apache /var/www/vhosts
chmod 751 /var/www/vhosts
chgrp nobody /var/lib/php/session
chgrp psacln /etc/group
chmod 604 /etc/group
chgrp psacln /etc/passwd
chmod 604 /etc/passwd
chgrp psacln /etc/passwd-
chmod 604 /etc/passwd-
chgrp psacln /usr/bin/who
chmod 705 /usr/bin/who
chgrp psacln /bin/ps
chmod 705 /bin/ps
chgrp psacln /etc/ftpusers
chmod 705 /etc/ftpusers
chown root:root /root
chmod 750 /root
chgrp psacln /
chmod 715 /
chgrp psacln /bin
chmod 751 /bin
chgrp psacln /etc
chmod 715 /etc
chgrp psacln /dev
chmod 715 /dev
chgrp psacln /home
chmod 705 /home
chgrp psacln /lib
chmod 715 /lib
chgrp psacln /media
chmod 705 /media
chgrp psacln /misc
chmod 705 /misc
chgrp psacln /mnt
chmod 705 /mnt
chgrp psacln /net
chmod 705 /net
chgrp psacln /opt
chmod 705 /opt
chgrp psacln /proc
chmod 705 /proc
chgrp psacln /sbin
chmod 715 /sbin
chgrp psacln /usr
chmod 715 /usr
chgrp psacln /selinux
chmod 705 /selinux
chgrp psacln /srv
chmod 705 /srv
chgrp psacln /var
chmod 715 /var
chgrp psacln /tmp
chmod 733 /tmp


Скрипт для автоматизации настройки

Первоначально скрипт писался для автоматического добавления
"процессоров" в конфигурацию Apache'а с MPM peruser... Тьфу... В
последсвтие скрипт был переделан.

Скрипт проходит все виртуальные хосты на сервере и проверяет записан ли
наш PHP в конфиги. Данный скрипт необходимо добавить в Action'ы Plesk'а
на создание Physical hosting'а и добавление alias'ов, либо в
/etc/rc.d/init.d/httpd при запуске и reload/condrestart:

#!/bin/sh
# Author: Alexander Dryantsov
####

###
# Prepare
###

function cecho (){
export black='E[0mc'
export boldblack='E[1;0mc'
export red='E[31mc'
export boldred='E[1;31mc'
export green='E[32mc'
export boldgreen='E[1;32mc'
export yellow='E[33mc'
export boldyellow='E[1;33mc'
export blue='E[34mc'
export boldblue='E[1;34mc'
export magenta='E[35mc'
export boldmagenta='E[1;35mc'
export cyan='E[36mc'
export boldcyan='E[1;36mc'
export white='E[37mc'
export boldwhite='E[1;37mc'
local default_msg=""
# Doesn't really need to be a local variable.

message=${1:-$default_msg} # Defaults to default message.
color=${2:-$black} # Defaults to black, if not specified.

echo -en "$color"
echo -en "$message"
tput sgr0 # Reset to normal.
echo -en "$black"
return
}
current_date=`date "+%H:%M %d.%m.%Y"`
mysql_password=`cat /etc/psa/.psa.shadow`
#################
# Implementation
#################
cecho "" $white
cecho "Fixing Horde...n" $boldgreen
# ниже в одну cтроку
perl -i.bak -pe "s/php_admin_value open_basedir/#php_admin_value open_basedir/g;s/php_admin_value
include_path/#php_admin_value include_path/g" /etc/httpd/conf.d/zz010_psa_httpd.conf

mysql -uadmin -p`cat /etc/psa/.psa.shadow` -Bse
"select login,home from sys_users;" psa| while read user path; do
cecho "tUser: " $boldyellow
echo -en "$usern";
users_domain=`echo $path | perl -pe 's/.*///g'`
cecho "tDomain: " $yellow
echo $users_domain

chown $user:psacln $path
chmod 705 $path

if [ -f $path/conf/vhost.conf ]; then
cecho " Domain already configuredn" $boldgreen

fi

if [ -f $path/conf/httpd.include ]; then
perl -i.bak -pe "s/.*open_basedir.*//g" $path/conf/httpd.include

if [ "`cat $path/conf/httpd.include|grep FCGIWrapper|awk '{print $1}'|uniq`" == "FCGIWrapper" ]; then
echo -en "";
else
echo "Adding PHP-FCGI support to httpd.include"

perl -i.bak -pe "s|AddHandler fcgid| AddHandler fcgid-script .php
FCGIWrapper $path/php-fastcgi/php5-cgi .php
AddHandler fcgid|g" $path/conf/httpd.include
fi;
chownusergroup=`cat $path/conf/httpd.include|grep Suexec|awk '{print $2":"$3}'|uniq`
if [ -z $path/php-fastcgi ]; then
echo -en "";
chmod 755 $path/php-fastcgi/php5-cgi
else
mkdir $path/php-fastcgi 2> /dev/null
if [ -f $path/php-fastcgi/php5-cgi ]; then
echo -en ""
chmod 755 $path/php-fastcgi/php5-cgi
else
echo "#!/bin/sh
PHPRC="/etc"
export PHPRC
PHP_FCGI_CHILDREN=8
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /php-fastcgi/php-cgi
" > $path/php-fastcgi/php5-cgi
chmod 755 $path/php-fastcgi/php5-cgi
chown -R $chownusergroup $path/php-fastcgi
fi;
fi;
chown $chownusergroup $path/cgi-bin
chown $chownusergroup $path/httpsdocs

fi

echo -en "nn"
done


Пробуем создать новый домен, домен должен создастся с уже установленным
PHP FastCGI.
1213 Прочтений •  [Настройка работы Plesk 8 через PHP/FastCGI(mod_fcgid) + SuExec (plesk python web fastcgi php apache)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Настройка работы Plesk 8 через PHP/... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка