Здесь показаны различия между двумя версиями данной страницы.
linux:apache-null [2015/04/27 12:07] |
linux:apache-null [2021/02/11 09:20] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ===== Локальная настройка apache ===== | ||
+ | \\ | ||
+ | === Исходные данные === | ||
+ | /home/alexander/WWW - папка в которой хранятся локальные сайты | ||
+ | \\ | ||
+ | === Цель === | ||
+ | Запустить apache локально, чтобы по вызову <nowiki>http://mysite</nowiki> (или другой url) происходил запрос apache к /home/alexander/WWW/mysite\\ | ||
+ | \\ | ||
+ | \\Настройку будем приводить на примере хоста <nowiki>http://dokuwiki</nowiki> | ||
+ | \\ | ||
+ | === Настройка === | ||
+ | Чтобы apache смог работать с этой папкой, заставим его запускаться из-под пользователя alexander:\\ | ||
+ | Для этого в файл /etc/apache2/envvars из-под рута вносим правки:\\ | ||
+ | <code> | ||
+ | export APACHE_RUN_USER=alexander | ||
+ | export APACHE_RUN_GROUP=alexander | ||
+ | </code> | ||
+ | **Примечание** В /etc/apache2/envvars по умолчанию уже есть эти строки, только на пользователя www-data. Их надо закомментировать, разумеется.\\ | ||
+ | \\ | ||
+ | === Первоначальная настрока apache === | ||
+ | \\ | ||
+ | в файл sudo leafpad /etc/apache2/apache2.conf прописываем\\ | ||
+ | <code> | ||
+ | ServerName localhost | ||
+ | </code> | ||
+ | На этом этапе можно перегрузить apache и открыть в браузере <nowiki>http://loclalhost</nowiki>, чтобы убедиться что все хорошо.\\ | ||
+ | \\ | ||
+ | === Дальше - добавляем сайты (на примере локального хоста dokuwiki) === | ||
+ | \\ | ||
+ | Создаем папку сайта:\\ | ||
+ | <code> | ||
+ | mkdir /home/alexander/WWW | ||
+ | mkdir /home/alexander/WWW/dokuwiki | ||
+ | mkdir /home/alexander/WWW/dokuwiki/www | ||
+ | </code> | ||
+ | **Примечание:** в папке сайта (та, которая /home/alexander/WWW/dokuwiki) будут еще логи лежать, поэтому в ней создается www под корень сайта.\\ | ||
+ | \\ | ||
+ | Создаем /etc/apache2/sites-available/dokuwiki.conf (логика апача «1 сайт == 1 конфиг в директории /etc/apache2/sites-available/)\\ | ||
+ | \\ | ||
+ | <code> | ||
+ | <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> | ||
+ | </code> | ||
+ | \\ | ||
+ | «Включаем» только что созданный сайт:\\ | ||
+ | <code> | ||
+ | a2ensite dokuwiki | ||
+ | </code> | ||
+ | \\ | ||
+ | <WRAP center round tip 100%> | ||
+ | Если возникла ошибка:\\ | ||
+ | **a2ensite ERROR: Site does not exist!**\\ | ||
+ | \\ | ||
+ | то проверьте, что у вас файл конфигурации именно с расширением .conf - так так a2ensite "понимает" только такие файлы. \\ | ||
+ | </WRAP> | ||
+ | \\ | ||
+ | Перезапускаем апач\\ | ||
+ | \\ | ||
+ | <code> | ||
+ | sudo /etc/init.d/apache2 restart | ||
+ | </code> | ||
+ | По идее, все после этого должно заработать (главное тут - не забыть файлы скопировать).\\ | ||
+ | \\ | ||
+ | Проверяем: идем по адресу <nowiki>http://dokuwiki</nowiki>, и смотрим что все работает (можно туда положить, например, файл index.php с phpinfo() для проверки). | ||
+ | \\ | ||
+ | <WRAP center round tip 100%> | ||
+ | Замечание — следим за опечатками - особенно в конфигах апача! :)\\ | ||
+ | Одна ошибка - и вы "счастливый" владелец кучи ошибок, которын никак не хотят правиться. | ||
+ | </WRAP> | ||
+ | \\ | ||
+ | === Опять к настройкам apache== | ||
+ | \\ | ||
+ | Дальше, чтобы все было совсем хорошо - включаем в апаче mod_rewrite (по умолчанию он выключен):\\ | ||
+ | \\ | ||
+ | <code> | ||
+ | sudo a2enmod rewrite | ||
+ | </code> | ||
+ | Перезапускаем апач еще раз:\\ | ||
+ | <code> | ||
+ | sudo /etc/init.d/apache2 restart | ||
+ | </code> | ||
+ | Теперь действительно все! (Php и mysql в такой комбинации трогать не надо — работают «из коробки»). | ||
+ | === Для отладки === | ||
+ | <code> | ||
+ | ps -aux | grep apache</code> | ||
+ | Покажет все запущенные процессы apache (и, самое гланое - из-под какого они пользователя) | ||