Цей посібник проведе вас крок за кроком від нового пристрою Android до робочого локального
сайту WordPress, що працює на Termux, Nginx, PHP-FPM та MariaDB.
Він також охоплює автозапуск при завантаженні, підтримку пристрою в активному стані, використання USB SSD для медіа,
та увімкнення кешу об’єктів Redis. Протестовано на телефонах та Android TV боксах.
Що вам знадобиться
- Пристрій Android 7.0+ (телефон/планшет/TV бокс). Більше RAM/CPU = краще.
- Wi-Fi та джерело живлення (тримайте пристрій підключеним).
- Termux (з F-Droid) + опціонально Termux:Boot (також з F-Droid).
- Опціонально: MacroDroid або Tasker (з Google Play), якщо ваша ROM блокує Termux:Boot.
- Опціонально: USB SSD (для зберігання медіа).
0) Встановлення Termux та базове налаштування
pkg update && pkg upgrade -y
termux-setup-storage
Опціональний доступ SSH:
pkg install openssh -y
passwd
sshd # стандартний порт 8022
1) Встановлення веб-стека
pkg install nginx php php-fpm php-mysqli php-curl php-gd php-mbstring php-xml php-zip mariadb unzip wget nano -y
2) Запуск PHP-FPM (UNIX сокет)
php-fpm
# Стандартний сокет FPM (Termux):
# /data/data/com.termux/files/usr/var/run/php-fpm.sock
3) Мінімальна конфігурація Nginx (порт 8080, готовий до WordPress)
Редагуйте $PREFIX/etc/nginx/nginx.conf:
worker_processes 1;
events { worker_connections 1024; }
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_types text/plain text/css application/json application/javascript application/xml image/svg+xml;
server {
listen 8080;
server_name mysite.loc;
root /data/data/com.termux/files/usr/share/nginx/html;
index index.php index.html;
location / { try_files $uri $uri/ /index.php?$args; }
location ~ .php$ {
include fastcgi.conf;
fastcgi_pass unix:/data/data/com.termux/files/usr/var/run/php-fpm.sock;
fastcgi_index index.php;
}
client_max_body_size 64m;
error_page 500 502 503 504 /50x.html;
location = /50x.html { root /data/data/com.termux/files/usr/share/nginx/html; }
}
}
Перезавантажте Nginx:
pkill nginx 2>/dev/null
nginx
4) Швидкий тест PHP
echo "<?php phpinfo(); ?>" > $PREFIX/share/nginx/html/index.php
Відкрийте: http://<DEVICE_IP>:8080/ — ви повинні побачити сторінку інформації PHP.
5) MariaDB: Ініціалізація, запуск, створення БД/користувача
# Ініціалізуйте один раз (якщо datadir порожній)
mariadb-install-db
# Запустіть сервер у фоновому режимі
mysqld_safe --socket=$PREFIX/var/run/mysqld.sock &
# Створіть БД та користувача
mariadb -u root -h 127.0.0.1 -e "CREATE DATABASE my_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mariadb -u root -h 127.0.0.1 -e "CREATE USER IF NOT EXISTS 'my_wp_user'@'localhost' IDENTIFIED BY 'my_wp_password';"
mariadb -u root -h 127.0.0.1 -e "GRANT ALL PRIVILEGES ON my_db_name.* TO 'my_wp_user'@'localhost'; FLUSH PRIVILEGES;"
6) Завантаження та розгортання WordPress
cd $PREFIX/share/nginx/html
rm -rf *
wget https://wordpress.org/latest.zip
unzip -q latest.zip
mv wordpress/* .
rmdir wordpress
rm latest.zip
7) wp-config.php (БД, URL сайту/порт, префікс таблиць)
Скопіюйте зразок та відредагуйте:
cp wp-config-sample.php wp-config.php
nano wp-config.php
<?php
define('DB_NAME', 'my_db_name');
define('DB_USER', 'my_wp_user');
define('DB_PASSWORD', 'my_wp_password');
define('DB_HOST', '127.0.0.1'); // TCP уникає проблем з шляхом до сокета
define('WP_HOME', 'http://mysite.loc:8080');
define('WP_SITEURL', 'http://mysite.loc:8080');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
$table_prefix = 'web_'; // використовуйте ваш фактичний дамп/префікс таблиць (за замовчуванням 'wp_')
Локальний “красивий” домен
Додайте до файлу hosts на вашому ПК (підтримка портів у hosts відсутня):
192.168.31.50 mysite.loc
Відкрийте сайт за адресою http://mysite.loc:8080/. (Використовуйте IP вашого пристрою; найкраще зарезервувати IP на вашому маршрутизаторі.)
8) Підтримка активності та автозапуск при завантаженні
Запобігання сну
pkg install termux-api -y
termux-wake-lock
Автозапуск сервісів через start.sh (з перевірками процесів)
Створіть ~/.termux/boot/start.sh:
mkdir -p ~/.termux/boot
nano ~/.termux/boot/start.sh
#!/data/data/com.termux/files/usr/bin/bash
termux-wake-lock
mkdir -p "$PREFIX/var/run"
# Чекайте до 30с для зовнішньої SSD папки додатків (опціонально)
UPLOADS_SSD="/storage/A077-00B4/Android/data/com.termux/files/wp-uploads"
for i in $(seq 1 30); do [ -d "$UPLOADS_SSD" ] && break; sleep 1; done
# Сервіси (запускайте тільки якщо не запущені)
pgrep sshd >/dev/null || sshd
pgrep redis-server >/dev/null || redis-server --daemonize yes
pgrep mysqld >/dev/null || mysqld_safe
--datadir="$PREFIX/var/lib/mysql"
--socket="$PREFIX/var/run/mysqld.sock"
--pid-file="$PREFIX/var/run/mysqld.pid" &
pgrep php-fpm >/dev/null || php-fpm
pgrep nginx >/dev/null || nginx
chmod +x ~/.termux/boot/start.sh
Якщо ваша ROM блокує Termux:Boot
Використовуйте MacroDroid: Тригер = Завантаження пристрою → Дія = Запуск додатку: Termux. Потім додайте це до ~/.bash_profile:
nano ~/.bash_profile
# Запустіть start.sh, коли Termux відкриється (тільки якщо php-fpm не запущений)
pgrep php-fpm >/dev/null || bash ~/.termux/boot/start.sh
9) Зберігання медіа на USB SSD (тільки завантаження, безпечно та багато)
Android дозволяє записувати дані для додатків тільки в їх специфічну папку на знімному носії.
Створіть папку для завантажень на SSD та створіть символічне посилання на завантаження WordPress:
# Корінь WordPress
cd $PREFIX/share/nginx/html
# Специфічна папка додатку на SSD (замініть A077-00B4 на ваш UUID тома)
mkdir -p /storage/A077-00B4/Android/data/com.termux/files/wp-uploads
touch /storage/A077-00B4/Android/data/com.termux/files/wp-uploads/.ok
# Посилання на завантаження
[ -d wordpress/wp-content/uploads ] && rm -rf wordpress/wp-content/uploads
ln -s /storage/A077-00B4/Android/data/com.termux/files/wp-uploads wordpress/wp-content/uploads
10) (Опціонально) Кеш об’єктів Redis
pkg install redis php-redis -y
redis-server --daemonize yes
Додайте до wp-config.php:
define('WP_CACHE', true);
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_CLIENT', 'phpredis');
Встановіть та увімкніть плагін:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && mv wp-cli.phar $PREFIX/bin/wp
cd $PREFIX/share/nginx/html
wp plugin install redis-cache --activate
wp redis enable
wp redis status
Перевірте з Termux:
redis-cli ping
redis-cli monitor # оновіть сторінку WP; ви повинні побачити GET/SET
11) Швидкий скрипт резервного копіювання (mysqldump)
Створіть ~/backup.sh:
#!/data/data/com.termux/files/usr/bin/bash
DB_NAME="my_db_name"
DB_USER="root"
DB_HOST="127.0.0.1"
BACKUP_DIR="/data/data/com.termux/files/usr/share/nginx/html"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
FILE="$BACKUP_DIR/dump-$DATE.sql"
mysqldump -u "$DB_USER" -h "$DB_HOST" "$DB_NAME" > "$FILE"
[ $? -eq 0 ] && echo "Резервне копіювання: $FILE" || echo "Резервне копіювання не вдалося"
chmod +x ~/backup.sh
~/backup.sh
Шпаргалка з усунення несправностей
- Nginx: “директива server не дозволена тут” — ваш
server {}повинен бути всерединіhttp {}уnginx.conf. - 500 + “З повагою, nginx.” — PHP-FPM не досягнуто. Переконайтеся, що
fastcgi_pass unix:/data/.../php-fpm.sockвідповідає FPM сокету і щоphp-fpmзапущений. - MySQL “База даних не вибрана” під час імпорту — імпортуйте в обрану БД:
mariadb -u root -h 127.0.0.1 my_db_name < dump.sql. - WP знову показує інсталятор — неправильний
$table_prefix.
Встановіть його (наприклад,$table_prefix = 'web_';) уwp-config.php. - Все засинає при вимкненому екрані — запустіть
termux-wake-lockі вимкніть оптимізацію батареї для Termux / Termux:Boot. - Зовнішній SSD не присутній при завантаженні — додайте затримку 20–40с перед запуском Termux (MacroDroid), і додайте короткий цикл очікування в
start.sh.
Відкрийте свій сайт з будь-якого місця (опціонально)
- Зворотний SSH через дешевий VPS:
ssh -R 8080:localhost:8080 user@YOUR_VPS, потім проксі на VPS. - Тунелі: ngrok / Cloudflare Tunnel, якщо ви не хочете VPS.
Це все
Тепер у вас є портативний “мікро-сервер” WordPress, який самостійно завантажується, залишається активним,
обслуговує PHP через Nginx, зберігає медіа на USB SSD і може кешуватися Redis.
Для доступу ззовні на рівні виробництва, поєднайте його з невеликим VPS як зворотний проксі.