Как установить Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 18.04
Вступление
LAMP — набор программного обеспечения с открытым исходным кодом, которое обычно устанавливается вместе, чтобы сервер мог размещать веб-сайты, написанные на языке PHP.
LAMP это аббревиатура, обозначающая операционную систему Linux с веб-сервером Apache. Данные сайта хранятся в базе данных MySQL, а динамический контент обрабатывается PHP.
Надеемся, что после прочтения этой статьи установка LAMP на Ubuntu 18.04 окажется не такой уж и сложной задачей. Большинство рекомендаций из этой статьи подойдет и для установки LAMP на Debian.
У многих хостинг провайдеров существуют образы серверов, которые позволят сэкономить время относительно установки LAMP вручную. NetAngels также предлагает несколько подобных сборок, например образы Ubuntu 18.04 LAMP или Debian 9 LAMP.
Что вам потребуется
У вас должен быть пользователь (не root) с sudo
правами на сервере с Ubuntu 18.04.
Шаг 1 - Установка Apache и обновление брандмауэра
Веб-сервер Apache является одним из самых популярных веб-серверов в мире. Он хорошо документирован и широко используется в Интернете, что делает его отличным выбором для размещения веб-сайтов.
Установите Apache, используя менеджер пакетов Ubuntu apt
:
sudo apt update
sudo apt install apache2
Поскольку это sudo
команда, эти операции выполняются с правами root. Apt попросит вас ввести пароль вашего пользователя.
Далее apt
сообщит вам, какие пакеты планирует установить и сколько дополнительного дискового пространства они займут. Нажмите Y
и ENTER
чтобы продолжить.
Сейчас нам нужно узнать публичный IP-адрес вашего сервера. Вы можете знать его несколькими способами. Обычно это адрес, который вы используете для подключения к вашему серверу через SSH.
Если вы уже подключены по SSH, то выполните команду:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Чтобы проверить все ли в порядке с Apache, откройте IP-адрес вашего сервера в браузере
http://ip_vashego_servera
Вы увидите веб-страницу Ubuntu 18.04 Apache по умолчанию, которая предназначена для ознакомления и тестирования. Она должна выглядеть примерно так:
Если вы видите эту страницу, то ваш веб-сервер теперь работает корректно.
Шаг 2 - Установка MySQL
Теперь пришло время установить MySQL. MySQL - это система управления базами данных. По сути, она будет организовывать и предоставлять доступ к базам данных, где ваш сайт может хранить информацию.
Опять же, используйте apt
для установки:
sudo apt install mysql-server
Нажмите Y
чтобы продолжить.
Когда установка будет завершена, запустите простой скрипт, который поставляется с MySQL. Он удалит некоторые опасные настройки по умолчанию:
sudo mysql_secure_installation
Он спросит, хотите ли вы настроить VALIDATE PASSWORD PLUGIN
.
Ответьте N
.
Затем скрипт попросит вас выбрать и подтвердить пароль для пользователя root MySQL . Это административная учетная запись в MySQL, которая имеет повышенные привилегии. Убедитесь, что это надежный уникальный пароль, и не оставляйте его пустым.
Для остальных вопросов нажмите Y
и нажмите ENTER
клавишу при каждом запросе. Это приведет к удалению некоторых анонимных пользователей и тестовой базы данных, отключению удаленных учетных записей root и применению этих новых правил.
На этом этапе ваша система баз данных настроена, и вы можете перейти к установке PHP, последнего компонента стека LAMP.
Шаг 3 - Установка PHP
Используйте apt
для установки PHP. Кроме того, на этот раз включите несколько вспомогательных пакетов, чтобы код PHP мог работать на сервере с Apache и взаимодействовать с вашей базой данных MySQL:
sudo apt install php libapache2-mod-php php-mysql
В большинстве случаев вы захотите изменить способ, которым Apache обслуживает файлы при запросе каталога. Сейчас если пользователь запрашивает каталог с сервера, Apache сначала будет искать файл с именем index.html
. Мы хотим указать веб-серверу, чтобы он предпочитал файлы 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>
Измените этот файл следующим образом:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Когда вы закончите, сохраните и закройте файл, нажав CTRL+X
. Подтвердите сохранение, набрав Y
, а затем нажмите ENTER
.
После этого перезапустите веб-сервер Apache:
sudo systemctl restart apache2
Вы также можете проверить статус apache2
, используя systemctl
:
sudo systemctl status apache2
Sample ● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Tue 2018-04-23 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─13623 /usr/sbin/apache2 -k start
├─13626 /usr/sbin/apache2 -k start
├─13627 /usr/sbin/apache2 -k start
├─13628 /usr/sbin/apache2 -k start
├─13629 /usr/sbin/apache2 -k start
└─13630 /usr/sbin/apache2 -k start
Нажмите Q
чтобы выйти.
Для расширения функциональности PHP у вас есть возможность установить некоторые дополнительные модули. Чтобы увидеть доступные опции для модулей и библиотек PHP:
apt search php- | less
Используйте клавиши со стрелками для прокрутки вверх и вниз и нажмите, Q
чтобы выйти.
Результатом являются все дополнительные компоненты, которые вы можете установить:
bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64
Tracks usage of TCP/IP and builds html files with graphs
bluefish/bionic 2.2.10-1 amd64
advanced Gtk+ text editor for web and software development
cacti/bionic 1.1.38+ds1-1 all
web interface for graphing of monitoring systems
ganglia-webfrontend/bionic 3.6.1-3 all
cluster monitoring toolkit - web front-end
golang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all
PHP-like Compression and Archive Extensions in Go
haserl/bionic 0.9.35-2 amd64
CGI scripting program for embedded environments
kdevelop-php-docs/bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php
kdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php-l10n
…
:
Чтобы узнать о том, что делает каждый модуль, вы можете найти в Интернете дополнительную информацию о нем.
В качестве альтернативы, посмотрите на полное описание пакета, набрав:
apt show package_name
Поле Description
будет содержать более подробное описание. Например, чтобы узнать, что делает модуль php-cli
, вы можете напечатать:
apt show php-cli
Вы найдете:
…
Description: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
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.
.
This package is a dependency package, which depends on Ubuntu's default
PHP version (currently 7.2).
…
Если вы решите установить пакет, то выполните:
sudo apt install php-cli
Если вы хотите установить более одного модуля, вы можете сделать это, перечислив каждый из них через пробел:
sudo apt install package1 package2 ...
На этом этапе ваш стек LAMP установлен и настроен. Однако перед внесением каких-либо изменений или развертыванием приложения было бы полезно предварительно протестировать конфигурацию PHP на случай возникновения проблем.
Шаг 4 - Тестирование обработки PHP на вашем веб-сервере
Чтобы проверить, правильно ли настроена ваша система, создайте очень простой скрипт PHP с именем info.php
.
Чтобы Apache мог найти этот файл и правильно его обслужить, он должен быть сохранен в конкретном каталоге, который называется «веб-корнем».
В Ubuntu 18.04 этот каталог находится по адресу /var/www/html/
. Создайте файл в этом месте, запустив:
sudo nano /var/www/html/info.php
Это откроет пустой файл. Добавьте следующий текст:
<?php
phpinfo();
?>
Когда вы закончите, сохраните и закройте файл.
Теперь вы можете проверить, может ли ваш веб-сервер правильно отображать контент, сгенерированный этим PHP-скриптом.
Посетите эту страницу в своем веб-браузере:
http://ip_vashego_servera/info.php
Эта страница содержит основную информацию о вашем сервере с точки зрения PHP. Если вы видите эту страницу в своем браузере, значит ваш PHP работает как положено.
Возможно, вы захотите удалить этот файл после этого теста, потому что он может дать информацию о вашем сервере злоумышленникам. Для этого выполните следующую команду:
sudo rm /var/www/html/info.php
Заключение
Отлично! На этом установка и настройка LAMP завершена и теперь на вашем сервере можно запускать веб-сайты, написанные на языке PHP.