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

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

Развертывание и настройка полноценного LAMP-стека в Termux: оптимизация MySQL, настройка PHP-FPM и безопасный доступ через Nginx с TLS

Termux – это эмулятор терминала для Android, позволяющий разворачивать полноценную Linux-среду прямо на вашем мобильном устройстве. В этой статье мы рассмотрим, как создать LAMP-стек (Linux, Apache, MySQL, PHP) в Termux, оптимизировать его для работы и настроить безопасный доступ к вашим веб-приложениям через Nginx с использованием TLS (Transport Layer Security). Это может быть полезно для локальной разработки, тестирования или для запуска небольших веб-сервисов в изолированной среде. Важно отметить, что использование Termux не заменяет полноценный сервер и предназначено для образовательных и исследовательских целей, а также для локальной разработки.

Подготовка среды Termux

Первым делом, необходимо установить Termux из F-Droid (рекомендуемый способ) или Google Play Store. После установки и запуска, выполните следующие команды для обновления пакетов:

pkg update && pkg upgrade

Установите необходимые пакеты для работы LAMP-стека:

pkg install nginx php mysql termux-api

Установка и настройка MySQL

Установите MySQL и настройте его:

pkg install mariadb

Запустите MySQL сервер:

mariadb start

Установите пароль для пользователя root MySQL. Это очень важный шаг для обеспечения безопасности:

mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'ваш_пароль';"

Замените 'ваш_пароль' на надежный пароль. Не используйте простые пароли.

Установка и настройка PHP

Установите PHP и необходимые расширения:

pkg install php php-mysql php-mbstring php-curl php-gd php-xml php-json php-opcache

Проверьте версию PHP:

php -v

Установка и настройка Nginx и PHP-FPM

Nginx будет использоваться в качестве веб-сервера, а PHP-FPM (FastCGI Process Manager) – для обработки PHP-скриптов. Настройте PHP-FPM:

cp /data/data/com.termux/files/usr/etc/php-fpm.d/www.conf /data/data/com.termux/files/usr/etc/php-fpm.d/www.conf.bak
sed -i 's/user = apache/user = termux/g' /data/data/com.termux/files/usr/etc/php-fpm.d/www.conf
sed -i 's/group = apache/group = termux/g' /data/data/com.termux/files/usr/etc/php-fpm.d/www.conf

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

php-fpm start

Настройте Nginx для работы с PHP-FPM. Создайте конфигурационный файл для вашего сайта (например, /data/data/com.termux/files/home/mysite.conf):

nano /data/data/com.termux/files/home/mysite.conf

Вставьте следующий код, заменив /data/data/com.termux/files/home/mysite на путь к вашим веб-файлам:

server {
    listen 8080;
    server_name localhost;
    root /data/data/com.termux/files/home/mysite;
    index index.php index.html index.htm;

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

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/data/data/com.termux/files/usr/var/run/php-fpm.sock;
    }

    location ~ /.ht {
        deny all;
    }
}

Добавьте конфигурацию сайта в Nginx:

ln -s /data/data/com.termux/files/home/mysite.conf /data/data/com.termux/files/usr/etc/nginx/conf.d/mysite.conf

Перезапустите Nginx:

nginx restart

Настройка TLS/SSL для безопасного доступа

Для обеспечения безопасного доступа к вашему сайту, настройте TLS/SSL. Вы можете использовать Let's Encrypt для получения бесплатных сертификатов, но Termux не поддерживает автоматическую настройку Let's Encrypt. Вместо этого, вы можете сгенерировать самоподписанный сертификат для целей разработки и тестирования:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /data/data/com.termux/files/home/mysite.key -out /data/data/com.termux/files/home/mysite.crt

При генерации сертификата, вам будет предложено ввести информацию о вашем сайте. Замените mysite.conf на следующую конфигурацию, добавив блоки server для портов 8080 и 8443 (TLS):

server {
    listen 8080;
    server_name localhost;
    root /data/data/com.termux/files/home/mysite;
    index index.php index.html index.htm;

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

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/data/data/com.termux/files/usr/var/run/php-fpm.sock;
    }

    location ~ /.ht {
        deny all;
    }
}

server {
    listen 8443 ssl;
    server_name localhost;
    root /data/data/com.termux/files/home/mysite;
    index index.php index.html index.htm;

    ssl_certificate /data/data/com.termux/files/home/mysite.crt;
    ssl_certificate_key /data/data/com.termux/files/home/mysite.key;

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

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/data/data/com.termux/files/usr/var/run/php-fpm.sock;
    }

    location ~ /.ht {
        deny all;
    }
}

Перезапустите Nginx:

nginx restart

Теперь вы можете получить доступ к вашему сайту через https://localhost:8443 в браузере. Поскольку используется самоподписанный сертификат, браузер может выдать предупреждение о небезопасном соединении. Это нормально для целей разработки и тестирования.

Оптимизация и безопасность

Для повышения производительности MySQL, настройте файл конфигурации /data/data/com.termux/files/usr/etc/my.cnf. Ограничьте доступ к базе данных только из локальной сети. Для доступа извне, можно использовать VPN для создания безопасного туннеля. Важно помнить, что VPN используется для создания локальной сети и обеспечения безопасного доступа к локальным ресурсам, а не для обхода блокировок.

Заключение

В этой статье мы рассмотрели, как развернуть и настроить полноценный LAMP-стек в Termux. Это позволяет создавать и тестировать веб-приложения прямо на вашем Android-устройстве. Помните о важности безопасности и используйте надежные пароли. Если вам требуется профессиональная помощь в настройке серверов, оптимизации производительности или обеспечении безопасности, обратитесь в РыбинскЛАБ. Мы предлагаем широкий спектр услуг по администрированию серверов, разработке и внедрению веб-приложений.

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

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

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

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