Здравствуйте, Eugene.
Вы писали 13 января 2005 г., 16:34:41:
> Здравствуйте, L0rda.
> Интересная фича.
> Можно чуть подробнее как вы это так запустили?
> Можно ввиде конфигов/ссылок.
> Спасибо.
>> У меня сейчас на сервере стоит apache+fastcgi+php(as fastcgi)+suexec
>> suexec немного пропатчен, в результате чего php работает как fastcgi
>> но с suexec. Производительность почти не теряется, безопасность
>> повышается, возможно дать каждому пользователю свой конфиг php.ini, гибко
>> настроив все что нужно.
Извиняюсь за оффтопик.
# Сборка апача на федоре с mod_geoip,suexec,fastcgi,php
mkdir -p ~/pack; cd ~/pack
wget http://de.php.net/distributions/php-4.3.10.tar.gz -O php-4.3.10.tar.gz
wget http://www.apache.org/dist/httpd/apache_1.3.33.tar.gz -O
apache_1.3.33.tar.gz
wget http://www.maxmind.com/download/geoip/api/mod_geoip/mod_geoip_1.2.6.tar.gz
-O mod_geoip_1.2.6.tar.gz
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz -O
mod_fastcgi-2.4.2.tar.gz
rm -rf mod_geoip_1.2.[0-9]
rm -rf apache_1.3.[0-9][0-9]
rm -rf php-4.[0-9].[0-9][0-9]?
tar xzf apache_1.3.33.tar.gz
tar xzf php-4.3.10.tar.gz
tar xzf mod_geoip_1.2.6.tar.gz
tar zxf mod_fastcgi-2.4.2.tar.gz
mkdir -p /usr/local/mysql
ln -s /usr/lib/mysql/ /usr/local/mysql/lib
ln -s /usr/include/mysql/ /usr/local/mysql/include
cd apache_1.3.33
#
# редактируем файл src/support/suexec.c
# 1. добавляем нужные переменные в safe_env_list
# для меня это PHPRC и GEOIP_
# 2. не знаю сейчас нужно ли это, но когда PHP стоял как
# CGI(просто cgi), то необходимо было убрать строки,
# следующие после комментария
# ╚Error out if the target name/group is different from
# the name/group of the cwd or the program╩ до следующего комментария.
# (http://ptitov.ru/articles/2002/10/06.html)
#
make clean
CFLAGS="-Wall -DHARD_SERVER_LIMIT=4096" ./configure --prefix=/www --add-module=../mod_geoip_1.2.6/mod_geoip.c
# CGI php
cd ../php-4.3.10
make clean
./configure --prefix=/www/php --enable-sysvsem --enable-sysvshm --enable-mbstring --with-mcrypt --with-gd --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-zlib-dir=/usr/lib --with-ttf=/usr/lib --with-freetype-dir=/usr/lib --enable-gd-native-ttf --with-zlib --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --enable-force-cgi-redirect
make
make install
# FastCGI
cd ../php-4.3.10
make clean
./configure --prefix=/www/fastphp --enable-sysvsem --enable-sysvshm --enable-mbstring --with-mcrypt --with-gd --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-zlib-dir=/usr/lib --with-ttf=/usr/lib --with-freetype-dir=/usr/lib --with-fastcgi=../mod_fastcgi-2.4.2 --enable-gd-native-ttf --with-zlib --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --enable-force-cgi-redirect --enable-fastcgi
make
make install
# Apache
adduser -u 8000 www
cd ../apache_1.3.33
CFLAGS="-Wall -DHARD_SERVER_LIMIT=4096 -DNO_SUEXEC_FOR_AP_USER_N_GROUP=1"
./configure --prefix=/www --activate-module=src/modules/extra/mod_geoip.o --disable-module=actions --disable-module=autoindex --disable-module=imap --disable-module=userdir --disable-module=asis --enable-module=negotiation --enable-module=vhost_alias --enable-module=env --enable-module=cgi --enable-module=so --enable-module=rewrite --enable-module=actions --enable-suexec --suexec-caller=www --suexec-docroot=/ --suexec-logfile=/www/logs/suexec.log --activate-module=src/modules/fastcgi/libfastcgi.a
make
make install
#В конфиге апача:
<IfModule mod_fastcgi.c>
FastCgiSuexec On
FastCgiServer /www/fastphp/bin/phps
ScriptAlias /fast-php/ "/www/fastphp/bin/"
<Directory "/www/fastphp/bin/">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
RemoveHandler .php3 .php4 .phtml .php
AddHandler php-fastcgi .php3 .php4 .phtml .php
Action php-fastcgi /fast-php/phps
AddType application/x-httpd-php .php3 .php4 .phtml .php
</IfModule>
#Содержимое /www/fastphp/bin/phps:
#!/bin/sh
PHP_FCGI_CHILDREN=8
export PHP_FCGI_CHILDREN
exec /www/fastphp/bin/php
#############
для того чтобы прописать отдельный php.ini для вхоста прописываем в
нем путь к нему
SetEnv PHPRC /another/php/ini/dir
Вроде все должно быть интуитивно понятно.
Если есть какие-то замечания/предложения, пишите мне в почту.
--
С уважением,
L0rda mailto:l0rda@xxxxxxxxx