Инструменты пользователя

Инструменты сайта


doc:os:ubuntu:apache_on_ubuntu

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
doc:os:ubuntu:apache_on_ubuntu [d.m.Y H:i] – создано dbehterevdoc:os:ubuntu:apache_on_ubuntu [d.m.Y H:i] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== 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: {{tag>Apache PHP Ubuntu perl}} 
 +
 +~~DISCUSSION~~