В этой статье описана установка и настройка LAMP (Linux-Apache-MySQL-PHP) сервера на базе Ubuntu включающего Apache 2, PHP 5, и MySQL 5.0.

Установка стандартного набора LAMP

Начиная с Ubuntu 7.04 (Feisty Fawn) поумолчанию установлена полезная утилита Tasksel(англ.). Она поможет вам установить LAMP. Просто выполним команду:

sudo tasksel install lamp-server

При установке будет запрошен пароль для создания администратора БД MySQL.

Удаление LAMP

Для удаления LAMP вам придется удалить его компоненты отдельно:

apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 php5-common php5-mysql

Установка Apache 2

Если требуется установить только веб-сервер Apache 2 используйте любой метод для того, чтобы установить пакет apache2. Для того, чтобы Apache заработал его следует перезапустить:

sudo /etc/init.d/apache2 restart

Возможные ошибки

Если при запуске появляется следующая ошибка
apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
запустите свой любимй текстовый редактор (например sudo nano или gksu gedit) и создайте файл /etc/apache2/conf.d/fqdn , со следующим содержанием:

ServerName localhost

Это так же можно сделать выполнив комманду:

echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Виртуальные хосты

Apache2 позволяет создавать различные конфигурационные файлы для сайтов. Они находятся в папке /etc/apache2/sites-available. По-умолчанию создается только один сайт default, на который можно зайти введя в браузере http://localhost или http://127.0.0.1.

Директория для файлов сайта находится в /var/www. Необходимы права root для доступа к этой папке. Но вы можете изменить права на нее командой

sudo chown -R $USER:$USER /var/www 

Вы также можете создать собственные сайты.

Для примера мы создадим новый сайт в папке /home/user/public_html/ :

  • Создаем копию стандартного конфиг-файл сайта и переименуем его
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite 
  • Отредактируем новый конфиг-файл в текстовом редакторе выполнив в консоли sudo nano или gksudo gedit, например:

    gksudo gedit /etc/apache2/sites-available/mysite
  • Добавляем строчку с параметром ServerName. Для примера, ServerName mysite
  • Добавляем строчку с параметром ServerAlias. Для примера, ServerAlias www.mysite
  • Изменяем параметр DocumentRoot на новое месторасположение сайта. Для примера, /home/user/public_html/
  • Изменяем параметр Directory, заменив <Directory /var/www/> на <Directory /home/user/public_html/>
  • Вы можете иметь раздельные log-файлы для ваших сайтов. Для этого измените ErrorLog и CustomLog параметры.
  • Сохраняем файл.

Теперь вы можете деактивировать ваш старый сайт и включить новый. Ubuntu содержит две маленькие утилиты для помощи в этом: a2ensite (apache2enable site) и a2dissite (apache2disable site).

sudo a2dissite default && sudo a2ensite mysite

Осталось только перезапустить Apache2:

sudo /etc/init.d/apache2 restart

Если вы не создали папку /home/user/public_html/, то получите сообщение с предупреждением об этом.

Внесем имя сайта в список хостов сервера:

sudo gedit /etc/hosts

Дописать в строчку 127.0.0.1 localhost через пробел mysite www.mysite Перезапустить Apache2

sudo /etc/init.d/apache2 restart

Для проверки вашего нового сайта создайте файл в папке /home/user/public_html:

echo '<b>Hello! It is working!</b>' > /home/user/public_html/index.html

И откройте в браузере адрес http://localhost/

Установка PHP 5

Чтобы установить модуль PHP для Apache используйте любой метод для того, чтобы установить пакет libapache2-mod-php5. Включить модуль PHP 5 в Apache можно выполнив:

sudo a2enmod php5

Это создаст символическую ссылку /etc/apache2/mods-enabled/php5 указывающую на /etc/apache2/mods-availble/php5 . Если не вы используете устаревшие в PHP короткие теги <? (что крайне нерекомендуемо) вместо <?php откройте от имени суперпользователя файл /etc/php5/apache2/php.ini , найдите в нем строчку

short_open_tag = On

и замените ее на

short_open_tag = Off

Это заставит игнорировать открывающие теги <?xml в файлах, обрабатываемых PHP.

Для того, чтобы изменения вступили в силу перезапустите Apache

sudo service apache2 restart

note

Проверка PHP

В папке /var/www создайте файл test.php, дайте права на чтение из него всем (или хотя бы пользователю apache) и запишите в него следующую строку:

<?php phpinfo(); ?>

Теперь попробуйте в своем браузере перейти на страницу http://localhost/test.php. Если вы видите описание установленного PHP, значит вы все настроили правильно.

Возможные ошибки

Ваш браузер предлагает вам скачивать PHP-страницы, а не показывает вам их? Если Apache не обрабатывает PHP-страницы после того как вы ео перезапустили, попробуйте установить пакет libapache2-mod-php5 . Обычно он устанавливается вместе с пакетом php5, но он может быть удален изза конфликта пакетов, которым нужна другая версия PHP.

Если при выполнении команды sudo a2enmod php5 вы получаете в ответ

This module does not exist!

попробуйте полностью удалить пакет libapache2-mod-php5

sudo apt-get purge libapache2-mod-php5

и установить его заново.

Не забывайте очищать кеш браузера перед тем как снова тестировать свой сайт.

Помните, что Apache будет обрабатывать файл только если URI начинается с http:// . Если адрес начинается с file:// , то файл будет отображатся напрямую браузером, по этому вы увидите только CSS и (X)HTML, но не PHP. Если вы не конфигурировали виртуальные хосты, то локальный адрес будет иметь вид http://127.0.0.1 , http://localhost или http://ваш_IP.

Установка MySQL и его модулей для PHP 5

Чтобы установить MySQL используйте любой метод для того, чтобы установить пакеты mysql-server libapache2-mod-auth-mysql php5-mysql.

PhpMyAdmin

Все задачи которые требуется выполнить при момощи MySQL можно делать используя графический интерфейс программ phpmyadmin. Устанавливаем утилиту

sudo apt-get install phpmyadmin

При установке она запросит пароли которые были заданы при установке MySQL.

Зайти в него можно с адреса http://localhost/phpmyadmin/

При ошибке 404 внесите в файл /etc/apache2/apache2.conf строчку Include /etc/phpmyadmin/apache.conf

FAQ

Где лежат настройки Apache/PHP/MySQL?

ПутьОписание
/etc/mysql/my.cnfФайл настроек MySQL
/etc/apache2/apache2.confФайл настроек Apache 2
/etc/php5/apache2/php.iniФайл настроек PHP5

Как включить отображение ошибок PHP?

В используемом файле настроек php.ini, точное местоположение которого подскажет функция phpinfo() (для устанавливаемого по умолчанию Apache это /etc/php5/apache2/php.ini) за отображение ошибок отвечают следующие опции:

Ссылки