Поиск по сайту:

Установите Apache, MariaDB, PHP (стек LAMP) на сервере Ubuntu 18.04 LTS.

Как вы, возможно, уже знаете, стек LAMP - это популярная платформа веб-разработки с открытым исходным кодом, которую можно использовать для запуска и развертывания динамических веб-сайтов и веб-приложений. Обычно стек LAMP состоит из веб-сервера Apache, баз данных MariaDB/MySQL, языков программирования PHP/Python/Perl. LAMP — это аббревиатура от Linux, MariaDB/MYSQL, PHP/P<ython/Perl. В этом руководстве мы увидим, как установить Apache, MariaDB, PHP (стек LAMP) на сервер Ubuntu 18.04 LTS.

Установите Apache, MariaDB, PHP (стек LAMP) на сервере Ubuntu 18.04 LTS.

Для целей этого урока я буду использовать следующий тестовый блок.

  • Операционная система: Ubuntu 18.04, 64-битный LTS-сервер.
  • IP-адрес: 192.168.225.22/24.

1. Установите веб-сервер Apache.

Чтобы установить веб-сервер Apache, выполните следующую команду из терминала:

sudo apt install apache2

Проверьте, запущен ли веб-сервер Apache:

$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Fri 2018-07-06 11:42:35 UTC; 27s ago
Main PID: 2079 (apache2)
Tasks: 55 (limit: 2322)
CGroup: /system.slice/apache2.service
├─2079 /usr/sbin/apache2 -k start
├─2081 /usr/sbin/apache2 -k start
└─2082 /usr/sbin/apache2 -k start

Jul 06 11:42:35 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
Jul 06 11:42:35 ubuntuserver systemd[1]: Started The Apache HTTP Server.

Служба Apache загружена и работает!

1.1 Настройте брандмауэр, чтобы разрешить веб-сервер Apache

По умолчанию доступ к веб-браузеру Apache из удаленных систем невозможен, если вы включили брандмауэр UFW в Ubuntu 18.04 LTS. Вы должны разрешить трафик http и https через UFW, выполнив следующие действия.

Сначала посмотрим, какие приложения установили профиль с помощью команды:

$ sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

Как видите, в приложениях Apache и OpenSSH установлены профили UFW.

Если вы посмотрите на профиль Apache Full, вы увидите, что он разрешает трафик на порты 80 и 443:

$ sudo ufw app info "Apache Full"
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
80,443/tcp

Теперь выполните следующую команду, чтобы разрешить входящий трафик HTTP и HTTPS для этого профиля:

$ sudo ufw allow in "Apache Full"
Rules updated
Rules updated (v6)

Если вы не хотите разрешать трафик https, а только трафик http (80), запустите вместо этого следующую команду:

sudo ufw app info "Apache"

Теперь откройте веб-браузер и перейдите по адресу http://localhost/ или http://IP-адрес/.

Если вы видите экран, подобный приведенному выше, все готово. Сервер Apache работает!

2. Установите MariaDB

MariaDB — это полная замена сервера базы данных MySQL.

Чтобы установить его, запустите:

sudo apt install mariadb-server mariadb-client

Версия MariaDB в официальных репозиториях Ubuntu может быть устаревшей. Если вы хотите установить последнюю версию MariaDB, добавьте официальный репозиторий MariaDB для Ubuntu и установите его, как показано ниже.

Сначала добавьте репозиторий MariaDB и импортируйте ключ, как показано ниже.

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://sgp1.mirrors.linux-console.net/mariadb/repo/10.3/ubuntu bionic main'

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

sudo apt update
sudo apt install mariadb-server

Убедитесь, что служба MariaDB запущена или нет, используя команду:

sudo systemctl status mysql

Пример вывода:

● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-07-06 11:52:12 UTC; 2min 39s ago
Main PID: 3869 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 2322)
CGroup: /system.slice/mariadb.service
└─3869 /usr/sbin/mysqld

Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: mysql
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: performance_schema
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: Phase 6/7: Checking and upgrading tables
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: Processing databases
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: information_schema
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: performance_schema
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3906]: OK
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3975]: Checking for insecure root accounts.
Jul 06 11:52:13 ubuntuserver /etc/mysql/debian-start[3979]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

MySQL работает!

2.1 Настройка пароля администратора базы данных (root)

Во время установки MariaDB будет установлен пароль для учетной записи администратора (root).

Если вы попытаетесь установить пароль вручную с помощью команды:

mysql_secure_installation

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

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Enter current password for root (enter for none):

Чтобы решить эту проблему, войдите в систему как администратор базы данных MySQL, используя команду:

sudo mysql -u root

После входа в командную строку MySQL выполните одну за другой следующие команды.

use mysql;
update user set plugin='' where User='root';
flush privileges;
\q

Теперь вы можете установить пароль администратора базы данных с помощью команды:

mysql_secure_installation

Введите пароль и нажмите клавишу ВВОД, чтобы принять значения по умолчанию.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): # Press ENTER
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] # Press ENTER
New password: # Enter password
Re-enter new password: # Re-enter password
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] # Press ENTER
 ... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] # Press ENTER
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] # Press ENTER
 - Dropping test database...
ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist
 ... Failed! Not critical, keep moving...
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] # Press ENTER
 ... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Вот и все. Пароль для учетной записи администратора базы данных установлен.

3. Установите PHP

Чтобы установить PHP, запустите:

sudo apt install php libapache2-mod-php php-mysql

После установки PHP создайте файл info.php в корневой папке документов Apache. Обычно корневой папкой документов Apache будет /var/www/html/ или /var/www/ в большинстве дистрибутивов Linux на основе Debian. В Ubuntu 18.04 LTS это /var/www/html/.

Создайте info.php в корневой папке Apache, как показано ниже.

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

Добавьте следующие строки:

<?php
phpinfo();
?>

Сохраните и закройте файл. Перезапустите службу Apache, чтобы изменения вступили в силу.

sudo systemctl restart apache2

Теперь откройте веб-браузер и введите: http://IP-address/info.php в адресной строке.

Вы будете довольны экраном, как показано ниже.

Установите PHP-модули

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

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

sudo apt-cache search php- | less

Пример вывода:

Используйте стрелки и для перемещения вверх и вниз между результатами. Чтобы выйти из результата, введите q.

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

sudo apt-cache show php-gd

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

sudo apt install php-gd

Чтобы установить все модули (хотя это не обязательно), запустите:

sudo apt-get install php*

Не забудьте перезапустить службу Apache после установки любого модуля php.

Поздравляем! Мы успешно настроили стек LAMP на сервере Ubuntu 18.04 LTS.

Читайте также:

  • Установить стек Apache, MySQL, PHP (LAMP) в Ubuntu 18.04 LTS
  • Установить Nginx, MariaDB, PHP (стек LEMP) в Ubuntu 18.04 LTS
  • Установить стек Apache, MariaDB, PHP (LAMP) в Arch Linux
  • Установить стек Nginx, MariaDB, PHP (LEMP) в Arch Linux

И это все на данный момент. Как видите, настройка стека LAMP в Ubuntu абсолютно проста и понятна. Любой человек с ограниченным опытом может легко настроить стек LAMP. Впереди еще больше хороших вещей. Следите за обновлениями!

Ваше здоровье!

Статьи по данной тематике