Содержание
В этой статье описана установка и настройка 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
Проверка 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) за отображение ошибок отвечают следующие опции:
- log_errors – установка уровня детализации отчетов об ошибках. По умолчанию установлено значение
E_ALL & ~E_DEPRECATED
, которое отображает все ошибки. - display_errors – вывод ошибок в результирующую страницу.