Поднимаем свой сервер в термукс
Termux, please
Всем привет! Сегодня я покажу как развернуть локальный сервер через termux, поехали!

Всё, что мы сейчас будем делать — мы будем делать при помощи клавиатуры Hacker’s Keyboard которую можно скачать из google play.
Ну а сам же процесс подготовки мы начнем с того, что выполним такие вот две команды.
Для того, чтобы обновить все пакеты в термуксе:
pkg update pkg upgrade
Теперь командой:
ls /sdcard/
Мы проверим, есть ли у нашего термукса доступ ко внутренней памяти телефона.
Если ничего не отобразилось (или у вас тут ошибка доступа), то переходим в настройки разрешений > Разрешения > Termux > Мультимедиа: И разрешаем тут доступ и изменение файлов во внутренней памяти смартфона. Остальные галочки тоже можно кстати включить:

Теперь если у вас вывод команды
ls/sdcard/ - похож на мой, то можно продолжать:

Устанавливаем необходимые пакеты, программы и инструменты которые тоже нам могут понадобиться командой:
pkg install php-apache git wget nano -y
После ввода этой команды веб-сервер уже должен установиться, а значит, мы уже можем попробовать загрузить простенькую http страничку которая сейчас должна хоститься на нашем смартфоне.
Запускаем сам веб-сервер командой:
apachectl start
На предупреждения пока не обращаем внимания, главное чтобы у нас не было критических ошибок.
Ну, а сейчас давайте подключимся к нашему смартфону по его IP адресу из локальной сети, для этого вводим ifconfig и смотрим какой ip адрес выделен нашему смартфону на интерфейсе wlan0 (это wifi):

В моём случае это: 192.168.0.158
Мы его запомним, он нам еще дальше пригодится.
Ну, а сейчас через браузер с нашего компьютера в локальной сети заходим на этот IPшники. у нас ничего не происходит. Потому-что порт по умолчанию установлен на 8080, это мы тоже сконфигурируем, ну а сейчас же мы можем видеть то, что сервер у нас поднялся потому-что эта страничка у нас хранится на телефоне и мы можем продолжать дальшe.
Тут есть один момент. Веб сервер мы подняли, и поидее уже можно загружать какой-нибудь движок типа Wordpressили Xenforo и начинать им пользоваться. Но… Нет. Дело в том, что по умолчанию тут работают только HTML странички, а PHP тут не подключен. И нам вручную надо это сконфигурировать. Да и не только это, параметров тут много поэтому… приступаем к конфигурации.
Нам нужно открыть конфигурационный файл Apache вот такой вот командой:
nano ../usr/etc/apache2/httpd.conf
В этом консольном текстовом редакторе мы и будем работать.
Поиск в этом редакторе Nano делается комбинацией Ctrl + W, затем вводим что ищем, и жмем Enter:
[ctrl+w] Listen [Enter]
В общем находим Listen, это как раз тот параметр который отвечает за порт, на котором будет находиться наш веб-сайт. Чтобы не пришлось указывать порт в браузере вручную, надо заменить его на 80 порт.
Но, важный момент. 80 порт у вас будет работать только если у вас есть root права. Если у вас рут прав нет, у вас ничего не заработает потому-что Android, да и не только Android, даже Linux блокирует создание чего-то на 80 порту без рут прав. Поэтому всё что я буду показывать, это будет для смартфонов без рут, и соответственно будем использовать порт 8080. Не так красиво, но зато заработает у всex:

Далее, чтоб вы могли легко закидывать и редактировать файлы своего веб-сервер при помощи обычного проводника, найдем такую строчку как DocumentRoot:
[ctrl+w] DocumentRoot [Enter]
Эта директива настраивает корневую папку сайта, т.е. именно тут будут находиться все ваши файлы. Меняем путь в двух строчках так, чтобы они приняли такой вид:
DocumentRoot "/sdcard/web/www" <Directory "/sdcard/web/www">

Почти всегда /sdcard/ - это внутренняя память смартфона, поэтому все файлы сайта будут доступны из родного проводника.Так будет удобней.
Теперь ищем директиву определяющую индексные файлы по умолчанию [DirectoryIndex]:
[ctrl+w] DirectoryIndex [Enter]
И изменяем её так, чтобы она индексировала в том числе php файлы, дописав сюда:
index.php

Далее ищем список подключаемых модулей по слову Load (Всё так же, Ctrl + W, Load, Enter):
[ctrl+w] Load [Enter]
И обратите внимание, модули с решеткой — это выключенные модули. Чтобы включить их, надо просто удалить решетку. Чтобы отключить, надо наоборот, закомментировать строчку, то есть вставить сюда знак решетки.
В общем включаем:
LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so
И отключаем:
#LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so
Теперь идем дальше в конец этого списка и добавляем следующие строки для включения php:
LoadModule php7_module libexec/apache2/libphp7.so
<IfModule php7_module>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>

Ну, и чтобы у нас не появлялась ошибка связанная с именем сервера, найдем строчку ServerName
И раскомментируя её исправим на что-то вроде этого: localhost и через двоеточие порт, который мы используем.
localhost:8080

Сохраняем файл комбинацией [Ctrl]+[S]
И теперь выходим отсюда комбинацией [Ctrl]+[X]
Далее создаем нашу новую корневую папку сайта.
Но сначала давайте перейдем во внутреннюю память телефонa:
cd /sdcard/
Я создаю папку с тем же названием, которое я прописывал в конфиг файле для DocumentRoot и Directory такой вот командой:
mkdir -p /sdcard/web/www
Ну и наконец мы можем создать какой-нибудь PHP файл с нашей тестовой страничкой. Кому как, но лично мне для мобильного кодинга нравится использовать приложение Acode. Оно бесплатное, есть в google play, в нём есть подсветка синтаксиса и даже нет рекламы.
В общем тут открываем и выбираем нашу папку web/www/
Далее создаём новый файл и называем его index.php
<?php
phpinfo();
?>
Ну, и тут в общем-то вы можете писать всё что угодно на языке PHP. Я вот в качестве примера решил прописать вот такой вот код. Этот код поможет проверить нам работает ли у нас PHP, и покажет основную информацию о веб-сервере в целом…
Сохраняем этот файл и возвращаемся в термукс.
Давайте проверим нашу конфигурацию, вводим:
apachectl -t
Если написало Syntax OK, значит файл конфигурации мы настроили без ошибок и мы готовы к запуску сервера.
Для этого вводим:
apachectl restart
Все! Сервер запущен, осталочь перкйти по ip нашего смартфона, то есть 192.168.0.158:8080

Касаемо производительности этого сервера. Вы наверняка думаете что он очень слаб, и даже примерно не будет стоять рядом с обычным сервером.
Чтобы вы понимали, на обычных экономных хостингах вам часто выдают 512 мб оперативки, и какой-нибудь не очень мощный процессор.
Текущий смартфон, любой, относительно новый — он. в несколько раз мощнее в плане производительности. Единственная самая слабая их часть — это подключение по WiFi, которое немного увеличивает пинги и так же снижает стабильность подключения.
И кстати, если в папке www просто создать тут новую папку, и скопировать в неё какие-либо файлы, ваш смартфон станет настоящим файловым хранилищем с удалённым доступом. Делиться файлами или фотками которые вы делаете, вы сможете просто поместив их сюда, после чего сможете перейти из веб браузера в эту папку и скачивать все эти файлы.
Если вы хотите сделать так, чтобы этот сервер стал доступен как обычный сайт — из интернета и по доменному имени, то вам просто остаётся пробросить порты на вашем роутере и прикрутить сюда доменное имя.
Вот и подошел конец статьи, надеюсь она кому-нибудь пригодится.
Спасибо за прочтение!

- 📺 UnderMind - Наш Канал YouTube
- ✅ [YT]UnderMind - Наш основной TG канал
- 🏴 ☠️ UnderPrivate - Приватный канал
- 🛒 HackAli - cамые интересные хакерские товары с Aliexpress!
- 👨 💻 Termux, пожалуйста - 100% termux
- 📱 Android, пожалуйста - от APK до мануалов
- 🐧 Linux, пожалуйста - всё о Linux
- 💭 https://t.me/UnderChats - Чат
- ⚡️ Мы в Яндекс. Zen - Лучший контент со всех наших каналов