Чтобы не забыть напишу краткую памятку по установке и настройке LAMP сервера в Debian. Полную инструкцию по установке можно прочитать тут, если кратко то lamp ставится одной командой:
apt-get install apache2 php5 mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin
После установки lamp сервера, для удобного использования файлов, можно вынести папку localhost в домашний каталог. Для этого открыв каталог /home/username (где username имя пользователя в системе), создать каталог web, для этого можно воспользоваться любой программой, например Nautilus, главное создать каталог с правами пользователя системы. Для примера тестовый сайт будет называться test.dev, для этого внутри папки web создадим папку test.dev, где будет находиться тестовый сайт. Внутри папки test.dev создадим 2 папки logs и www.
- home/username/web/test.dev/www- каталог где будут храниться файлы сайта
- home/username/web/test.dev/logs- каталог где будут храниться логи сайта
Т.к. апач запускается под root'ом, он не сможет прочитать файлы в домашнем каталоге, для этого надо пользователя www-data добавить в группу к пользователю системы, для этого надо в терминале ввести:
usermod -a -G username www-data
где username имя группы пользователя, в которой находиться пользователь системы, чтобы узнать в какой группе находиться пользователь системы нужно ввести в терминал:
ls -la
теперь надо добавить права на чтение/запись в каталог, для этого надо ввести в терминал:
chmod -R 750 /home/username/web/
После всех этих манипуляций апач сможет читать и писать в файлы из домашнего каталога, осталось только настроить виртуальные хосты.
Настройка виртуальных хостов в lamp
Для настройки хостов надо сделать следующие:
-
создать файл конфигурации для сайта. В каталоге /etc/apache2/sites-availabel есть файл default, с настройками по умолчанию:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
для нового сайта надо создать свой файл с конфигурацией, чтобы не запутаться назовем его также как и сайт, для этого надо открыть терминал супер пользователя и ввести:
- cd -войти в корень системы
- touch /etc/apache2/sites-available/test.dev -создать файл test.dev
-
gedit /etc/apache2/sites-available/test.dev -открыть файл на редактирование с правами root, в открытый файл вставить:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName test.dev ServerAlias www.test.dev DocumentRoot /home/username/web/test.dev/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/username/web/test.dev/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /home/username/web/test.dev/logs/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
нажать сохрать и закрыть блокнот
-
далее надо подключить файл конфигурации, для этого надо ввести в терминал:
a2ensite test.dev
отключить хост можно командой:a2dissite test.dev
-
перезагрузить апач:
/etc/init.d/apache2 restart
-
прописать хост для нового сайта:
gedit /etc/hosts
в открытый файл вставить:
127.0.1.1 test.dev
Теперь апач настроен и готов к работе.
Возможные проблемы
-
не работает phpmyadmin
по урлу localhost/phpmyadmin открывается страница 404, это означает что в конфигах апача нету файла для загрузки phpmyadmin, для подключения надо ввести команду:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d
и затем перезагрузить апач
service apache2 restart
-
апач не видит созданый файл для хоста
апач сначала загружает файл etc/apache2/sites-available/default и если в нем не прописан ServerName, то файл работает для всех хостов, решение: прописать в дефолтный файл ServerName localhost