оригинальная версия версия для слабовидящих контрастная версия выключить изображения включить изображения RSS FEED K2 NEWS
Понедельник, 02 Декабрь 2024 21:11

Nginx на OrangePi

OrangePi помимо прочего, можно использовать, как локальный веб-сервер. Конечно же, этот самый веб-сервер необходимо установить и настроить. Среди самых популярных являются Apache и Nginx, соответственно комплексы серверного ПО имеют акронимы LAMP и LEMP.

Nginx на Orangepi

LinuxAipacheMySQLPHP. LiinuxEngine-X (Nginx) — MySQLPHP. В этом стеке нередко MySQL меняют на MariaDB (я тоже планирую так поступить) или же на PostgreSQL. Итак, Linux у нас уже установлен, следующее с чем необходимо определиться — веб-сервер, несмотря на то, что Apache кажется более «простым» (только потому что настройки по умолчанию для локального сервера не требуются, но когда встаёт необходимость настроить несколько сайтов то разницы в «простоте» с nginx уже не чувствуется), я остановил свой выбор на Nginx.

Итак, подключаемся к апельсину и вводим команду:

sudo apt install nginx

После того, как файлы благополучно скачаны и установлены, сервер, как правило, ещё и автоматически запускается. Будет полезным знать следующие команды:

sudo service nginx status — вывод информации о сервере, среди прочего «зелёное» active, значит что сервер работает, и, соответственно неподсвеченное inactive значит что не включен. Выйти из статус-режима, клавиша «Q».

sudo service nginx stop — остановить (выключить) службу веб-сервера.

sudo service nginx start — запустить (включить) службу веб-сервера.

sudo service nginx restart — перезапустить службу веб-сервера (лично у меня больше доверия вызывает связка stop+start).

Веб-сервер необходимо перезагружать всякий раз, когда Вы вносили какие-либо изменения в его настройки.

Собственно, если кроме nginx никакой веб-сервер больше не был установлен (например, apache), он активен и его настройки Вы не успели изменить, то его работоспособность можно проверить уже сейчас, введя в строку Интернет-браузера IP-адрес, который Вы вводили подключаясь к апельсину по SSH. Если Вы с OrangePi работаете «напрямую», то введите команду:

ip addr

В выданной информации (если апельсин подключен к Wi-Fi, то нас будет интересовать интерфейс wlan0) найдите «inet», скорее всего будет что-то начинающееся на «192.168.*.*» и ещё две цифры вместо *. Браузер сам перенаправит на протокол http://192.168.*.* .

Nginx Welcomei

Веб-сервер установили, далее установим систему управления баз данных, здесь каждый выбирает для себя. Я установлю mariadb:

sudo apt install mariadb-server

Дальше, как с nginx:

sudo service mariadb status

Остальные команды службы аналогичны, выйти из статус-режима тоже клавиша «Q». Как и с веб-сервером, как только Вы изменяете настройки сервера Mariadb, службу необходимо перезапускать.

Далее очередь за php (кому-то может оказаться ближе perl или python, но это уже не в этом обзоре):

sudo apt install php

и

sudo apt install php-fpm

PHP-FPM (FastCGI Process Manager), запускает процессы позволяющие выполнять скрипты php (т.е. без него скрипты работать не будут). Его часто используют в связке с Nignx, поскольку он значительно меньше памяти и ресурсов CPU (если сравнивать с другими методами запуска php).

Команда работы с fpm может отличаться, и зависит от того, какая версия php у Вас установлена, если отталкиваться от того, что Вы по какой-то причине можете не знать, какую версию php установили на сервер:

php -v

Далее, в зависимости от того, какая версия у Вас установлена (в моём случае 8.1):

sudo service php8.1-fpm status

Я однажды столкнулся с случаем, когда при обновлении пакетов (sudo apt update && sudo apt upgrade), обновилась версия php (например с 8.0 до 8.1), несложно догадаться, что вводя команду с предыдущей версией у меня на выходе получалось: service could not be found.

Поэтому я сейчас так много внимания уделяю этому моменту.

На этом моменте можно было бы остановиться с установками, однако не все умеют через консоль работать с БД, многим подавай GUI, неплохое решение в таких случаях phpmyadmin:

sudo apt install phpmyadmin

При установке будет задан вопрос под какой веб-сервер устанавливается, nginx в списке нет, поэтому ничего не выбирая просто нажимаем на Tab, далее «Yes», ввод и повторение пароля для администрирования базы данных.

Чтобы был доступен веб-интерфейс phpMyAdmin, создадим символическую ссылку:

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Кроме того, по умолчанию в настройках сервера nginx необходимо «включить» выполнение скриптов php, для этого нам необходимо отредактировать это в настройках:

sudo nano /etc/nginx/sites-available/default

Добавить index.php рядом с index.htm. А кроме того включить в настройках исполнение php скриптов на сервере (после чего, нажимаем Ctrl+S и Ctrl+X):

Nginx Default

Обратите внимание, что кроме того, что я убрал в необходимых местах комментарии, я так же изменил версию fpm на свою. Это к слову, также будет необходимо повторно сделать, если версия php изменится, например, на 8.2.

Далее перезагружаем наш сервер:

sudo service nginx restart

И проверяем открыв в браузере:

http://192.168.*.*/phpmyadmin

Nginx Phpmyadmint

Для входа, как можно догадаться, необходима учётная запись. Использовать root считается дурным тоном, но в любом случае его ещё надо настроить.

sudo mysql_secure_installation

Здесь нас спросят за пароль от root’а или же если мы просто установили Mariadb, то можно нажать Enter, чтобы продолжить.

Switch to unix_socket authentication?

Ставим Y если хотим оставить возможность подключения к базе «локальных пользователей», через unix_socket и соответственно N, если такое положение Вас не устраивает. На самом деле довольно странный вопрос, полностью отключить подключение с локальной машины в теории возможно, но создаст массу трудностей, а «оставлять возможность подключиться root’ом» вызывает вопрос того, какой вообще был смысл в этой опции.

Change the root password?

То, ради чего мы здесь (меняем пароль на свой) и подтверждаем.

Remove anonymous users?

Удаляем пользователей анонимов.

Disallow root login remotely?

Ставим да (Y), чтобы запретить удалённое подключение под root’ом.

Remove test database and access to it?

Удалить базу данных «test», я выбрал N, потому что удалить всегда успею.

Reload privilege tables now?

Перезагрузить таблицу привилегий сейчас (для вступления их в силу), тоже ставим Y.

Теперь мы можем зайти в базу:

mariadb -u root -p

Вводим пароль, который только что установили. Далее:

CREATE USER USERNAME@localhost IDENTIFIED BY 'PASSWORD';
\q

Перезапустим сервер:

sudo service mariadb status

И теперь можем зайти в phpmyadmin под созданной учётной записью.

Спонсоры: