Как установить LAMP Stack на Fedora 32/31/30/29
В этом посте мы рассмотрим, как установить и настроить LAMP Stack в Fedora 32/31/30/29. LAMP Stack — это набор инструментов с открытым исходным кодом, которые используются для размещения веб-приложений. Акроним стека LAMP включает в себя:
- L — хост-система Linux — может быть виртуальной или физической, или контейнером
- A — HTTP-сервер Apache
- M — База данных 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 или на рабочую станцию