====== 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/
Options Indexes FollowSymlinks
AllowOverride None
Order allow,deny
Allow from all
AddDefaultCharset off
# 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 <
В браузере на локальном компьютере вводим адрес 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
SetHandler perl-script
PerlResponseHandler Hello
**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: {{tag>Apache PHP Ubuntu perl}}
~~DISCUSSION~~