Установка статического IP на сервере
Редактируем файл изменяем имя сервера
sudo nano /etc/hostname
Редактируем файл
sudo nano /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
auto lo eth0
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 нашего роутера.
WiFi. Настраивается он аналогично Ethernet, но набор параметров несколько отличается. В файле interfaces задаем такие настройки:
auto wlan0
iface wlan0 inet dhcp
wpa-ssid
wpa-psk <Пароль WiFi>
После внесения настроек сохраняем файл нажатием клавиш Ctrl+O и подтверждаем клавишей Enter имя файла. Для закрытия файла нажимаем клавиши Ctrl+X.
Перегружаем сервер
sudo reboot
После перезагрузки конектимся через SSH уже на новый присвоенный нами IP 192.168.0.120
После внесения настроек сохраняем файл нажатием клавиш Ctrl+O и подтверждаем клавишей Enter имя файла. Для закрытия файла нажимаем клавиши Ctrl+X.
Чтобы новые настройки вступили в силу, необходимо перезапустить сетевой сервис. Делается это командой sudo service networking restart.
sudo service networking restart
После загрузки системы проверяем, что настройки вступили в силу командой ifconfig.
wlan0: flags=4163 mtu 1500
inet 192.168.0.120 netmask 255.255.255.0 broadcast 192.168.123.255
ether 12:42:56:67:9b:9a txqueuelen 1000 (Ethernet)
RX packets 508 bytes 151125 (151.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15 bytes 2586 (2.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
У меня установился автоматически IP-адрес 192.168.0.120
Если в выводе команды ifconfig вы не увидели IP-адреса, то нужно попробовать выполнить эти команды, которые перезапустят интерфейс wlan0:
sudo ifdown wlan0
sudo ifup wlan0
WiFi можно настроить с помощью графической утилиты NetworkManager TUI. Для этого необходимо ввести команду sudo nmtui
sudo nmtui
Виртуальный хост
создаем в домашнем каталоге два подкаталога:
mkdir ~/public
mkdir ~/public/www
виртуальный хост – это такая настройка для сервера, позволяющая по одному и тому же IP-адресу обратиться к разным сайтам на сервере.
Т.е. вы можете содержимое одного сайта хранить в каталоге /var/www/html, а содержимое другого – в /home/andrey/public/www и оба они будут доступны по одному и тому же IP-адресу.
Но, чтобы сервер мог понять к какому сайту идет обращение, есть такой параметр как имя хоста (в настройках Apache – это ServerName).
Когда пользователь вводит в браузере адрес сайта, то браузер посылает HTTP-запрос на DNS-сервер (сервер доменных имен) и в заголовках HTTP-запроса хранится имя хоста.
DNS-сервер в свою очередь перенаправляет запрос браузера на IP-адрес сервера, где хранится сайт.
А уже сервер по имени хоста понимает из какой директории пользователь хочет получить содержимое.
На локальной машине сайты будут доступны по адресу http://localhost/ или http://127.0.0.1/. Т.е.
если бы Orange Pi Zero мы могли бы подключить к монитору, а также подключили клавиатуру,
то мы могли бы запустить браузер и введя адрес http://localhost/ получили бы точно такое же содержимое как в том случае, когда мы на другом компьютере в сети вводили IP-адрес http://192.168.74.125/
Кстати, проверить это можно и без монитора прямо в консоли. Для этого существует консольный браузер Lynx.
Он также хранится в репозитории дистрибутива и устанавливается аналогично другим приложениям:
sudo apt-get install lynx
Теперь если набрать в командной строке команду
lynx http://localhost/
то можно увидеть содержимое страницы, правда только в виде текста.
Выход из браузера выполняется клавишей q.
На другой машине в сети получить доступ к сайту по имени хоста мы не сможем, потому как нет DNS-сервера, который бы направил запрос браузера на IP-адрес устройства.
Поэтому, даже если мы зададим в настройках виртуального хоста его имя, то доступ к сайту по имени мы можем получить только на локальной машине (через браузер lynx в нашем случае). Но тут тоже есть одна тонкость:
имя хоста необходимо будет прописать в файле /etc/hosts и назначить ему IP-адрес 127.0.0.1. Это такая своего рода имитация DNS-сервера на локальной машине. Об этом подробнее напишу дальше.
Файлы настроек виртуальных хостов хранятся в каталоге /etc/apache2/sites-available/
Изначально в данном каталоге хранится две настройки 000-default.conf и default-ssl.conf. Именно настройка 000-default.conf указывает на стартовую страницу в /var/www/html и позволила увидеть нам ее после установки Apache.
Мо создадим новый виртуальный хост на основе 000-default.conf просто сделав его копию:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mysite.conf
Открываем только что созданный файл настроек:
sudo nano /etc/apache2/sites-available/mysite.conf
Здесь мы видим, что заданы e-mail адрес администратора сайта и корневой каталог, где хранятся файлы сайта.
Задаем имя виртуального хоста orangepi.home, меняем путь к корневому каталогу:
ServerName orangepi.home
ServerAdmin webmaster@localhost
DocumentRoot /home/andrey/public/www
Также необходимо добавить такие строки, чтобы открыть доступ к
созданной корневой директории:
Дальше сохраняем настройки и включаем виртуальный хост командой:
sudo a2ensite mysite
Хост под именем 000-default выключаем командой:
sudo a2dissite 000-default
После всех выполненных операций необходимо перезапустить веб-сервер одной из команд:
systemctl reload apache2
sudo /etc/init.d/apache2 reload
В результате выполнения команды перезапуска можно увидеть в терминале такое предупреждение:
Warning: The unit file, source configuration file or drop-ins of apache2.service changed on disk. Run 'systemctl daemon-reload' to reload units.
В этом случае необходимо выполнить команду:
systemctl daemon-reload
После перезапуска сервера необходимо убедиться, что созданный виртуальный хост работает. Сделать это можно командой:
ls /etc/apache2/sites-enabled/
В директории sites-enabled должен быть только файл mysite.conf. Если это не так, где-то была допущена ошибка.
Теперь открыв браузер и введя в адресную строку IP-адрес устройства можно вместо стандартной страницы Apache2 увидеть такое содержимое:
Так как веб-сервер не нашел в корневом каталоге файла index.html, index.htm, то он просто выдал содержимое директории, которая в данный момент пуста.
Настало время создать первую веб-страницу index.html. Создаем новый текстовый файл командой:
sudo nano ~/public/www/index.html
В файл записываем такие строки и сохраняем его:
Как видим, созданная страница отображается, но не совсем корректно: вместо русских букв непонятные символы. Здесь проблема кроется в неправильно выбранной браузером кодировке. Кодировку страницы можно задавать непосредственно в ее коде. Но мы зададим для сервера кодировку по умолчанию UTF8:
sudo nano /etc/apache2/conf-available/charset.conf
В файле charset.conf убираем комментарий со строчки (символ #) AddDefaultCharset UTF-8 и сохраняем его. Дальше необходимо известным ранее способом перезапустить сервер:
sudo /etc/init.d/apache2 reload
Теперь если обновить страницу в браузере, то можно убедиться, что кириллические символы отображаются правильно.
Войти на сайт не удастся по адресу http://orangepi.home/ потому как данное имя еще необходимо внести в файл /etc/hosts, чтобы сайт был доступен по адресу 127.0.0.1
sudo nano /etc/hosts
127.0.0.1 localhost orangepizero
127.0.0.1 orangepi.home
::1 localhost orangepizero ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Теперь команда
lynx http://orangepi.home/
даст такой же результат, что и lynx http://localhost/
Как вы заметили, создавать текстовые файлы в командной строке крайне неудобно. Поэтому в качестве бонуса к сегодняшней теме расскажу как можно закачать файл по SFTP-протоколу.
Все что нам понадобится – это программа Total Commaner и плагин для нее SFTP plugin, который можно скачать, например, здесь http://wincmd.ru/plugring/sftp4tc.html
Открываем скачанный архив через Total Commander и программа автоматически предложит установить плагин:
Мы получили доступ к файловой системе Armbian. Дальше можно выполнять все такие же операции с файлами, как и с обычными разделами (дисками) на персональном компьютере.
Когда установка будет окончена, переходим на вкладку Сеть /FS-плагины и открываем Secure FTP Connections:
При необходимости можно настроить новое соединение нажав на .
Запускаем созданное ранее нами соединение Orange Ethernet и вводим имя пользователя и пароль те, которыми мы пользуемся при входе в командную строку.
Установка таймзоны
Выполняем из терминала
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.
на этом настройка таймзоны успешно окончена.
Установка vsFTPD (FTP)
Выполняем из терминала.
sudo apt-get install vsftpd
далее потребуется запилить (сильно сказано - запилить) конфиг
sudo /etc/vsftpd.conf
и присвоить обязательно права на каталог /var/www
у меня это пользователь orangepi делается это так:
sudo chown -R orangepi /var/www
настройки конфигов vsftpd.conf
sudo nano /etc/hosts
в сети описаны очень подробно пример моего конфига
После настройки 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