Локальная настройка apache


Исходные данные

/home/alexander/WWW - папка в которой хранятся локальные сайты

Цель

Запустить apache локально, чтобы по вызову http://mysite (или другой url) происходил запрос apache к /home/alexander/WWW/mysite

\\Настройку будем приводить на примере хоста http://dokuwiki

Настройка

Чтобы apache смог работать с этой папкой, заставим его запускаться из-под пользователя alexander:
Для этого в файл /etc/apache2/envvars из-под рута вносим правки:

export APACHE_RUN_USER=alexander
export APACHE_RUN_GROUP=alexander

Примечание В /etc/apache2/envvars по умолчанию уже есть эти строки, только на пользователя www-data. Их надо закомментировать, разумеется.

Первоначальная настрока apache


в файл sudo leafpad /etc/apache2/apache2.conf прописываем

ServerName localhost

На этом этапе можно перегрузить apache и открыть в браузере http://loclalhost, чтобы убедиться что все хорошо.

Дальше - добавляем сайты (на примере локального хоста dokuwiki)


Создаем папку сайта:

mkdir /home/alexander/WWW
mkdir /home/alexander/WWW/dokuwiki
mkdir /home/alexander/WWW/dokuwiki/www

Примечание: в папке сайта (та, которая /home/alexander/WWW/dokuwiki) будут еще логи лежать, поэтому в ней создается www под корень сайта.

Создаем /etc/apache2/sites-available/dokuwiki.conf (логика апача «1 сайт == 1 конфиг в директории /etc/apache2/sites-available/)

<VirtualHost *:80>
  ServerAlias dokuwiki
  ServerAdmin webmaster@localhost
  DocumentRoot /home/alexander/WWW/dokuwiki/www
  <Directory /home/alexander/WWW/dokuwiki/www>
    AllowOverride All
Require all granted
  </Directory>
  ErrorLog /home/alexander/WWW/dokuwiki/error.log
  # Possible values include: debug, info, notice, warn, error, crit, 
  # alert, emerg. 
  LogLevel warn
  CustomLog /home/alexander/WWW/dokuwiki/access.log combined
</VirtualHost>


«Включаем» только что созданный сайт:

a2ensite dokuwiki


Если возникла ошибка:
a2ensite ERROR: Site does not exist!

то проверьте, что у вас файл конфигурации именно с расширением .conf - так так a2ensite «понимает» только такие файлы.


Перезапускаем апач

sudo /etc/init.d/apache2 restart

По идее, все после этого должно заработать (главное тут - не забыть файлы скопировать).

Проверяем: идем по адресу http://dokuwiki, и смотрим что все работает (можно туда положить, например, файл index.php с phpinfo() для проверки).

Замечание — следим за опечатками - особенно в конфигах апача! :)
Одна ошибка - и вы «счастливый» владелец кучи ошибок, которын никак не хотят правиться.


Опять к настройкам apache


Дальше, чтобы все было совсем хорошо - включаем в апаче mod_rewrite (по умолчанию он выключен):

sudo a2enmod rewrite

Перезапускаем апач еще раз:

sudo /etc/init.d/apache2 restart

Теперь действительно все! (Php и mysql в такой комбинации трогать не надо — работают «из коробки»).

Для отладки

ps -aux | grep apache

Покажет все запущенные процессы apache (и, самое гланое - из-под какого они пользователя)