Итак, нужно настроить Apache с PHP5. PHP будет работать в режиме CGI, причем процессы PHP будут выполняться с правами пользователя, что хорошо скажется для безопасности.
Ставим PHP
# cd /usr/ports/lang/php5
# make install clean
Я выбрал следующие опции (опции, которые должны присутствовать обязательно, подчеркнуты):
- CLI
- CGI
- SUHOSIN
- REDIRECT
- DISCARD
- FASTCGI
- PATHINFO
Ставим Apache
Правим make.conf
PORTSDIR?=/usr/ports
.if ${.CURDIR} == ${PORTSDIR}/www/apache20
WITH_SUEXEC=yes
SUEXEC_DOCROOT="/home"
SUEXEC_USERDIR="www"
.endif
Теперь компилим и устанавливаем apache:
cd /usr/ports/www/apache20
make install clean
После того как установка закончена правим конфиг под свои нужды. В конфиге обязательно должны присутствовать и быть включены модули mod_suexec и mod_cgi:
LoadModule cgi_module libexec/apache2/mod_cgi.so
LoadModule suexec_module libexec/apache2/mod_suexec.so
Настраиваем виртуальный хост следующим образом:
<VirtualHost *:80>
SuexecUserGroup chihpih chihpih
DocumentRoot /home/chihpih/www/chihpih.no-ip.org
DirectoryIndex index.php index.html
ServerName chihpih.no-ip.org
ServerAdmin webmaster@chihpih.no-ip.org
ErrorLog /home/chihpih/log/error.log
#CustomLog /home/chihpih/log/access.log common
AddHandler application/x-httpd-php .php
Action application/x-httpd-php /php-bin/php.sh
<Directory "/home/chihpih/www/chihpih.no-ip.org">
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ScriptAlias /php-bin/ "/home/chihpih/php-bin/"
<Directory "/home/chihpih/php-bin">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Далее идем в пользовательскую директорию, создаем нужные папки и даем нужные права:
# cd /home/chihpih
# mkdir www log php-bin tmp
# chmod 750 www php-bin tmp
# chown www:www log
# chmod 755 log
В директории php-bin создаем файл php.sh такого содержания:
#!/bin/sh
exec nice -n 20 /usr/local/bin/php-cgi -c "/home/chihpih/php-bin/php.ini"
Не забываем дать ему права на запуск, запрет на изменение и удаление.
# cd /home/chihpih/php-bin
# chmod 750 php.sh
# chflags schg,sunlink php.sh
Далее копируем и правим конфиг php, так же не забываем запретить изменение и удаление файла.
# cd /home/chihpih/php-bin
# cp /usr/local/etc/php.ini-dist ./php.ini
# chmod 440 php.ini
# chflags schg,sunlink php.ini
Чтобы апач мог попасть в директорию пользователя, нужно учетку www добавить в группу пользователя chihpih.
# pw groupmod chihpih -m www
Осталось только добавить апач в автозагрузку и запустить его.
# echo 'apache2_enable="YES"' >> /etc/rc.conf
# service apache2 start
Проверим запустился ли сервис:
# ps -U www
PID TT STAT TIME COMMAND
9134 ?? SJ 0:00,64 /usr/local/sbin/httpd -DSSL
9706 ?? IJ 0:00,04 /usr/local/sbin/httpd -DSSL
41807 ?? IJ 0:00,03 /usr/local/sbin/httpd -DSSL
41808 ?? IJ 0:00,02 /usr/local/sbin/httpd -DSSL
42002 ?? IJ 0:00,04 /usr/local/sbin/httpd -DSSL
42003 ?? IJ 0:00,04 /usr/local/sbin/httpd -DSSL
Как видно из вывода команды сервис запустился и функционирует. Если у вас возникли проблемы, то проверяйте конфиг и читайте логи, чтобы найти проблему. На этом все, настройка закончена.
Добавить комментарий