Все дальнейшие действия выполнялись в Ubuntu версии 10.
В конфиге 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 не установлен, устанавливаем (проверить установлен или нет можно так: dpkg-query -l php5):
Проверим, подгружается ли на этапе конфигурационных файлов 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 убеждаемся, что все работает корректно. Если это не так, то:
Убеждаемся, что в /etc/php5/apache2/conf.d появился файл mysql.ini содержания:
extension=mysql.so
Также убеждаемся, что в выводе phpinfo() содержатся сведения о загруженном модуле mysql.
Далее смотрим лог /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).
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: