Содержание
Apache 2 & PHP 5 в Ubuntu
Все дальнейшие действия выполнялись в Ubuntu версии 10.
- Конфигурационный файл: /etc/apache2/apache2.conf (полный перечень конфигов посмотреть можно так: dpkg-query -L apache2.2-common | grep '\.conf')
- Лог ошибок по-умолчанию: /var/log/apache2/error.log
- Лог доступа по-умолчанию: /var/log/apache2/access.log
В конфиге apache2.conf идут ссылки на другие конфигурационные файлы, в которых также могут быть директивы. К примеру:
Include /etc/apache2/conf.d/ Include /etc/apache2/sites-enabled/ ... #ls /etc/apache2/conf.d/ apache2-doc charset localized-error-pages security ... #cat apache2-doc Alias /manual /usr/share/doc/apache2-doc/manual/ <Directory "/usr/share/doc/apache2-doc/manual/"> Options Indexes FollowSymlinks AllowOverride None Order allow,deny Allow from all AddDefaultCharset off </Directory> # ls /etc/apache2/sites-enabled/ 000-default
В файле 000-default прописан путь к стартовой странице html, которую пользователь видит при переходе по ссылке http://localhost. По-умолчанию, страница располагается в /var/www.
Включаем поддержку PHP 5
Если PHP не установлен, устанавливаем (проверить установлен или нет можно так: dpkg-query -l php5):
- sudo apt-get install php5
- sudo /etc/init.d/apache2 restart
Проверим, подгружается ли на этапе конфигурационных файлов PHP:
# ls /etc/apache2/mods-enabled | grep php php5.conf php5.load # cat etc/apache2/mods-enabledphp5.load LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
Подгружается. Создадим простенький файл в /var/www для проверки работы php модуля:
# touch /var/www/phptest.php # cat /var/www/phptest.php < <?php phpinfo(); ?>
В браузере на локальном компьютере вводим адрес http://localhost/phptest.php и в случае отображения различной информации касательно php убеждаемся, что все работает корректно. Если это не так, то:
- убеждаемся, что apache перезапущен
- смотрим лог /var/log/apache2/error.log для доп. информации.
Включаем поддержку MySQL в PHP
- sudo apt-get install php5-mysql
- sudo /etc/init.d/apache2 restart
Убеждаемся, что в /etc/php5/apache2/conf.d появился файл mysql.ini содержания:
extension=mysql.so
Также убеждаемся, что в выводе phpinfo() содержатся сведения о загруженном модуле mysql.
Устанавливаем mod_perl для Apache
- apt-get install libapache2-mod-perl2
- sudo /etc/init.d/apache2 restart
Далее смотрим лог /var/log/apache2/error.log на предмет ошибок запуска mod_perl:
[Fri Aug 20 23:32:27 2010] [notice] Apache/2.2.14 (Ubuntu) PHP/5.3.2-1ubuntu4.2 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
В моем варианте все ОК (mod_perl/2.0.4 Perl/v5.10.1 configured).
Проверка работы mod_perl
1. Создадим в /var/www файл test.pm следующего содержания:
package Hello; use strict; use Apache2::RequestRec (); use Apache2::RequestIO (); use Apache2::Const -compile => qw(OK); sub handler { my $r = shift; $r->content_type('text/plain'); print "Hello World, the time here is " . localtime() . "\n"; return Apache2::Const::OK; } 1;
2.Проверяем синтаксис:
perl -c test.pm test.pm syntax OK
3.Дописываем в конфиг. файл Apache /etc/apache2/apache2.conf строки:
PerlRequire /var/www/test.pm <Location /time> SetHandler perl-script PerlResponseHandler Hello </Location>
4.Перезапускаем Apache:
sudo /etc/init.d/apache2 restart
5.В браузере на локальной машине вводим адрес:
http://localhost/time
Если все нормально, вы должны увидеть что-то вроде:
Hello World, the time here is Fri Aug 20 23:46:10 201
Дополнительно
Веб-сервер Apache в Ubuntu работает от имени пользователя www-data (проверьте у себя так: «ps aux | grep apache»). Поэтому необходимо заменить владельца на каталоге DocumentRoot:
chown -R www-data: /var/www
TAG:
Обсуждение