====== 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~~