Какие пакеты необходимо установить на чистом LEMP-сервере?

Какие PHP-расширения обязательны для установки в среде с Ubuntu 22, UFW, Nginx, PHP-FPM, MySQL и phpMyAdmin? Необходимо ли устанавливать только mysql-server или также mysql-client? Какие расширения PHP, помимо php-mbstring, являются обязательными для базового функционирования PHP-FPM, MySQL и phpMyAdmin? Например, являются ли необходимыми php-sqlite и php-gettext?
  • 14 января 2024 г. 19:08
Ответы на вопрос 2
Чтобы настроить LEMP-стек (Linux, Nginx, MySQL, PHP) на Ubuntu 22, вам потребуется установить следующие пакеты:

1. Nginx (веб-сервер)
2. MySQL (система управления базами данных)
3. PHP-FPM (FastCGI Process Manager)
4. Различные PHP-расширения, необходимые для работы ваших приложений

Для базовой работы с LEMP и phpMyAdmin следует установить следующие пакеты:

```sh
sudo apt update
sudo apt install nginx
sudo apt install mysql-server
sudo apt install php-fpm
sudo apt install php-mysql  # Расширение для работы с MySQL
sudo apt install php-mbstring
sudo apt install phpmyadmin
```

Относительно `mysql-client`: данный пакет содержит утилиты командной строки для работы с сервером MySQL, такие как `mysql` и `mysqldump`. Хотя он необязательный для работы сервера, его наличие может быть полезным для управления базами данных и выполнения задач по их обслуживанию.

Основные PHP-расширения, которые могут понадобиться для базовой работы с PHP-FPM, MySQL и phpMyAdmin включают:

- `php-curl`: для использования cURL библиотеки в PHP, очень часто требуется для внешних HTTP запросов.
- `php-json`: для работы с JSON.
- `php-gd`: для работы с изображениями.
- `php-xml`: для работы с XML форматами данных.
- `php-zip`: для работы с архивами.
- `php-intl`: Internationalization extension, используется для интернационализации.

`php-sqlite3` и `php-gettext` устанавливаются, если вам необходима поддержка баз данных SQLite и локализации интерфейса с использованием Gettext соответственно. Если вы планируете использовать только MySQL в качестве СУБД и не будете использовать функционал SQLite, то `php-sqlite3` вам не понадобится. Аналогично, необязательно устанавливать `php-gettext`, если не предполагается использовать функционал мультиязычности через Gettext.

Для использования UFW (Uncomplicated Firewall) для настройки фаервола, вам могут понадобиться следующие команды:

```sh
sudo ufw enable
sudo ufw allow 'Nginx Full'
sudo ufw allow ssh
```

Это базовый набор правил, которые позволят внешний доступ к веб-серверу и SSH. Уточняйте и дополняйте их в соответствии с вашими требованиями безопасности и сетевой политикой.
Вопрос звучит так. Ребят, я собрался в пеший поход. И не знаю что положить в рюкзак. 

Тоже самое про LAMP. Никто не знает. Потому что для Ламп не формализован состав пакетов PHP
например. Ставят то что будет явно использовано в приложении. Соберешся ты в походе дрова
рубить или нет - никому не ведомо.
Похожие вопросы