Веб сервер на Orange Pi PС

 Сразу пара слов о железе, данная плата и ее параметры описаны не однократно так что не будем в это углубляться.

 Стоит отметить что сам процессор довольно сильно нагревается и использовать без дополнительного радиатора может привести к перегреву и отвалу BGA контактов чипа от платы, а так же чипы оперативной памяти тоже греются но более умеренно. Так что в идеале положить на все три чипа один радиатор (высота чипов одинаковая и радиатор ложится ровно) на термо-скотч или сколхозить и положить просто не термо пасту.

 А так же, Orange Pi PС имеет нестандартный разъем питания, и выйти из этого положения очень просто, на плате имеется широкий 40-пиновый GPIO разъем куда и был подключен источник питания, на 4 пин +5в и на 6 пин -5в. Блок питания нужен стабилизированный именно на 5 вольт, ток потребления OrangePi PC мною был измерен и не превышал 0.87А (870мА) при полной нагрузке на сервер, а в режиме простоя сервер потребляет 0.34А (340мА).

GPIO Orange Pi PC

 И еще значимый один момент, как оказалось переходник HDMI to DVI в данной связке на монитор не работает! Требуется или HDMI to VGA или просто подключаться кабелем HDMI-HDMI.


Установка Raspbian на Orange Pi PC


 Ось была выбрана Raspbian, тут описана -> детальная установка Raspbian на Orange Pi PC.


Начальная настройка Raspbian на Orange Pi PC


 Поле установки оси Raspbian мы будем работать по SSH (логин root и пароль orangepi) вы можете работать с консоли в Raspbian.

 Первое что потребуется это настроить сеть на статический IP (по умолчанию используется настройки DHCP), а так же установить верную таймзону и сделать апгрейд системы для получения всех обновления существующих на данный момент.

 Для подключения через SSH нам нужно знать присвоенный нам DHCP сервером IP адрес, можно непосредственно из консоли Raspbian выполнить:

/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'

 или зайти на свой роутер и посмотреть присвоенный IP во вкладке "STATUS" ищем что то вроде "LAN COMPUTERS" (у разных роутеров по разному, в основном это вкладка сетевого статуса).


Установка статического IP на сервере


 Редактируем файл /etc/network/interfaces тут находятся настройки сетевого интерфейса.

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

 приводим его к такому виду:

auto lo

iface lo inet loopback
#iface eth0 inet dhcp

iface eth0 inet static 
address 192.168.0.120
netmask 255.255.255.0
gateway 192.168.0.1

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

 где закомментировали строку "iface eth0 inet dhcp" которая отвечает за автоматическое получение IP адреса, и прописав дополнительно несколько строк, строка "iface eth0 inet static" говорит о статическом IP интерфейса eth0, строка "address 192.168.0.120" нужный нам IP для сервера, строка "netmask 255.255.255.0" маска сети и строка "gateway 192.168.0.1" это IP адрес шлюза а именно IP нашего роутера.

 Далее потребуется перезагрузка Orange Pi PC командой из консоли/SSH:

reboot

 После перезагрузки конектимся через SSH уже на новый присвоенный нами IP 192.168.0.120


Установка таймзоны


 Выполняем из консоли/SSH:

sudo dpkg-reconfigure tzdata

 Выбираем стрелками вверх-вниз на клавиатуре "Europe" клавишей "Tab" выбираем "Ok" и жмем "Enter", далее находим в списке "Moscow" клавишей "Tab" выбираем "Ok" и жмем "Enter", в результате после настройки таймзоны получаем сообщение:

Current default time zone: 'Europe/Moscow'
Local time is now:      Wed Jun 15 16:51:22 MSK 2016.
Universal Time is now:  Wed Jun 15 13:51:22 UTC 2016.

 на этом настройка таймзоны успешно окончена.


Апгрейд и апдейт оси Raspbian


 Выполняем из консоли/SSH последовательно 2 команды:

sudo apt-get update
sudo apt-get upgrade

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


Установка Apache2, PHP, vsFTPD (FTP) и cURL


 Сразу стоит оговориться что мне нужны были только Apache2 с качестве HTTP-сервера, PHP для работы php скриптов, FTP для удаленной загрузки файлов на сервер и поддержка cURL.

 Если вам нужен полноценный WEB SERVER с базами данных и NGINX то доставить необходимые пакеты не составит труда, в сети полно готовых примеров, мне же нужны были только выше перечисленные пакеты для работы ботов-постеров в VK паблики по крону.


Установка Apache с поддержкой PHP


 Выполняем из консоли/SSH.

sudo apt-get install apache2 php5 libapache2-mod-php5

 чтобы включить Htaccess нужно изменить конфиг файл /etc/apache2/sites-enabled/000-default
меняем строку AllowOverride None на AllowOverride ALL и перезагружаем Apache

sudo service apache2 restart

Установка cURL


 Выполняем из консоли/SSH.

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl php5-mcrypt

Установка vsFTPD (FTP)


 Выполняем из консоли/SSH.

sudo apt-get install vsftpd

 далее потребуется запилить конфиг /etc/vsftpd.conf и присвоить обязательно права на каталог /var/www у меня это пользователь orangepi делается это так:

sudo chown -R orangepi /var/www

 настройки конфигов vsftpd.conf в сети описаны очень подробно пример моего конфига

 После настройки vsFTPD конектимся FTP клиентом на наш сервер по IP 192.168.0.120 с логином и паролем orangepi/orangepi, в моем конфиге прописана директория local_root=/var/www куда вы попадаете изначально, если нужно можно запереть пользователя в этой директории и закрыть доступ ко всем вышестоящим директориям, все это настраивается в vsftpd.conf

 *всегда после правки конфигов нужно перезагружать демоны, в данном случае vsftpd:

sudo service vsftpd restart

Постановка заданий на крон (cron-crontab)


 Устанавливать cron не требуется он уже есть, для просмотра текущих заданий пользователя нужно выполнить:

crontab -l

 *вероятно список заданий для данного пользователя будет пуст

 Добавить задание можно командой:

crontab -e

 вписав в самый низ нужное задание и время выполнения, например:

15 */2 * * * wget -O - -q -t 1 http://192.168.0.120/vk/vk_post.php

 задание, каждую 15 минуту каждого второго часа (не путать со вторым часом в сутках) и каждый день|месяц|неделю выполнять задание wget http://192.168.0.120/vk/vk_post.php


Послесловие


 Вот такое получилось небольшое краткое описание сборки примитивного WEB SERVERа на Orange Pi PС с осью Raspbian, ниже прилагаю скрины phpinfo (полный скрин phpinfo тут) и мониторинговой утилиты htop.

Веб сервер на Orange Pi PС
Веб сервер на Orange Pi PС