Как установить Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 18.04
27 января 2019
67
Ubuntu
PHP
Linux

Вступление

LAMP — набор программного обеспечения с открытым исходным кодом, которое обычно устанавливается вместе, чтобы сервер мог размещать веб-сайты, написанные на языке PHP.

LAMP это аббревиатура, обозначающая операционную систему Linux с веб-сервером Apache. Данные сайта хранятся в базе данных MySQL, а динамический контент обрабатывается PHP.

В этом руководстве мы установим LAMP на сервер с Ubuntu 18.04.

У многих хостинг провайдеров существуют готовые 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

Заключение

Отлично! Теперь на вашем сервере можно запускать веб-сайты, написанные на языке PHP.

Мы используем файлы cookie для предоставления наших услуг, а также для аналитики и маркетинга. Продолжая просматривать наш веб-сайт, вы соглашаетесь на использование нами файлов cookie.
ОК