Установка и настройка «apache2 + php + fastcgi + suexec» на ubuntu

1) Ставим апач + php + suexec + остальные модули одной строкой
apt-get install apache2 apache2-suexec libapache2-mod-fcgid php5-cgi
При этом все папки с пользователями, из под которых запускаются сайты, должны будут находиться в var/www, а публичные папки с сайтами должны иметь имена public_html. Если же мы хотим кастомные директории, нужно ставить apache2-suexec-custom вместо apache2-suexec, и потом редактировать его конфиг файл.

2) Включаем модули:
a2enmod rewrite
a2enmod suexec
a2enmod include
a2enmod fcgid

3) затем добавляем юзера с указанием домашней директории
sudo useradd -d /var/www/testuser -m testuser
устанавливаем пароль
sudo passwd testuser

4) в папке пользователя создаем структуру папок веб-вервера:
pulbic_html
fastcgi-bin
logs
TODO: написать про (chmod 644 и chown)

5) В папке fastcgi-bin создаем файл с именем php.cgi.wrapper со следующим содержимым:
#!/bin/sh
#PHPRC="/usr/local/etc"
#export PHPRC
#PHP_FCGI_CHILDREN=8
#export PHP_FCGI_CHILDREN
#PHP_FCGI_MAX_REQUESTS=5000
#export PHP_FCGI_MAX_REQUESTS
exec /usr/lib/cgi-bin/php5

6) В папке /etc/apache2/sites-available/ cоздаем файл testsite:

<VirtualHost *:80>
SuexecUserGroup testuser testuser
ServerAdmin webmaster@localhost
DocumentRoot /var/www/testuser/public_html
ServerName testuser.testuser.ru
ServerAlias testsite

<IfModule mod_fcgid.c>
<Directory /var/www/testuser/public_html>

Options -Indexes FollowSymLinks +ExecCGI
AllowOverride None

AddHandler fcgid-script .php
FcgidWrapper  /var/www/testuser/fastcgi-bin/php.cgi.wrapper .php
Order allow,deny
allow from all
</Directory>
</IfModule>

ErrorLog /var/www/testuser/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/www/testuser/logs/access.log combined
</VirtualHost>

7) a2ensite testsite

8) перезапустить апач

service apache2 reload
apachectl restart

9) Проверка, в папке /var/log/apache2/suexec.log должны появиться следующие записи:

[2011-09-09 02:51:46]: info: (target/actual) uid: (testuser/testuser) gid:(testuser/testuser) cmd: php.cgi.wrapper

Добавить комментарий

Докажите, что вы не робот *