Как установить LAMP Stack на Fedora 32/31/30/29

Как установить LAMP Stack на Fedora 32/31/30/29

 

В этом посте мы рассмотрим, как установить и настроить LAMP Stack в Fedora 32/31/30/29. LAMP Stack — это набор инструментов с открытым исходным кодом, которые используются для размещения веб-приложений. Акроним стека LAMP включает в себя:

  • L —  хост-система Linux — может быть виртуальной или физической, или контейнером
  • A —  HTTP-сервер Apache
  •  — База данных MySQL / MariaDB
  • P —  язык программирования PHP

Чтобы иметь функциональный стек LAMP, вам нужно установить и настроить каждый компонент один за другим. Действия по установке и настройке стека LAMP на Fedora 31/30/29 должны быть простыми.

Шаг 1: Установите Fedora 32/31/30/29

Последний выпуск Fedora на момент написания этой статьи — Fedora 30. У нас есть руководство по установке, которое должно работать для физического сервера, виртуальной машины и для развертываний Vagrant Box:

Шаг 2: Установите базовые пакеты / установите SELinux в Permissive

Установите основные пакеты, такие как vim, curl, wget, telnet

sudo dnf -y update
sudo dnf -y install vim bash-completion curl wget telnet

Если вы впервые слышите о SELinux, я советую вам перевести его в режим Permissive или полностью отключить. Проверьте состояние SELinux, запустив:

# sestatus 
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      31

Режим по умолчанию enforcing. Чтобы перевести его в разрешающий режим, выполните:

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Чтобы полностью отключить это:

sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

Подтвердите постоянный статус настроен

$ cat /etc/selinux/config | grep SELINUX=
# SELINUX= can take one of these three values:
SELINUX=permissive

Шаг 3: Установите сервер Apache httpd

После того, как вы установили и обновили ОС Fedora, приступите к установке сервера Apache httpd.

sudo dnf -y install httpd

Настройте основные параметры httpd:

Отредактируйте файл конфигурации /etc/httpd/conf/httpd.conf установите:

ServerAdmin [email protected]
ServerName  example.com
ServerTokens Prod

При желании вы можете установить Keepalive

KeepAlive On

Включить и запустить httpdсервис

sudo systemctl start httpd
sudo systemctl enable httpd

Если у вас работает firewalld, разрешите   http и httpsуслуги.

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Шаг 4: Установите PHP и расширения

Установите PHP и настройте httpd для поддержки выполнения сценариев PHP. Проверьте нашу статью на:

Не забудьте установить общие расширения:

sudo dnf -y install php php-cli php-php-gettext php-mbstring php-mcrypt php-mysqlnd php-pear php-curl php-gd php-xml php-bcmath php-zip

Подтвердите установленную версию PHP:

$ php -v
PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Загруженные расширения можно просмотреть, передав -m опцию phpкоманде

$ php -m

Установить часовой пояс PHP для файла/etc/php.ini

date.timezone = Ukraine/Kiev

See a complete List of Supported Timezones.

Смотрите полный список поддерживаемых часовых поясов .

Шаг 4: Установите базу данных MySQL / MariaDB

Для установки MySQL на Fedora 31/30/29 используйте наше руководство:

Как установить MySQL 8.0 на Fedora

В исходных репозиториях Fedora имеется MariaDB 10.3, который можно установить с помощью dnfкоманды.

sudo dnf install mariadb-server

После установки установите набор символов

sudo vim /etc/my.cnf.d/mariadb-server.cnf

Установите свой набор символов в [mysqld]разделе

[mysqld]
character-set-server=utf8

Затем запустите mariadbслужбу и включите ее при загрузке

sudo systemctl start mariadb
sudo systemctl enable mariadb

Выполните первоначальные настройки MariaDB, такие как установка пароля root, отключение удаленного входа в систему 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): 
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] y
New password: 
Re-enter new 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] y
 ... 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] y
 ... 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] y
 - Dropping test database...
 ... Success!
 - 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] y
 ... Success!

Cleaning up...

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

Thanks for using MariaDB!

Ответьте на вопросы как ниже:

  • Введите текущий пароль для root (введите no): <Enter>
  • Установить пароль root? [Да / Нет] у
  • Удалить анонимных пользователей? [Да / Нет] у
  • Удалить тестовую базу данных и получить к ней доступ? [Да / Нет] у
  • Перезагрузить таблицы привилегий сейчас? [Да / Нет] у

Тестовый вход

$ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select version();
+-----------------+
| version()       |
+-----------------+
| 10.3.10-MariaDB |
+-----------------+
1 row in set (0.001 sec)

Создать и удалить тестовую базу данных:

MariaDB [(none)]> CREATE DATABASE test_db;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost' IDENTIFIED BY "StrongPassword";
Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

Чтобы удалить базу данных и пользователя, используйте

MariaDB [(none)]> DROP DATABASE test_db;
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> DROP USER 'test_user'@'localhost';
Query OK, 0 rows affected (0.001 sec)

Мы подтвердили, что наш сервер базы данных работает нормально. Чтобы разрешить удаленные подключения, разрешите порт 3306 на брандмауэре.

sudo firewall-cmd --add-service=mysql --permanent
sudo firewall-cmd --reload

Вы также можете ограничить доступ из доверенных сетей

sudo firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" \
service name="mysql" source address="10.1.1.0/24" accept'

Шаг 5. Проверьте установку лампы

В качестве теста для нашей установки стека ламп на Fedora 31/30/29 создайте тестовую страницу PHP

sudo vim /var/www/html/phpinfo.php

Добавить:

<?php
// Show all information, defaults to INFO_ALL
phpinfo();
?>

Перезагрузите httpd сервис и откройте страницу в вашем браузере.

sudo systemctl reload httpd

Открыть добавленную страницу информации PHP http://[serverIP]/phpinfo.php

Это все. Вы успешно установили стек LAMP на свой сервер Fedora 32/31/30/29 или на рабочую станцию