WordPress сайт на Андроид сервере
Простая установка WordPress на сарвер Андроид с помощью приложения Termux.
Для некоторых наработок на WordPress сайте я использую сервер созданный с помощью эмулятора Termux. Ворос: зачем? Ответ: когда нет сети, а руки чешутся, локальный сервер на андроиде помогает попрактиковаться в настройках тем и плагинов WordPress. После установки такого сервера можно практиковаться также с Laravel и BootStrap сайтами. Колличество хостов, а значит и сайтов на этих хостах, ограничено колличеством памятит вашего андроид смартфона. Получаете полноценный сервак на андроиде.
Попытаюсь объснить как это сделать без root прав на телефоне.
Установка приложения.
! ГЛАВНОЕ. Не ставьте Termux c Google Play. Получите геморрой при обновлениях и установках необходимых для работы пакетов Linux. Зря потратите время.
Я скачал APK установщик с гита :
1 |
https://github.com/termux/termux-app |
Устанавливается скачанное приложение как обычно и занимает около 230Mb места.
!После установки надо обязательно обновить пакеты:
1 |
pkg update && pkg upgrade |
Облегчаем себе дальнейшую жизнь:
- Так кам мы создаем сервер, а не хакерскую машину, доступ к файлам долен быть простым и комфортным. Можно с помощью командной строки прыгать с папки в папку и смотреть че да как. Но я люблю, думаю и вы тоже, комфорт и максимальную отдачу. По этой причине я всегда, первым делом, на любой linux сервер устанавливаю MidnightCommander, сокращенно mc:
1 |
pkg install mc |
У MidnightCommander много полезностей, имеется встроенный редактор. С nano не сравниться, но тоже хорош.
По комнде Ctrl+o уходят и возвращаются панели. Копировать с окошка в окошко весьма просто. А верхней части выпадает куча менюшек с командами. Главное: всегда видно где ты находишся. Рекомендую!
2. Далее необходимо пробросить прямую связь с sdcard нашего андрода. Этим самым мы получаем проямой доступ к папкам хостов будущего сервера прямо с файлового менеджера Андроида.
Команда которая создаст и расшарит нужные директории на смартфоне:
1 |
termux-setup-storage |
При исполнении этой команды дайте приложению необходимые разрешения.
Надо создать папку для будущих сайтов. С помощью файлового менеджера, зaходим в корень Андроида и создаем папку с именем www. Внутри www положите пустую папочку site. Позже туда забросим файлы сайта WordPress. И называться сайт будет site 😀.
Проверка. Зайдите в в директорию home с помощью команды cd и сделайте запрос:
1 |
ls /sdcard/www |
если увидите пакпу site, значт все ok.
3. Давайте ЕЩЕ больше упростим себе доступ ко начинке Termux. Подкючим смартфон к компу по ssh. Будет неплохо: Termux как под микроскопом, да еще и клавиатура с мышкой будут при деле!!!😀
Устанавливаем на Termux openssh:
1 |
apt install openssh |
У вас в папке home на termux появилась папка .ssh c двумя файлами. Нам понадобиться файл authorized_keys. Вернее его название.
Далее на компе (у меня Windows 10) в строке выполнить с помощью команды ssh-keygen генерируем пару ssh ключей.
После этого действия в Windows папке users\user\.ssh появятся сгенерированные ключи ssh. Нас интересует файл с расширением pub. У меня это id_rsa.pub. Скопируте его в www директорию на андроиде. Способ придумайте. Это будет домашним заданием 😀.
В директории www переименуйте файл на authorized_keys и скопируйте файл в директорию home/.ssh/ с заменой существуещего одноимённого файла. Все. SSH ключи лежат в нужном месте! На всякий случай загляните в файл authorized_keys командой cat. Чтобы не пустой был😀
Запускаем ssh сервер на Termux командой:
1 |
sshd -p 8022 |
У нас не root, поэтому номер порта не 22 а 8022!
Командой ifconfig в Temux смотрим свой IP в локальной сети и запоминаем. Например 192.168.0.104
4. На компе в терминале cmd вводим команду:
1 |
ssh 192.168.0.104 -p 8022 |
Теперь упралять сервером можно из большого окна терминала Windows:
Или так по команде mc:
Клава и мышка нам в помощь!
Для WordPress сайта нужна базаданных.
[!ВАЖНО] Ставьте сначала DB. Если сделаете это после установоки pkg install php-apache – ЗАМУЧАЕТЕСЬ редактировать в php.ini строку ;extension=pdo_sqlite
На тренировочные макеты сайтов, я обычно ставлю базу данных SQLite. С ней мороки поменьше, ей отдельный сервер не нужен. Она всегда с сайтом 😀.
Установка:
1 |
apt install pdo_sqlite |
Иногда не устанавливается. Тогда запасной вариант:
1 |
pkg install nodejs |
Проверка:
1 |
npm -v |
Установка:
1 |
npm instll sqlite |
Установка Apache2 и PHP
Устанавливаем apahe и PHP одной командой:
1 |
pkg install php-apache |
После установки перезапустите apache:
1 |
apachectl restart |
Если нет ощибок при перезапуске в браузере введите адрес:
1 |
http://localhost:8080 |
Дожен появиться домашний сайт Termux-Apache c надкписью It’s work в левом верхнем уголочке. Сервер работает.😀
Дальще подключим в файле /usr/etc/apache2/httpd.conf модуль PHP и добавим несколько изменений в кастомный файл httpd.conf для нормальной работы с хостами и сайтами на нашем Андроид сервере.
Файл httpd.conf очень большой
Поэтому пишу приблизительно номера строк где надо менять значения.
Настройка httpd.conf файла
Приблизительно в строках 68 69 файла usr/etc/apache2/httpd.conf меняю разрешения в строках:
1 2 3 4 5 |
LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so #LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so |
Приблизительно строка 180 файла usr/etc/apache2/httpd.conf вставляю строки:
1 2 3 4 |
# некоторые советуют открыть этот модуль # LoadModule rewrite_module libexec/apache2/mod_rewrite.so |
1 2 3 4 5 |
LoadModule php_module libexec/apache2/libphp.so AddHandler application/x-httpd-php .php |
Прописать IP
Приблизительно строка кода 230 файла usr/etc/apache2/httpd.conf
1 2 3 4 5 6 7 8 |
# так было: #ServerName www.example.com:8080 # стало так: ServerName localhost:8080 |
Изменить Require all на granted
Приблизительно строка кода 240 файла usr/etc/apache2/httpd.conf
1 2 3 4 5 6 7 8 9 |
# так было: <Directory /> AllowOverride none Require all denied </Directory> |
1 2 3 4 5 6 7 8 9 |
# стало так: <Directory /> AllowOverride none Require all granted </Directory> |
Изменить адреса хостов для апач2:
Приблизительно строка кода 250 файла usr/etc/apache2/httpd.conf
1 2 3 4 5 6 7 |
# так было: # DocumentRoot "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs" # <Directory "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs"> |
1 2 3 4 5 6 7 |
# так стало: DocumentRoot "/sdcard/www/site" <Directory "/sdcard/www/site"> |
Изменить индексы:
Приблизительно строка кода 280 файла usr/etc/apache2/httpd.conf
1 2 3 4 5 6 7 8 |
<IfModule dir_module> # так было: # DirectoryIndex index.html # стало так: DirectoryIndex index.php index.html indrx.cgi index </IfModule> |
Проверка подключения модуля PHP
В папке www/site создаем файл index.php и в нем пишем следующую фунцию php:
1 2 |
<?php phpinfo(); |
Выполняем команду:
1 2 |
apachectl restart |
Заходим по адресу http://localhost:8080. Должны увидеть в развернутом виде ваш файл php.ini:
Дошли и до WorgPress
- Файл index.php переименовываем в info.php
- Скачиваем WordPress, распаковываем все файлы в папку site
- Файл wp-config-sample.php переиеновать в wp-config.php
- В папке wp-content создаёь пустой файл db.sqlite
- Начинку для db.sqlite берем ЗДЕСЬ и заливаем в файл.
- Заходим на http://localhost:8080 – запускается установка WordPress
- Базу подключать не надо. Скрипт в db.sqlite сделает это за вас.
Сервер с WorgPress на Андроде работает.
Выводы и советы:
- Полноценной работы не получиться. Смартфон хоть и производителен, но создавать нормальный сайт на маленьком экране не получиться. Разве, что потренироваться.
- После установок всего неоходимого размер Temux на телефоне 1.78Гб. А стартовали мы с 230Мб!!! Это не считая исходников WordPress и Laravel. У меня установлено 3 сайта.
- Для работы с БД стоит приложение SQLite редактор. Всего 21.6Мб. Но тоже место занимает. Для написания кода использую Cx проводник. Еще 30Мб.
- Если хотите чтобы код с подсветкой был, поставьте бесплатную версию Acode:
Пользуюсь сервером не очень часто, но регулярно и сносить Termux пока не собираюсь.
А вам понравился Termux?