We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Настройка LAMP/LEMP‑стека в Termux для разработки и тестирования веб‑приложений

Termux — удобная среда разработки для мобильных устройств, позволяющая поднимать локальные сервисы и тестировать веб‑приложения прямо на смартфоне или планшете. В этой статье рассмотрим настройку LAMP/LEMP‑стека в Termux: веб‑сервер (Apache или Nginx), СУБД (MariaDB как практичный вариант) и PHP. Наша цель — создать «локальную» среду для разработки и тестирования без привязки к удалённым хостингам.

Важно: настройка предназначена для работы в вашей локальной сети/на вашем устройстве и не используется для обхода ограничений доступа или иных противоправных целей.

Что именно будем собирать

Возможны два подхода:

  • LAMP: Apache + MariaDB + PHP
  • LEMP: Nginx + MariaDB + PHP

На практике проще всего выбрать один вариант и довести до стабильной работы. Ниже приведены оба сценария.

Подготовка Termux

Обновим пакеты и подготовим базовые компоненты.

pkg update -y
pkg upgrade -y
pkg install -y proot-distro wget curl nano tar

Далее установим зависимости для веб‑стека: веб‑сервер, PHP и СУБД. В Termux набор пакетов может отличаться в зависимости от версии репозиториев, поэтому команды ниже — ориентир. Обычно названия пакетов совпадают или близки.

Установка MariaDB (СУБД)

Ставим MariaDB и утилиты. Затем инициализируем базу данных и запускаем сервер.

pkg install -y mariadb

Инициализация и запуск выполняются через команды MySQL/MariaDB. Чаще всего удобно задать каталог данных и выполнить инициализацию перед первым запуском.

mkdir -p $HOME/.local/var/lib/mysql
mkdir -p $HOME/.local/var/run

mysqld_safe --datadir=$HOME/.local/var/lib/mysql --socket=$HOME/.local/var/run/mysqld.sock &

Дождитесь, пока сервис поднимется. Далее выполним базовую настройку (создание root‑пароля и проверка подключения).

mysql -u root --socket=$HOME/.local/var/run/mysqld.sock

Если у вас впервые запускается сервер и пароль не настроен, выполните установку. Уточнения по синтаксису зависят от состояния инициализации. Базовый сценарий обычно включает:

-- В интерактивной mysql-панели:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'ВашНовыйПароль';
FLUSH PRIVILEGES;
EXIT;

На этом этапе важно сохранить пароль в менеджере заметок/паролей, так как он понадобится для подключения приложения.

Установка PHP

Устанавливаем PHP и часто требуемые расширения. Для веб‑разработки обычно нужны mysqli или pdo_mysql, а также стандартные расширения для типичных фреймворков.

pkg install -y php php-fpm php-mysqli php-pdo php-pdo_mysql

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

Вариант 1: LAMP (Apache + MariaDB + PHP)

Установка Apache

pkg install -y apache2

Далее подготовим документ‑руты и включим PHP через конфигурации Apache. Конкретные пути могут отличаться, но чаще всего в Termux используется локальная структура в $HOME и стандартные каталоги из пакетов.

Попробуем создать структуру под проект.

mkdir -p $HOME/www/example/public

Создадим тестовую страницу.

cat > $HOME/www/example/public/index.php << 'PHP'
<?php
phpinfo();
PHP

Теперь нужно указать Apache на этот каталог как на webroot. Для этого отредактируйте конфигурацию Apache. Найдите подходящий файл в конфиге Apache (например, в подкаталогах и конфигах включения) и установите DocumentRoot и Directory.

Пример общего подхода (вы можете адаптировать под вашу конфигурацию):

nano $HOME/.config/apache2/httpd.conf

Если конфигурация находится в другом месте, используйте поиск по файлам.

find $PREFIX -maxdepth 4 -type f -name 'httpd.conf' 2>/dev/null

Ориентируясь на найденные файлы, задайте:

DocumentRoot "$HOME/www/example/public"
<Directory "$HOME/www/example/public">
  AllowOverride All
  Require all granted
</Directory>

Затем убедитесь, что обработка PHP включена. Чаще всего это зависит от модуля PHP или конфигурации под mod_php или proxy_fcgi. В Termux иногда удобнее подключать PHP через PHP-FPM. Если в вашем пакете PHP встроен как mod_php, тогда достаточно включить соответствующий модуль.

После правок запустите Apache.

apache2ctl -k start

Если команда отличается, используйте сервисные скрипты пакета или повторно проверяйте логи.

Тестирование Apache + PHP

Откройте локальный адрес. В Termux сервер обычно слушает на localhost или на определённом интерфейсе. Узнайте порт, указанный в конфигурации (часто это 80 или кастомный). Например, проверьте что порт занят:

pkg install -y lsof
lsof -i -P | grep apache

Далее проверьте страницу в браузере по адресу вида http://localhost:PORT или http://127.0.0.1:PORT. Если доступа нет, уточните bind‑адрес в конфиге Apache.

Вариант 2: LEMP (Nginx + MariaDB + PHP)

Установка Nginx

pkg install -y nginx

Подготовим проект и тестовую страницу.

mkdir -p $HOME/www/example/public
cat > $HOME/www/example/public/index.php << 'PHP'
<?php
phpinfo();
PHP

Конфигурация Nginx под PHP

В LEMP чаще всего PHP обслуживается через PHP-FPM. Убедитесь, что PHP-FPM установлен и запускается.

php-fpm -v

Запустим PHP-FPM (при необходимости указав конфигурацию). Далее в конфиге Nginx настраиваем fastcgi.

Обычно конфигурация Nginx для server blocks находится в файле вроде nginx.conf и/или в sites-enabled. Используйте поиск:

find $PREFIX/etc -type f -maxdepth 4 | grep -E 'nginx.conf|sites|conf.d' 2>/dev/null

Отредактируйте конфиг сервера. Примерная логика: root на $HOME/www/example/public, index index.php, location / отдает статику, location ~ .php$ проксирует на fastcgi (PHP-FPM).

nano $PREFIX/etc/nginx/nginx.conf

Внутри server block задайте примерно следующее (параметры сокета/адреса PHP-FPM могут отличаться):

root $HOME/www/example/public;
index index.php index.html;

location / {
  try_files $uri $uri/ =404;
}

location ~ \.php$ {
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_pass 127.0.0.1:9000;
}

Если PHP-FPM слушает сокет, а не TCP‑порт, тогда замените fastcgi_pass на сокет. Узнать это можно по конфигурации PHP-FPM.

find $PREFIX/etc -type f | grep -i 'php-fpm' 2>/dev/null

Запустите PHP-FPM и Nginx:

php-fpm &
nginx -g 'daemon off;' 

Для удобства лучше сначала запустить PHP-FPM, убедиться что он слушает нужный порт/сокет, затем поднять Nginx.

Тестирование LEMP

Откройте http://localhost с портом Nginx (часто 80, но в Termux может быть другой). Проверьте логи при ошибках.

tail -n 100 $PREFIX/var/log/nginx/error.log 2>/dev/null
tail -n 100 $PREFIX/var/log/nginx/access.log 2>/dev/null

Также полезно проверить переменные окружения и права на каталог проекта.

Создание и подготовка базы данных для проекта

После того как MariaDB работает, создайте базу и пользователя под конкретное приложение. Пример (в терминале mysql):

mysql -u root --socket=$HOME/.local/var/run/mysqld.sock

CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'СильныйПароль';
GRANT ALL PRIVILEGES ON appdb. TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

В конфигурации вашего приложения укажите параметры подключения: host 127.0.0.1 (или localhost), порт MariaDB (если стандартный — обычно 3306), имя базы appdb, пользователь appuser, пароль.

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

Рекомендуется держать проекты в фиксированной папке, например $HOME/www. Пример структуры:

$HOME/www/
  example/
    public/
    src/
    vendor/
  api/
    public/

В зависимости от фреймворка (Laravel, Symfony, Yii, собственная сборка) подстроите документ‑руты (часто это public/).

Если вам нужен доступ с другого устройства в вашей локальной сети, можно организовать «локальную сеть» с использованием VPN‑режима или локального прокси. Но используйте это только для удобного доступа в пределах вашей сети и в рамках разрешённой эксплуатации.

Базовая диагностика проблем

Ниже — типовые точки отказа и быстрые действия:

  • Apache/Nginx не стартует: проверьте занятый порт и ошибки в конфиге.
  • PHP не выполняется: проверьте, что обработчик PHP подключён (mod_php или fastcgi), и что index.php реально существует в DocumentRoot.
  • Ошибка соединения с БД: проверьте сокет/порт MariaDB, имя пользователя, пароль, и что пользователь имеет права на нужную БД.
  • 403/404: проверьте права на каталог и правила Directory (Apache) или root/try_files (Nginx).

Для просмотра логов используйте:

tail -n 100 $PREFIX/var/log/nginx/error.log 2>/dev/null
tail -n 200 $PREFIX/var/log/apache2/error_log 2>/dev/null

# MariaDB
tail -n 200 $HOME/.local/var/lib/mysql/.err 2>/dev/null

Рекомендации по безопасности и удобству

  • Храните пароли БД отдельно и не коммитьте их в репозитории.
  • Для разработки используйте локальный доступ; не публикуйте стек в «публичный интернет» с устройства.
  • Следите за версиями PHP и расширений под ваш проект.
  • При работе с несколькими проектами — используйте разные виртуальные хосты/порты, чтобы не путаться.

Заключение

Мы разобрали, как собрать LAMP и LEMP‑стек в Termux: установить MariaDB и PHP, затем поднять веб‑сервер (Apache или Nginx), настроить обработку PHP и подготовить базу данных под приложение. Такая локальная среда помогает быстро тестировать страницы и функционал, а также ускоряет разработку без лишней инфраструктуры.

Если хотите, чтобы настройка была стабильной под ваш сценарий (конкретный фреймворк, порты, fastcgi‑настройка, виртуальные хосты, интеграция с окружением), обратитесь в РыбинскЛАБ — мы поможем настроить Termux‑стек под ваши задачи.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект