Установка и настройка lamp сервера в Debian

Чтобы не забыть напишу краткую памятку по установке и настройке 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.

  1. home/username/web/test.dev/www- каталог где будут храниться файлы сайта
  2. 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

Для настройки хостов надо сделать следующие:

  1. создать файл конфигурации для сайта. В каталоге /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>

    нажать сохрать и закрыть блокнот

  2. далее надо подключить файл конфигурации, для этого надо ввести в терминал:

    a2ensite test.dev
    
    отключить хост можно командой:
    a2dissite test.dev
    
  3. перезагрузить апач:

    /etc/init.d/apache2 restart
  4. прописать хост для нового сайта:

    gedit /etc/hosts
    в открытый файл вставить:
    127.0.1.1	test.dev

Теперь апач настроен и готов к работе.

 

Возможные проблемы

  1. не работает phpmyadmin
    по урлу localhost/phpmyadmin открывается страница 404, это означает что в конфигах апача нету файла для загрузки phpmyadmin, для подключения надо ввести команду:
    sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d
    и затем перезагрузить апач
    service apache2 restart
  2. апач не видит созданый файл для хоста
    апач сначала загружает файл etc/apache2/sites-available/default и если в нем не прописан ServerName, то файл работает для всех хостов, решение: прописать в дефолтный файл ServerName localhost