[Перевод] Raspberry Pi в роли сервера для хостинга сайтов

Raspberry Pi — это недорогой одноплатный компьютер, отличающийся крайней экономичностью в плане потребления электроэнергии. Он хорошо подходит на роль платформы, на базе которой создают устройства, которые постоянно должны быть включены. Среди множества способов применения Raspberry Pi можно выделить использование этого компьютера в качестве веб-сервера. И, на самом деле, хостить сайты на Raspberry Pi очень просто. Если посчитать стоимость услуг обычного хостинг-провайдера, то окажется, что они не так уж и дёшевы. Альтернативой таким услугам может стать собственный хостинг на Raspberry Pi, обслуживание которого не стоит практически ничего. Кроме того, платформа Raspberry Pi постоянно развивается, поэтому тому, кто решает ей пользоваться, можно не беспокоиться о том, что в будущем ему придётся работать с устаревшим аппаратным и программным обеспечением.

slw5irf0bq-z_rndqxkzqxofulk.jpeg

Сильные стороны Raspberry Pi-хостинга


У хостинга сайтов на Raspberry Pi есть немало преимуществ перед использованием для этой цели традиционных серверов. Вот некоторые из них:

  • Обычный хостинг дорог.
  • Raspberry Pi весьма экономичен в плане потребления энергии.
  • Raspberry Pi легко транспортировать.
  • Круглосуточная работа обычного сервера означает большие энергозатраты.


Кроме прочего, организовать хостинг на Raspberry Pi можно за считанные минуты. При этом подойдёт любая версия Raspberry Pi. В результате оказывается, что тот, у кого есть Raspberry Pi и хороший интернет, может без проблем хостить собственный сайт и ни о чём не беспокоиться.

Хостинг сайта на Raspberry Pi


В этом материале я приведу пошаговое руководство по организации хостинга сайтов на Raspberry Pi. Если вам нужен подобный хостинг — рекомендуется читать этот материал, ничего не пропуская, и тут же делать то, о чём идёт речь. А перед началом работы просмотрите статью — это позволит вам получить общее представление о том, что вы должны будете сделать, и о том, что вам для этого понадобится.

Аппаратные средства


Для организации хостинга на Raspberry Pi вам понадобится следующее:

  1. Raspberry Pi. Полагаю, не стоит и говорить о том, что перед началом этого проекта вам понадобится Raspberry Pi. Но, всё же, скажу. При этом постарайтесь обзавестись самой современной версией Raspberry Pi — она обеспечит более высокую производительность.
  2. Маршрутизатор или модем. Они нужны для подключения Raspberry Pi к интернету. Порой интернет-провайдеры дают пользователям устройство, позволяющее подключить к интернету ограниченное количество пользовательских устройств. В такой ситуации, чтобы упростить подключение к интернету множества устройств, пригодится маршрутизатор.
  3. Ethernet-кабель. Лучше всего подключать Raspberry Pi к интернету именно с помощью кабеля. Так можно добиться более высокого качества соединения. Но можно использовать и Wi-Fi-адаптер — встроенный или внешний.


Шаг 1: настройка операционной системы на Raspberry Pi


Подключите microSD-карту к компьютеру и отформатируйте её. Загрузите NOOBS (New Out Of Box Software). Это — установщик операционных систем, рассчитанный на новичков. После завершения загрузки архива распакуйте его и скопируйте файлы на только что отформатированную microSD-карту.

Вставьте карту в Raspberry Pi, подключите к плате блок питания, клавиатуру, монитор и мышь. Raspberry Pi начнёт загружаться, вы увидите экран выбора операционной системы, которую нужно установить. Если на этом этапе что-то пошло не так — вероятнее всего блок питания или HDMI-кабель подключены недостаточно надёжно. Поэтому проверьте подключение кабелей к Raspberry Pi.

Если у вас нет опыта работы с Raspberry Pi, то на экране выбора операционной системы я рекомендую выбрать Raspbian. Ещё один хороший вариант — Adafruit. Установка операционной системы займёт некоторое время. Проследите за тем, чтобы всё это время Raspberry Pi не выключался бы.

3fa25aa8164753da5ad87e2ef046db71.jpg


Экран выбора операционной системы

После того, как вы увидите сообщение Image applied successfully, вы можете щёлкнуть по кнопке Return и Raspberry Pi перезагрузится. После завершения перезагрузки вы увидите графический интерфейс установленной ОС.

Шаг 2: взаимодействие с Raspberry Pi-сервером по SSH


На этом шаге мы настроим подключение к Raspberry Pi-серверу по SSH. Протокол SSH позволяет организовать безопасное соединение между компьютером и Raspberry Pi, используемое для передачи данных. С помощью такого соединения, кроме того, можно, пользуясь инструментами командной строки, управлять Raspberry Pi.

Теперь, когда в вашем распоряжении имеется ОС Raspbian, установленная с использованием свежей версии NOOBS, то у вас, вероятно, установлено и всё необходимое для работы с SSH. Для того чтобы организовать соединение компьютера и Raspberry Pi вам понадобится узнать IP-адрес платы. Для этого воспользуйтесь следующей командой:

sudo ifconfig


То, что вам нужно, можно найти в верхней части экрана. Если вы подключили Raspberry Pi к интернету с использованием Ethernet-кабеля, в начале блока, содержащего нужный вам адрес, будет eth0. Если вы пользуетесь Wi-Fi, то там будет wlan0. В обоих случаях то, что нам нужно, идёт после inet addr:. Именно этот адрес и можно использовать для подключения к Raspberry Pi с компьютера.

da5db472e76f30db2132ab50910d84c6.jpg


Выяснение IP-адреса Raspberry Pi

Если ваш компьютер работает под управлением Windows, вам понадобится SSH-клиент. Например — PuTTY. Для настройки подключения понадобится указать в поле Host Name IP-адрес, оставив в поле Port 22. Если нажать на Enter, PuTTY откроет окно терминала, в котором у вас попросят имя пользователя (по умолчанию — pi) и пароль (по умолчанию — raspberry) для подключения к Raspberry Pi. Введите их — и вы готовы к удалённой работе с вашим новым сервером.

fc9397e7bcebf1ba03f657bc5e7d8637.jpg


Окно настройки SSH-подключения

Если вы пользуетесь Mac или каким-нибудь дистрибутивом Linux, то всё необходимое для организации SSH-подключения у вас уже, наверняка есть. Вам, для подключения к Raspberry Pi, достаточно выполнить в терминале следующую команду:

ssh pi@IP ADDRESS


Если IP-адрес платы выглядит как 192.167.2.2, вам нужно будет модифицировать эту команду так:

ssh pi@192.167.2.2


Потом вам зададут вопрос о пароле. Стандартный пароль (raspberry) можно сменить на что-то более надёжное.

Шаг 3: обновление ПО Raspberry Pi


После того, как вы подключились к Raspberry Pi с компьютера по SSH, нужно, перед установкой Apache, привести систему в актуальное состояние. Для того чтобы это сделать, можно воспользоваться следующими командами:

sudo apt-get update
sudo apt-get upgrade


Система обновится, вы будете готовы к установке Apache.

Шаг 4: установка Apache


Если вы пытаетесь превратить Raspberry Pi в нечто такое, что способно хостить сайты, то вам понадобится специальное ПО. Например — Apache. Это — опенсорсный и совершенно бесплатный HTTP-сервер, который и позволит сделать из Raspberry Pi веб-сервер.

После загрузки установочных файлов Apache достаточно всего лишь одной команды для его установки:

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


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

423bd1fc65e5c00783ea41811202b5c4.jpg


Успешная установка Apache

После того, как установка завершится, нужно, для активации программы, перезапустить её с помощью следующей команды:

sudo service apache2 restart


Затем, чтобы убедиться в том, что Apache работает нормально, можно воспользоваться такой командой:

sudo service apache2 status


cfad6677662646d4b44e462a8df0da8b.jpg


Проверка правильности работы Apache

Если в выводе вышеприведённой команды имеется зелёный текст active (running), это значит, что всё работает как надо. Если сервер по какой-то причине будет выключен, запустить его снова можно так:

sudo service apache2 start


После этого вы сможете обращаться к Raspberry Pi с компьютера. Например, можете открыть браузер и перейти в нём по такому адресу (содержащему ранее выясненный IP-адрес платы, который использовался для подключения к ней по SSH):

http:// 192.167.2.2


В браузере будет выведена страница, сообщающая об успешной установке Apache.

Шаг 5: создание простого веб-сайта


После того, как на Raspberry Pi завершится установка Apache, сервер будет выдавать при обращении к нему простейшую стандартную HTML-страницу, сообщающую о том, что сервер работает.

71fc04529479198271d5d8e018214fe8.jpg


Простая страница

Если вы хотите поменять эту страницу на что-то своё — перейдите в папку /var/www/ и внесите в index.html свой код. Сделать это в терминале можно так:

cd /var/www/
sudo nano index.html


Проверить то, что получилось можно, как и прежде, обратившись к серверу из браузера.

Шаг 6: настройка FTP


У вас, вероятнее всего, уже есть сайт, который вы хотите хостить на Raspberry Pi. Его нужно лишь перенести на сервер. Для этого удобно пользоваться FTP. Установим vsftpd (Very Secure FTP Daemon):

sudo chown -R pi /var/www
sudo apt install vsftpd


После установки vsftpd нужно выполнить некоторые настройки.

Откроем файл настроек vsftpd:

sudo nano /etc/vsftpd.conf


Для начала надо изменить значение настройки anonymous_enable с YES на NO. Потом надо раскомментировать следующие строки:

#local_enable=YES
#write_enable=YES


В конец файла надо добавить следующее:

force_dot_files=YES


Благодаря этому можно будет видеть файлы, имена которых начинаются с точки, вроде .htaccess.

dc81b20f22ccf7ff04e6ed8b2330174a.jpg


Настройка vsftpd

После завершения редактирования файла vsftpd.conf надо нажать CTRL+X для сохранения файла и выхода из терминала. Подтвердить выполнение операции можно, введя Y и нажав на Enter. В итоге нужно перезапустить vsftpd:

sudo service vsftpd restart


Теперь можно будет подключаться к Raspberry Pi и выгружать на сервер, в директорию /var/www/html, материалы сайта.

Шаг 7: получение доменного имени


Теперь вы можете загружать на сервер материалы своего сайта и заходить на сайт из локальной сети. Но вот никому другому ваш сайт пока не доступен. Для того чтобы к сайту могли обращаться пользователи интернета, нужно сделать ещё кое-что. Далее речь пойдёт об одном из самых важных этапов настройки Raspberry Pi-сервера.

Для того чтобы пользователи интернета могли бы заходить на ваш сайт, у сервера должен быть внешний IP-адрес. Но предлагать всем обращаться к сайту по IP-адресу — это не совсем профессионально. Люди предпочитают заходить на сайты, используя их адреса, записанные не цифрами, а буквами, понятными словами. Есть множество сервисов, которые позволяют бесплатно настроить соответствие IP-адреса и доменного имени. Обычно работать с ними очень просто.

Если у вас нет статического IP-адреса, и ваш интернет-провайдер постоянно меняет ваш IP-адрес, можно воспользоваться сервисом No-IP, который будет автоматически обновлять связь между доменным именем и вашим текущим IP-адресом. Для того чтобы воспользоваться этим сервисом, нужно создать на нём бесплатную учётную запись и зарегистрировать доменное имя, вроде rspi.no-ip.org. После этого нужно установить некоторые программы на Raspberry Pi:

cd /usr/local/src/
sudo wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
sudo rm noip-duc-linux.tar.gz
cd noip-2.1.9-1/
sudo make install


После этого у вас спросят имя пользователя и пароль, затем начнётся установка. Далее, нужно сделать так, чтобы No-IP-клиент запускался бы автоматически при включении Raspberry Pi. Для этого надо отредактировать файл rc.local:

cd /etc/
sudo nano rc.local


В него надо добавить такую строку:

sudo noip2


Сохраните и закройте файл. После этого перезагрузите Raspberry Pi командой sudo reboot.

Шаг 8: посещение веб-сайта


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

sudo noip2 -S


3e29c6c6d3596b7e1997de82ccc20817.jpg


Проверка noip2

Если вам удастся узнать валидный PID, это значит, что всё работает нормально.

Шаг 9: улучшение производительности и безопасности


Организация хостинга на базе Raspberry Pi — это довольно просто, но Raspberry Pi — это не лучший сервер в плане производительности. Если вам не хватает производительности вашего сервера — вы можете попробовать её улучшить.

Один из способов улучшения производительности Raspberry Pi-сервера — использование для размещения материалов сайта USB-диска вместо SD-карты. При таком подходе сократится время, необходимое на доступ к данным.

В целом же можно отметить, что на Raspberry Pi-сервере лучше всего хостить простые статические сайты.

Если говорить о безопасности, то рекомендуется поменять стандартный пароль на что-то более надёжное. Для смены пароля можно воспользоваться командой passwd. Это повысит безопасность системы.

Организация LAMP-хостинга


Если вы полагаете, что статический HTML-сайт — это для вас слишком просто, и что вам нужно что-то более продвинутое, то вам, возможно, подойдёт LAMP-сервер. Такой сервер поддерживает PHP и MySQL, что позволяет обеспечить работу интерактивных веб-сайтов. Если вы хотите использовать эту систему — сначала установите сервер Apache, а затем — MySQL. Для установки MySQL и соответствующих PHP-компонентов выполните следующую команду:

sudo apt install mysql-server php-mysql -y


После этого перезапустите Apache:

sudo service apache2 restart


Далее, нужно установить PHP:

sudo apt install php -y


3f077d26998c25750105c0f5d16c190c.jpg


LAMP-сервер

После завершения установки нужно снова перезапустить Apache, используя вышеупомянутую команду. Теперь LAMP-сервер готов к работе и в вашем распоряжении имеются PHP и MySQL, позволяющие создавать продвинутые веб-проекты.

Итоги


Мы разобрали несколько вариантов хостинга сайтов на Raspberry Pi. Как видите, такой хостинг не так уж и сложно настроить. Но тут нужно учитывать то, что возможности Raspberry Pi, в сравнении с обычным хостингом, ограничены. Правда, если вам нужно хостить простой статический сайт, то такой хостинг вам вполне подойдёт. Вам, кроме того, нужно будет принять во внимание вопросы производительности и безопасности.

Я искренне надеюсь на то, что вы добьётесь успеха в настройке и использовании Raspberry Pi в роли HTTP-сервера.

Как вы организовали бы хостинг, основанный на Raspberry Pi?

oug5kh6sjydt9llengsiebnp40w.png

3piw1j3wd_cgmzq9sefgferaumu.png

© Habrahabr.ru