Установка LAMP stack (Linux, Apache, MySQL, PHP) на Ubuntu 14.04

Вступление

LAMP stack – это группа программ с открытым исходным кодом, которая создает надежный фундамент для размещения динамических веб-сайтов и веб-приложений. Данная аббревиатура расшифровывается как Linux (ОС), Apache (веб-сервер), MySQL (БД), PHP (для обслуживания динамического контента).

Данное руководство демонстрирует установку LAMP stack на сервер Ubuntu 14.04. Система Ubuntu уже содержит первый компонент – операционную систему Linux.

Требования

Прежде чем приступить к выполнению данного руководства, необходимо создать отдельного пользователя (не root). Чтобы узнать, как это сделать, читайте руководство “Начальная настройка сервера Ubuntu 14.04“.

1: Установка Apache

На данный момент Apache является самым популярным веб-сервером для размещения сайта в мире.

Apache можно легко установить при помощи менеджера пакетов Ubuntu – инструмента apt. Данный менеджер пакетов позволяет без труда устанавливать большинство программ из репозиториев Ubuntu. Чтобы получить больше информации о инструменте apt, читайте данную статью.

Итак, введите команды:

sudo apt-get update
sudo apt-get install apache2

Команды, которые начинаются с sudo (как показано выше), выполняются с привилегиями root. Для подтверждения нужно ввести пароль пользователя.

Готово! Веб-сервер установлен.

Сразу же можно выполнить выборочную проверку, чтобы убедиться, что все прошло должным образом; для этого посетите общедоступный IP-адрес сервера в веб-браузере (см. примечание в следующем разделе, чтобы узнать, как уточнить общедоступный IP):

http://IP_адрес_сервера

Это выведет веб-страницу Apache по умолчанию, предназначенную для проведения проверок и получения некоторой информации (если страница не открылась – что-то пошло не так).

Как узнать общедоступный IP-адрес сервера

Существует несколько способов узнать общедоступный IP-адрес сервера. Как правило, это адрес, который используется для подключения к серверу по SSH.

Его можно узнать с помощью командной строки.

Первый способ – использовать инструменты iproute2; наберите:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Это вернет одну или две строки; все эти адреса верны, но, как правило, компьютер может использовать только один из них, потому просто проверьте оба адреса.

Второй способ – использование внешнего абонента, который может сказать, как он видит данный сервер. Для этого нужно спросить определенный сервер, каким является IP-адрес:

curl http://icanhazip.com

Независимо от используемого метода, полученный IP-адрес можно ввести в адресную строку веб-браузера, чтобы попасть на сервер.

2: Установка MySQL

Теперь, когда веб-сервер установлен и запущен, можно перейти к установке MySQL – системы управления базами данных. В основном MySQL организовывает и обеспечивает доступ к базам данных, в которых сайт может хранить необходимую информацию.

Опять же, для быстрой загрузки и установки программы можно использовать apt. На этот раз нужно также установить некоторые вспомогательные пакеты, которые отвечают за взаимодействие компонентов.

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

Примечание: на этот раз запускать sudo apt-get update перед командой не нужно, поскольку она уже была запущена при установке Apache. Индекс пакетов данного компьютера уже обновлен.

Во время инсталляции сервер попросит установить и подтвердить пароль для root-пользователя MySQL (это административная учетная запись MySQL с повышенными привилегиями). По сути, эта учетная запись аналогична записи root самого сервера, но использоваться она будет только для MySQL.

По завершении установки необходимо ввести некоторые дополнительные команды, отвечающие за защиту среды MySQL.

Сначала система MySQL должна создать структуру каталогов баз данных, в которых будет храниться вся информация. Для этого наберите:

sudo mysql_install_db

Затем нужно запустить простой скрипт безопасности, который удалит некоторые настройки по умолчанию, подвергающие сервер риску. Запустите интерактивный сценарий, введя:

sudo mysql_secure_installation

Теперь введите пароль, установленный только что для root-пользователя MySQL. MySQL спросит, нужно ли изменить данный пароль (если нет, введите N).

На остальные вопросы можно просто нажать ENTER, чтобы принять значения по умолчанию. Это удалит некоторых пользователей и базы данных, заблокирует удаленные соединения через root и активирует эти новые правила.

На данный момент система баз данных установлена​​, можно двигаться дальше.

3: Установка PHP

PHP – компонент, который обрабатывает код для отображения динамического контента. Он может запускать скрипты, обращаться к базам данных MySQL за информацией, а также передавать обработанный контент на веб-сервер для отображения.

Для установки PHP (а также некоторых вспомогательных пакетов) снова используйте apt.

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Это быстро установит PHP, после чего нужно протестировать его.

В большинстве случаев нужно изменить способ обслуживания файлов сервером Apache при запросе каталога. На данный момент, если пользователь запрашивает каталог с сервера, Apache будет сначала искать файл с именем index.html; нужно сделать так, чтобы веб-сервер искал сначала файлы php (то есть, файл index.php).

Итак, откройте файл dir.conf в текстовом редакторе с root-привилегиями, введя команду:

sudo nano /etc/apache2/mods-enabled/dir.conf

Он выглядит так:

<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Выделенный выше файл должен идти сразу после DirectoryIndex, то есть:

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Внеся это изменение, сохраните и закройте файл, нажав CTRL-X, Y для подтверждения и ENTER.

Затем нужно перезапустить веб-сервер Apache, чтобы внесенное изменение вступило в силу:

sudo service apache2 restart

Установка модулей PHP

Чтобы расширить функции PHP, можно выборочно установить некоторые дополнительные модули.

Чтобы увидеть доступные модули и библиотеки PHP, наберите:

apt-cache search php5-

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

php5-cgi - server-side, HTML-embedded scripting language (CGI binary)
php5-cli - command-line interpreter for the php5 scripting language
php5-common - Common files for packages built from the php5 source
php5-curl - CURL module for php5
php5-dbg - Debug symbols for PHP5
php5-dev - Files for PHP5 module development
php5-gd - GD module for php5
. . .

Чтобы получить больше информации о функциях конкретного модуля, обратитесь к полному описанию пакета, введя:

apt-cache show имя_пакета

Это вернет объемный результат, содержащий поле Description-en, в котором можно найти более подробное описание функций того или иного модуля.

К примеру, чтобы получить полное описание функций модуля php5-cli, нужно набрать:

apt-cache show php5-cli

Помимо другой информации, выведенный результат будет содержать что-то вроде:

. . .
SHA256: 91cfdbda65df65c9a4a5bd3478d6e7d3e92c53efcddf3436bbe9bbe27eca409d
Description-en: command-line interpreter for the php5 scripting language
This package provides the /usr/bin/php5 command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
The following extensions are built in: bcmath bz2 calendar Core ctype date
dba dom ereg exif fileinfo filter ftp gettext hash iconv libxml mbstring
mhash openssl pcntl pcre Phar posix Reflection session shmop SimpleXML soap
sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader
xmlwriter zip zlib.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
Description-md5: f8450d3b28653dcf1a4615f3b1d4e347
Homepage: http://www.php.net/
. . .

Если после ознакомления с пакетом его нужно установить, используйте команду apt-get install, как это уже делалось для установки другого программного обеспечения.

То есть, чтобы установить php5-cli, нужно набрать:

sudo apt-get install php5-cli

Чтобы установить несколько модулей за один раз, перечислите их после команды apt-get install, разделив пробелами:

sudo apt-get install package1 package2 ...

На данный момент LAMP установлен и настроен, осталось только протестировать PHP.

4: Тестирование PHP

Чтобы проверить, правильно ли настроена система и будет ли она взаимодействовать с PHP, создайте базовый скрипт PHP.

Этот скрипт называется info.php. Чтобы сервер Apache нашел и обработал этот файл должным образом, его нужно сохранить строго в каталоге по имени web root.

В Ubuntu 14.04 он находится в /var/www/html/. Чтобы создать файл в этом каталоге, введите:

sudo nano /var/www/html/info.php

Это откроет пустой файл, в который нужно внести следующий текст (действительный код PHP):

<?php
phpinfo();
?>

Завершив, сохраните и закройте файл.

Теперь проверьте, может ли веб-сервер правильно отображать контент, созданный PHP-скриптом. Для этого нужно просто посетить эту страницу в веб-браузере; снова понадобится общедоступный IP-адрес, используйте следующий формат:

http://IP_адрес_сервера/info.php

Эта страница предоставляет информацию о данном сервере с точки зрения PHP, что очень полезно для отладки и тестирования настроек.

Если все прошло успешно, значит, PHP работает должным образом.

Затем следует удалить этот тестовый файл, поскольку он может предоставить всю важную информацию о сервере неавторизованному пользователю:

sudo rm /var/www/html/info.php

Эту страницу всегда можно создать повторно, чтоб получить необходимую информацию.

Итоги

Установленный на сервер LAMP stack – надежный фундамент для инсталляции большинства видов сайтов и программ.

Определитесь, что делать дальше; например, можно:

Tags: , , , , , , ,

1 комментарий

  • Всеволод Мищенко says:

    Здравствуйте!
    Спасибо за очень полезную информацию и последовал Вашим рекомендациям по настройке сервера Апачи, и я столкнулся с трудностью работы РНР файла, после всех манипуляций, предложенных на Вашем сайте:
    – изменил файл dir.conf как того Вы предлагаете;
    – создал тестовый файл РНР , чтобы проверить как он работает или нет – не работает;
    – с помощью команды wget -qO- ipinfo.io/ip определил внешний ip адрес сервера;
    – и после ввода в браузере http://IP_адрес_сервера/info.php как со своего компьютера, так и с другого ничего не выдает и не загружается;
    Исследуя причину, я увидел в каталоге mods-enabled 2 файла, изменениями, указанными на Вашем сайте – index php сначала.
    Это файлы: сам файл dir.conf и его как-бы дубликат с той же информацией – файл dir.conf� (неверная кодировка)
    Я попытался удалить его , но терминал не может удалить, сообщая : ошибка синтаксиса около неожиданной лексемы `(‘.
    Вы можете подсказать в чем дело – почему РНР не работает -??

Добавить комментарий