Итак, нужно настроить Apache с PHP5. PHP будет работать в режиме CGI, причем процессы PHP будут выполняться с правами пользователя, что хорошо скажется для безопасности.
Ставим PHP
Я выбрал следующие опции (опции, которые должны присутствовать обязательно, подчеркнуты):
Теперь компилим и устанавливаем apache:
После того как установка закончена правим конфиг под свои нужды. В конфиге обязательно должны присутствовать и быть включены модули mod_suexec и mod_cgi:
Настраиваем виртуальный хост следующим образом:
Далее идем в пользовательскую директорию, создаем нужные папки и даем нужные права:
В директории php-bin создаем файл php.sh такого содержания:
Не забываем дать ему права на запуск, запрет на изменение и удаление.
Далее копируем и правим конфиг php, так же не забываем запретить изменение и удаление файла.
Чтобы апач мог попасть в директорию пользователя, нужно учетку www добавить в группу пользователя chihpih.
Осталось только добавить апач в автозагрузку и запустить его.
Проверим запустился ли сервис:
Как видно из вывода команды сервис запустился и функционирует. Если у вас возникли проблемы, то проверяйте конфиг и читайте логи, чтобы найти проблему. На этом все, настройка закончена.
- # cd /usr/ports/lang/php5
- # make install clean
- CLI
- CGI
- SUHOSIN
- REDIRECT
- DISCARD
- FASTCGI
- PATHINFO
- PORTSDIR?=/usr/ports
- .if ${.CURDIR} == ${PORTSDIR}/www/apache20
- WITH_SUEXEC=yes
- SUEXEC_DOCROOT="/home"
- SUEXEC_USERDIR="www"
- .endif
- cd /usr/ports/www/apache20
- make install clean
- 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
- #!/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
- # cd /home/chihpih/php-bin
- # cp /usr/local/etc/php.ini-dist ./php.ini
- # chmod 440 php.ini
- # chflags schg,sunlink php.ini
- # 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
Обсуждение статьи