Howtos about fastcgi and php that are used or consulted:
http://www.debianhowto.de/de/howtos/...ache2_php-fcgi
http://www.syscp.de/wiki/contrib/PHP-FCGI-ger
Apache2 Install
In the first step you install apache2-mpm-worker
Code:
apt-get install apache2-common apache2-mpm-worker apache2-threaded-dev
restart the apache, but without mod_php. mod_php runs not with apache2-mpm-worker! If you want to use mod_php and fastcgi then you need apache2-mpm-prefork!
Code:
/etc/init.d/apache2 restart
Build Suexec
then you load the apache sources to compile a new suexec for fastcgi
Code:
cd /root
apt-get source apache2-common
cd apache2-2.0.54
cd upstream
cd tarballs
tar zxf httpd-2.0.51.tar.gz
cd httpd-2.0.54
cd support
vi suexec.h
edit the follow lines:
Code:
#define AP_HTTPD_USER "www"
with
Code:
#define AP_HTTPD_USER "www-data"
Code:
#define AP_LOG_EXEC DEFAULT_EXP_LOGFILEDIR "/suexec_log" /* Need me? */
with
Code:
#define AP_LOG_EXEC "/var/log/apache2/suexec.log" /* Need me? */
Code:
#define AP_DOC_ROOT DEFAULT_EXP_HTDOCSDIR
with
Code:
#define AP_DOC_ROOT "/var/www"
edit suexec.c
then insert the red market text into
Code:
/* no file owner check
if ((uid != dir_info.st_uid) ||
(gid != dir_info.st_gid) ||
(uid != prg_info.st_uid) ||
(gid != prg_info.st_gid)) {
log_err("target uid/gid (%ld/%ld) mismatch "
"with directory (%ld/%ld) or program (%ld/%ld)\n",
uid, gid,
dir_info.st_uid, dir_info.st_gid,
prg_info.st_uid, prg_info.st_gid);
exit(120);
}
*/
You need the apache2-header-files to compile suexec
Code:
cp -p /usr/include/apache2/* .
cp -p /usr/include/apr-0/* .
then you must have:
Code:
ls -l suexec
-rwxr-xr-x 1 root root 20565 Aug 5 23:37 suexec
copy the suexec for fcgi to /usr/lib/apache2
Code:
cp suexec /usr/lib/apache2/suexec-fcgi
chmod 4755 /usr/lib/apache2/suexec-fcgi
you can delete the files, that you has downloaded with apt-source
Compile PHP (next step you can install by debian packages without compiling)
Code:
$ cd
mkdir php5
cd php5
wget http://de3.php.net/get/php-5.1.4.tar.gz/from/a/mirror
tar zxf php-5.1.4.tar.gz
cd php-5.1.4.tar.gz
./configure --enable-memory-limit --enable-force-cgi-redirect \
--enable-track-vars --with-pcre-regex --with-mysql --without-sqlite \
--without-mm --enable-fastcgi --prefix=/home/_USER_/php5
make
make install
Important for php5 compilation and fastcgi:
Code:
apt-get install libmysqlclient14-dev libxml2-dev
./configure with: –enable-fastcgi –without-mm
if any packages missed use
Code:
apt-cache search "MISSED"
apt-get install "THE NEEDED PACKAGE
Inofficial Debain Packages for PHP5:
Code:
echo "deb http://people.debian.org/~dexter php5.1 sarge" >> /etc/apt/sources.list
echo "deb-src http://people.debian.org/~dexter php5.1 sarge" >> /etc/apt/sources.list
apt-get update
apt-get install php5.0 php5.0-common php5.0-fcgi apache2-mpm-worker
apt-get install apache2-mpm-worker because debian would like to remove it and install apache2-mpm-prefork again.
libapache2-mod-fastgi:
you musst edit the "/etc/apt/source.list" and include the
non-free sector. It show like that:
then
Code:
apt-get update
apt-get install libapache2-mod-fastcgi
then you edit the "/etc/apache2/mods-avaible/fastcgi.conf" with you favorit editor
Code:
vi /etc/apache2/mods-available/fastcgi.conf
it musst show like:
Quote:
<IfModule mod_fastcgi.c>
#temporary sockets are stored here, this must be at the top!
FastCgiIpcDir /var/lib/apache2/fastcgi
#config
FastCgiConfig -pass-header Authorization
FastCgiWrapper /usr/lib/apache2/suexec-fcgi
AddHandler php-fastcgi .php
<Location /php/.php-fcgi-starter>
SetHandler fastcgi-script
Options +ExecCGI
</Location>
Action php-fastcgi /php/.php-fcgi-starter
##ISPConfig add this by the installtion of it
##ISPConfig INSTALL## AddType ##ISPConfig INSTALL## application/x-httpd-php .php
<Directory "/var/www/">
AllowOverride None
Options +ExecCGI -MultiViews -Indexes
Order allow,deny
Allow from all
</Directory>
</IfModule>
|
-------------------------------------------------------------------------
now you must install ispconfig, if you didn't have it or you modify it by own
-------------------------------------------------------------------------
fast-cgi start script
You need a fast-cgi starter for all web hosts:
Code:
cd /root/ispconfig/scripts
vi php-fcgi-starter
my php-fcgi-starter (with apache php5.1-fcgi package):
Quote:
#!/bin/sh
PHPRC="/etc/php5.1/fcgi/"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
exec /usr/bin/php5.1-fcgi
|
it must have root permissions:
Code:
chmod 755 php-fcgi-starter
chown root:root php-fcgi-starter
Quote:
|
-rwxr-xr-x 1 root root 151 2006-05-31 00:15 php-fcgi-starter
|
that the webuser can excute it (by suexec) but can't edit it!
-------------------------------------------------------------------------------------------------------
ispconfig copy this to /var/www/web*/ if you activate php for this web, but you must modify ispconfig:
-------------------------------------------------------------------------------------------------------
modify ISPConfig
you must patch the config.lib.php
Code:
cd /root/ispconfig/scripts/lib
then you must patch config.lib.php with the patch file in the attachemend.
Copy the patch file into /root/ispconfig/scripts/lib.
Code:
patch config.lib.php < fcgi_patch.txt
By the first php activate for a web Account, it will be create a .php-fcgi-starter for this user. If you wish to modify php for this user, then you must create a new php.ini for this user or change it for all. And edit the fast-cgi-starter script for this user.
php_admin_flag in the apache config didn't run and the php_sage_mod button in ispconfig didn't act after the patch/ with fastcgi!
I'm pleased to get feedback and better solutions

and I hope that fastcgi find a way into the default installation of ispconfig
Recent comments
12 hours 58 min ago
13 hours 58 min ago
17 hours 45 min ago
18 hours 59 min ago
22 hours 35 min ago
1 day 5 hours ago
1 day 14 hours ago
1 day 16 hours ago
2 days 7 hours ago
2 days 9 hours ago