Raspberry Pi — это недорогой одноплатный компьютер, отличающийся крайней экономичностью в плане потребления электроэнергии. Он хорошо подходит на роль платформы, на базе которой создают устройства, которые постоянно должны быть включены. Среди множества способов применения Raspberry Pi можно выделить использование этого компьютера в качестве веб-сервера. И, на самом деле, хостить сайты на Raspberry Pi очень просто. Если посчитать стоимость услуг обычного хостинг-провайдера, то окажется, что они не так уж и дёшевы. Альтернативой таким услугам может стать собственный хостинг на Raspberry Pi, обслуживание которого не стоит практически ничего. Кроме того, платформа Raspberry Pi постоянно развивается, поэтому тому, кто решает ей пользоваться, можно не беспокоиться о том, что в будущем ему придётся работать с устаревшим аппаратным и программным обеспечением.
![](https://habrastorage.org/webt/sl/w5/ir/slw5irf0bq-z_rndqxkzqxofulk.jpeg)
У хостинга сайтов на Raspberry Pi есть немало преимуществ перед использованием для этой цели традиционных серверов. Вот некоторые из них:
Кроме прочего, организовать хостинг на Raspberry Pi можно за считанные минуты. При этом подойдёт любая версия Raspberry Pi. В результате оказывается, что тот, у кого есть Raspberry Pi и хороший интернет, может без проблем хостить собственный сайт и ни о чём не беспокоиться.
В этом материале я приведу пошаговое руководство по организации хостинга сайтов на Raspberry Pi. Если вам нужен подобный хостинг — рекомендуется читать этот материал, ничего не пропуская, и тут же делать то, о чём идёт речь. А перед началом работы просмотрите статью — это позволит вам получить общее представление о том, что вы должны будете сделать, и о том, что вам для этого понадобится.
Для организации хостинга на Raspberry Pi вам понадобится следующее:
Подключите microSD-карту к компьютеру и отформатируйте её. Загрузите NOOBS (New Out Of Box Software). Это — установщик операционных систем, рассчитанный на новичков. После завершения загрузки архива распакуйте его и скопируйте файлы на только что отформатированную microSD-карту.
Вставьте карту в Raspberry Pi, подключите к плате блок питания, клавиатуру, монитор и мышь. Raspberry Pi начнёт загружаться, вы увидите экран выбора операционной системы, которую нужно установить. Если на этом этапе что-то пошло не так — вероятнее всего блок питания или HDMI-кабель подключены недостаточно надёжно. Поэтому проверьте подключение кабелей к Raspberry Pi.
Если у вас нет опыта работы с Raspberry Pi, то на экране выбора операционной системы я рекомендую выбрать Raspbian. Ещё один хороший вариант — Adafruit. Установка операционной системы займёт некоторое время. Проследите за тем, чтобы всё это время Raspberry Pi не выключался бы.
![](https://habrastorage.org/getpro/habr/post_images/3fa/25a/a81/3fa25aa8164753da5ad87e2ef046db71.jpg)
Экран выбора операционной системы
После того, как вы увидите сообщение
На этом шаге мы настроим подключение к Raspberry Pi-серверу по SSH. Протокол SSH позволяет организовать безопасное соединение между компьютером и Raspberry Pi, используемое для передачи данных. С помощью такого соединения, кроме того, можно, пользуясь инструментами командной строки, управлять Raspberry Pi.
Теперь, когда в вашем распоряжении имеется ОС Raspbian, установленная с использованием свежей версии NOOBS, то у вас, вероятно, установлено и всё необходимое для работы с SSH. Для того чтобы организовать соединение компьютера и Raspberry Pi вам понадобится узнать IP-адрес платы. Для этого воспользуйтесь следующей командой:
То, что вам нужно, можно найти в верхней части экрана. Если вы подключили Raspberry Pi к интернету с использованием Ethernet-кабеля, в начале блока, содержащего нужный вам адрес, будет
![](https://habrastorage.org/getpro/habr/post_images/da5/db4/72e/da5db472e76f30db2132ab50910d84c6.jpg)
Выяснение IP-адреса Raspberry Pi
Если ваш компьютер работает под управлением Windows, вам понадобится SSH-клиент. Например — PuTTY. Для настройки подключения понадобится указать в поле
![](https://habrastorage.org/getpro/habr/post_images/fc9/397/e7b/fc9397e7bcebf1ba03f657bc5e7d8637.jpg)
Окно настройки SSH-подключения
Если вы пользуетесь Mac или каким-нибудь дистрибутивом Linux, то всё необходимое для организации SSH-подключения у вас уже, наверняка есть. Вам, для подключения к Raspberry Pi, достаточно выполнить в терминале следующую команду:
Если IP-адрес платы выглядит как
Потом вам зададут вопрос о пароле. Стандартный пароль (
После того, как вы подключились к Raspberry Pi с компьютера по SSH, нужно, перед установкой Apache, привести систему в актуальное состояние. Для того чтобы это сделать, можно воспользоваться следующими командами:
Система обновится, вы будете готовы к установке Apache.
Если вы пытаетесь превратить Raspberry Pi в нечто такое, что способно хостить сайты, то вам понадобится специальное ПО. Например — Apache. Это — опенсорсный и совершенно бесплатный HTTP-сервер, который и позволит сделать из Raspberry Pi веб-сервер.
После загрузки установочных файлов Apache достаточно всего лишь одной команды для его установки:
Эта команда, правда, устанавливает не только Apache. Она отвечает за установку некоторых других пакетов, вроде PHP и PHP-библиотеки для Apache. Возможности PHP могут нам понадобиться, например, для организации подключения сайта к базе данных.
![](https://habrastorage.org/getpro/habr/post_images/423/bd1/fc6/423bd1fc65e5c00783ea41811202b5c4.jpg)
Успешная установка Apache
После того, как установка завершится, нужно, для активации программы, перезапустить её с помощью следующей команды:
Затем, чтобы убедиться в том, что Apache работает нормально, можно воспользоваться такой командой:
![](https://habrastorage.org/getpro/habr/post_images/cfa/d66/776/cfad6677662646d4b44e462a8df0da8b.jpg)
Проверка правильности работы Apache
Если в выводе вышеприведённой команды имеется зелёный текст
После этого вы сможете обращаться к Raspberry Pi с компьютера. Например, можете открыть браузер и перейти в нём по такому адресу (содержащему ранее выясненный IP-адрес платы, который использовался для подключения к ней по SSH):
В браузере будет выведена страница, сообщающая об успешной установке Apache.
После того, как на Raspberry Pi завершится установка Apache, сервер будет выдавать при обращении к нему простейшую стандартную HTML-страницу, сообщающую о том, что сервер работает.
![](https://habrastorage.org/getpro/habr/post_images/71f/c04/529/71fc04529479198271d5d8e018214fe8.jpg)
Простая страница
Если вы хотите поменять эту страницу на что-то своё — перейдите в папку
Проверить то, что получилось можно, как и прежде, обратившись к серверу из браузера.
У вас, вероятнее всего, уже есть сайт, который вы хотите хостить на Raspberry Pi. Его нужно лишь перенести на сервер. Для этого удобно пользоваться FTP. Установим
После установки
Откроем файл настроек
Для начала надо изменить значение настройки
В конец файла надо добавить следующее:
Благодаря этому можно будет видеть файлы, имена которых начинаются с точки, вроде
![](https://habrastorage.org/getpro/habr/post_images/dc8/1b2/0f2/dc81b20f22ccf7ff04e6ed8b2330174a.jpg)
Настройка vsftpd
После завершения редактирования файла
Теперь можно будет подключаться к Raspberry Pi и выгружать на сервер, в директорию
Теперь вы можете загружать на сервер материалы своего сайта и заходить на сайт из локальной сети. Но вот никому другому ваш сайт пока не доступен. Для того чтобы к сайту могли обращаться пользователи интернета, нужно сделать ещё кое-что. Далее речь пойдёт об одном из самых важных этапов настройки Raspberry Pi-сервера.
Для того чтобы пользователи интернета могли бы заходить на ваш сайт, у сервера должен быть внешний IP-адрес. Но предлагать всем обращаться к сайту по IP-адресу — это не совсем профессионально. Люди предпочитают заходить на сайты, используя их адреса, записанные не цифрами, а буквами, понятными словами. Есть множество сервисов, которые позволяют бесплатно настроить соответствие IP-адреса и доменного имени. Обычно работать с ними очень просто.
Если у вас нет статического IP-адреса, и ваш интернет-провайдер постоянно меняет ваш IP-адрес, можно воспользоваться сервисом No-IP, который будет автоматически обновлять связь между доменным именем и вашим текущим IP-адресом. Для того чтобы воспользоваться этим сервисом, нужно создать на нём бесплатную учётную запись и зарегистрировать доменное имя, вроде
После этого у вас спросят имя пользователя и пароль, затем начнётся установка. Далее, нужно сделать так, чтобы No-IP-клиент запускался бы автоматически при включении Raspberry Pi. Для этого надо отредактировать файл
В него надо добавить такую строку:
Сохраните и закройте файл. После этого перезагрузите Raspberry Pi командой
После того, как настроена связь IP-адреса и доменного имени сайта, войти на него можно, введя в адресной строке браузера его доменное имя. При использовании сервиса No-IP работу системы можно проверить такой командой:
![](https://habrastorage.org/getpro/habr/post_images/3e2/9c6/c6d/3e29c6c6d3596b7e1997de82ccc20817.jpg)
Проверка noip2
Если вам удастся узнать валидный PID, это значит, что всё работает нормально.
Организация хостинга на базе Raspberry Pi — это довольно просто, но Raspberry Pi — это не лучший сервер в плане производительности. Если вам не хватает производительности вашего сервера — вы можете попробовать её улучшить.
Один из способов улучшения производительности Raspberry Pi-сервера — использование для размещения материалов сайта USB-диска вместо SD-карты. При таком подходе сократится время, необходимое на доступ к данным.
В целом же можно отметить, что на Raspberry Pi-сервере лучше всего хостить простые статические сайты.
Если говорить о безопасности, то рекомендуется поменять стандартный пароль на что-то более надёжное. Для смены пароля можно воспользоваться командой
Если вы полагаете, что статический HTML-сайт — это для вас слишком просто, и что вам нужно что-то более продвинутое, то вам, возможно, подойдёт LAMP-сервер. Такой сервер поддерживает PHP и MySQL, что позволяет обеспечить работу интерактивных веб-сайтов. Если вы хотите использовать эту систему — сначала установите сервер Apache, а затем — MySQL. Для установки MySQL и соответствующих PHP-компонентов выполните следующую команду:
После этого перезапустите Apache:
Далее, нужно установить PHP:
![](https://habrastorage.org/getpro/habr/post_images/3f0/77d/269/3f077d26998c25750105c0f5d16c190c.jpg)
LAMP-сервер
После завершения установки нужно снова перезапустить Apache, используя вышеупомянутую команду. Теперь LAMP-сервер готов к работе и в вашем распоряжении имеются PHP и MySQL, позволяющие создавать продвинутые веб-проекты.
Мы разобрали несколько вариантов хостинга сайтов на Raspberry Pi. Как видите, такой хостинг не так уж и сложно настроить. Но тут нужно учитывать то, что возможности Raspberry Pi, в сравнении с обычным хостингом, ограничены. Правда, если вам нужно хостить простой статический сайт, то такой хостинг вам вполне подойдёт. Вам, кроме того, нужно будет принять во внимание вопросы производительности и безопасности.
Я искренне надеюсь на то, что вы добьётесь успеха в настройке и использовании Raspberry Pi в роли HTTP-сервера.
Как вы организовали бы хостинг, основанный на Raspberry Pi?
![](https://habrastorage.org/webt/ou/g5/kh/oug5kh6sjydt9llengsiebnp40w.png)
![](https://habrastorage.org/webt/3p/iw/1j/3piw1j3wd_cgmzq9sefgferaumu.png)
![](https://habrastorage.org/webt/sl/w5/ir/slw5irf0bq-z_rndqxkzqxofulk.jpeg)
Сильные стороны Raspberry Pi-хостинга
У хостинга сайтов на Raspberry Pi есть немало преимуществ перед использованием для этой цели традиционных серверов. Вот некоторые из них:
- Обычный хостинг дорог.
- Raspberry Pi весьма экономичен в плане потребления энергии.
- Raspberry Pi легко транспортировать.
- Круглосуточная работа обычного сервера означает большие энергозатраты.
Кроме прочего, организовать хостинг на Raspberry Pi можно за считанные минуты. При этом подойдёт любая версия Raspberry Pi. В результате оказывается, что тот, у кого есть Raspberry Pi и хороший интернет, может без проблем хостить собственный сайт и ни о чём не беспокоиться.
Хостинг сайта на Raspberry Pi
В этом материале я приведу пошаговое руководство по организации хостинга сайтов на Raspberry Pi. Если вам нужен подобный хостинг — рекомендуется читать этот материал, ничего не пропуская, и тут же делать то, о чём идёт речь. А перед началом работы просмотрите статью — это позволит вам получить общее представление о том, что вы должны будете сделать, и о том, что вам для этого понадобится.
Аппаратные средства
Для организации хостинга на Raspberry Pi вам понадобится следующее:
- Raspberry Pi. Полагаю, не стоит и говорить о том, что перед началом этого проекта вам понадобится Raspberry Pi. Но, всё же, скажу. При этом постарайтесь обзавестись самой современной версией Raspberry Pi — она обеспечит более высокую производительность.
- Маршрутизатор или модем. Они нужны для подключения Raspberry Pi к интернету. Порой интернет-провайдеры дают пользователям устройство, позволяющее подключить к интернету ограниченное количество пользовательских устройств. В такой ситуации, чтобы упростить подключение к интернету множества устройств, пригодится маршрутизатор.
- 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 не выключался бы.
![](https://habrastorage.org/getpro/habr/post_images/3fa/25a/a81/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 с компьютера.![](https://habrastorage.org/getpro/habr/post_images/da5/db4/72e/da5db472e76f30db2132ab50910d84c6.jpg)
Выяснение IP-адреса Raspberry Pi
Если ваш компьютер работает под управлением Windows, вам понадобится SSH-клиент. Например — PuTTY. Для настройки подключения понадобится указать в поле
Host Name
IP-адрес, оставив в поле Port
22. Если нажать на Enter
, PuTTY откроет окно терминала, в котором у вас попросят имя пользователя (по умолчанию — pi
) и пароль (по умолчанию — raspberry
) для подключения к Raspberry Pi. Введите их — и вы готовы к удалённой работе с вашим новым сервером.![](https://habrastorage.org/getpro/habr/post_images/fc9/397/e7b/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 могут нам понадобиться, например, для организации подключения сайта к базе данных.
![](https://habrastorage.org/getpro/habr/post_images/423/bd1/fc6/423bd1fc65e5c00783ea41811202b5c4.jpg)
Успешная установка Apache
После того, как установка завершится, нужно, для активации программы, перезапустить её с помощью следующей команды:
sudo service apache2 restart
Затем, чтобы убедиться в том, что Apache работает нормально, можно воспользоваться такой командой:
sudo service apache2 status
![](https://habrastorage.org/getpro/habr/post_images/cfa/d66/776/cfad6677662646d4b44e462a8df0da8b.jpg)
Проверка правильности работы Apache
Если в выводе вышеприведённой команды имеется зелёный текст
active (running)
, это значит, что всё работает как надо. Если сервер по какой-то причине будет выключен, запустить его снова можно так:sudo service apache2 start
После этого вы сможете обращаться к Raspberry Pi с компьютера. Например, можете открыть браузер и перейти в нём по такому адресу (содержащему ранее выясненный IP-адрес платы, который использовался для подключения к ней по SSH):
http:// 192.167.2.2
В браузере будет выведена страница, сообщающая об успешной установке Apache.
Шаг 5: создание простого веб-сайта
После того, как на Raspberry Pi завершится установка Apache, сервер будет выдавать при обращении к нему простейшую стандартную HTML-страницу, сообщающую о том, что сервер работает.
![](https://habrastorage.org/getpro/habr/post_images/71f/c04/529/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
.![](https://habrastorage.org/getpro/habr/post_images/dc8/1b2/0f2/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
![](https://habrastorage.org/getpro/habr/post_images/3e2/9c6/c6d/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
![](https://habrastorage.org/getpro/habr/post_images/3f0/77d/269/3f077d26998c25750105c0f5d16c190c.jpg)
LAMP-сервер
После завершения установки нужно снова перезапустить Apache, используя вышеупомянутую команду. Теперь LAMP-сервер готов к работе и в вашем распоряжении имеются PHP и MySQL, позволяющие создавать продвинутые веб-проекты.
Итоги
Мы разобрали несколько вариантов хостинга сайтов на Raspberry Pi. Как видите, такой хостинг не так уж и сложно настроить. Но тут нужно учитывать то, что возможности Raspberry Pi, в сравнении с обычным хостингом, ограничены. Правда, если вам нужно хостить простой статический сайт, то такой хостинг вам вполне подойдёт. Вам, кроме того, нужно будет принять во внимание вопросы производительности и безопасности.
Я искренне надеюсь на то, что вы добьётесь успеха в настройке и использовании Raspberry Pi в роли HTTP-сервера.
Как вы организовали бы хостинг, основанный на Raspberry Pi?
![](https://habrastorage.org/webt/ou/g5/kh/oug5kh6sjydt9llengsiebnp40w.png)
![](https://habrastorage.org/webt/3p/iw/1j/3piw1j3wd_cgmzq9sefgferaumu.png)
osipov_dv
Зачем поднимать FTP, если есть ssh и следовательно scp/sftp?
ну и под статику nginx лучше чем апач.
sergio_deschino
Это перевод, чтобы набить корпоративный блог и внизу прицепить плашку с рекламой, а о качестве статьи для которой делается перевод никто особо не задумывается.
sergio_deschino
Господа минисующие, особенно, минусующие в карму, Вы хотите сказать, что вот эта статья с apache/php5/raspberry pi для хостинга действительно выбиралась исходя из других принципов?
osmanpasha
Под статику вообще лучше GitLab/GitHub Pages. Даже не нужно становиться админом линукса и отращивать бороду
osipov_dv
в тренде рисовать картинки с бородатыми программистами\девопсами, почти все картинки на хабре такие в последнее время :)
админы уже не такие брутальные
kasigor
подскажите пож-та, а если человек сидит под виндой и есть у него только putty, как ему залить без фтп файлы?
Silvarum
В винде уже давно два года как есть встроенный клиент openSSH с sftp.
kasigor
Не подскажите как называется? В Виндоуз 7 есть?
Silvarum
firs058
WinSCP
sergio_deschino
FileZilla умеет без проблем цепляться под sftp
osipov_dv
в комплекте с putty идет pscp, а вообще winscp, filezilla и еще вагон софта.
saboteur_kiev
pscp.exe с сайта putty
Newbilius
Да уж, RUVDS молодцом: первая компания, для которой в моём случае стала актуальной причина для минуса "личная неприязнь". Не совсем верное слово, я бы использовал скорее "вызывает раздражение", но раньше я относился к этой компании позитивно-неитрально. Сейчас же она именно раздражает. Раздражает тем, что забивает ленту статьями спорного качества исключительно для того, чтобы светиться на хабре, отнимая пространство у действительно интересного материала. Причём если бы статьи были напрямую были связаны с деятельностью компании, реальными проектами, которыми занимаются её сотрудники — раздражения не было бы. А тут масса ради массы.
NiPh
Это какая-то двойная ирония, хостер публикует статью, что распбери может быть дешевле и удобней, чем проф хостинг.
nckma
Ну на самом деле не может. По простой причине, что дома на распберри трудно обеспечить хороший канал связи и надежность питания. Но вот как сервер для экспериментов — вполне годится.
NiPh
Конечно не может. В этом и ирония.
aakhamef
Я понимаю, что докапываюсь до перевода, но PHP 5 в 2020 году? Плюс как выше упомянули, nginx лучше
TheCluster
Да и к оригиналу можно было бы придраться, как минимум к совету ставить апач на малину, в особенности на малины предыдущих поколений. Связка php-fpm + nginx появилась очень давно, а значит статья уже в момент выхода давала больше вредных советов, чем пользы.
aakhamef
Я, кстати, уже придрался к оригиналу в комментариях
UPD: В смысле, зашёл на оригинальную статью и оставил там комментарий
TheCluster
Дно успешно пробито, советовать устанавливать апач + php 5 + ftp для хостинга сайтов в 2020-м году. Причем здесь уже не имеет значение, ставить всё это на raspberry pi или на полноценный сервер, малина разве что подчеркивает неадекватность советов текущим реалиям.
KirEv
вашему веб-серверу не хватает как минимум БД (мускл, например).
самый дешевый хостинг (vps, 1GB RAM, hdd 5GB): 20 евро в год, для сайта вполне
покупал неделю назад: рПи4 плата + радиатор с акт.охл + бп = почти 150 євро
тоесть почти 6 лет хостинга за эти деньги
а хостинг на рпи дома: зависимость от электричества и интернета, с этим же успехом на рабочей машине.
Serge78rus
Сюда можно добавить, что все больше провайдеров для динамических IP используют NAT, а значит может потребоваться статический IP, иначе снаружи будет никак не зайти и никакой NoIP не поможет. В частности столкнулся с этим несколько лет назад на Билайне. А вот статический IP обойдется в плюс 150...200 рублей в месяц к тарифу за Интернет, что уже перекрывает стоимость дешевого хостинга.
osmanpasha
Как мне тут недавно сказали, оракл вообще бесплатно раздает в своем облаке такие машины (1Gb RAM/50Gb диск). И как оказалось, действительно раздает.
Справедливости ради, можно брать не Пи4, а Пи3, там помягче требования к БП, да и без активного охлаждения можно жить, дешевле будет. Но тем не менее, хостить настоящий сайт дома в 2020 — ну такое себе. Только в образовательно-исследовательских целях или по фану)
Areso
Какую и какого банка карточку вы использовали?
Я перепробовал абсолютно все карты, которые у меня были, двух разных государств, и абсолютно на каждой получил reject от их процессинга.
Техподдержка, увы, в Oracle Cloud не работает.
a1ex322
та же проблемма. Скорее всего просто напросто заблокированы СНГ + Индия судя по комментариям к одной из статей.
igrblkv
Польза от Хоум Кредита прокатила, но это было в начале года…
osmanpasha
Альфабанк.
Я пробовал одну виртуальную карту яндекса (на удачу, везде писали, что они не работают), затем карту альфы, затем еще одну карту альфы, вторая сработала. К сожалению, не могу сейчас найти в интерфейсе, какая именно привязана в аккаунту, так что точно не скажу, чем она отличалась. Возможно, она 1) кредитная, а не дебетовая, 2) была привязана к долларовому счету, 3) была выпущена под нужным созвездием и просто понравилась роботам из оракла.
technomancer
У меня час назад получилось с обыкновенной Visa Momentum от Сбербанка.
Спасибо, osmanpasha, за наводку на сервис Oracle. Не подозревал о существовании такой возможности.
sergarcada
ВТБ сработала с первого раза.
DonAgosto
и даже цифровая (которая виртуальная, без пластика)
Pro-dev-pm
По статье конечно понятно, что имеется в виду обычный нормальный сайт, но вот для локальных дев-версий было бы оно (при нужном ПО, а не том, о чем в статье) мне кажется самое оно, чтобы не «захламлять» оперативку виртуалкой
kma21
Подскажите, где такие тарифы можно найти? Ищу нормальный хостинг для VPN, но жирные VPS покупать жаба душит.
0x131315
Да вон hetzner взять: за 3 евро в месяц получаешь vps + статичный ip + 20Тб трафика + 1 полноценное 64 битное ядро + 2Гб оперативки + 20Гб ssd + почти любую OS. Этого за глаза любому ненагруженному сайту + кучу побочных сервисов можно накатить: прокси, БД, docker, openvpn и т.п.
Малинку тоже рассматривал как вариант, но на arm нормальную БД без танцев не установить, а нормальное железо стоит как десяток лет хостинга, вложения смысла не имеют. Плюс все проблемы с сетью и доменом придется решать самому, искать варианты. Плюс статичный айпишник стоит денег, а dyndns недостаточно стабильно работают. В итоге по деньгам это выходит как европейский хостинг, только с нашим убогим интернетом, на убогом железе, и с зависимостью от наших убогих электриков. Нафиг надо.
Northerner19
Для тех кто использует редактор VS Code — есть расширение SSH Remote. Можно работать с кодом прямо через ssh сессию, очень удобно а не вот этот ваш FTP
BlenderRU
да уже наверное во всех современных IDE имеется возможность работать с SFTP серверами: VSCode, Jetbrains idea/storm.
В статье наверное не хватает ещё руководства по поднятию IRC-сервера… в духе времени так сказать.
unsignedchar
В 21 веке подкроватный хостинг… Зачем? Разве что для IoT-игр?
osmanpasha
Да какая-то статья из эпохи FTP и PHP5
Revertis
Например, поднять Nextcloud, чтобы не давать читать свои файлы хостеру.
unsignedchar
Такие файлы не нужно в сеть выкладывать никаким способом.
Revertis
Увы, часто они нужны извне.
vipark
Хороший вопрос. Потому что актуальный для меня, в плане IoT. И да, статья мне понравилась своей логической завершенностью: положите вашу страницу вот там и будет вам счастье. В отличие от комментариев выше. Типа лучше вот это и вот так. Напишите свою статью и мы с удовольствием почитаем.
MaxStirlits
С флешки много мелких файликов будут читатся с фантастической скоротью :)
sogarkov
Таких статей на просторах много. Было бы интересно почитать про установку ssl сертификата, что не так тривиально.
unsignedchar
Не думаю, что особенности в установке сертификатов в apache появятся, потому что это на Raspberry.
osmanpasha
А там же всё автоматизировано, например certbot или acme.sh, или вы о чем-то другом?
sogarkov
Как ни странно, в свое время не нашёл статей начального уровня, где это описывалось бы в одном тексте.
sergarcada
Сейчас с этим достаточно просто. Хоть тут я и гонят что хостинг на rpi — это моветон, но я держу свой сайтик для себя и друзей со своим доменным именем и https. Домен делегирован в connect.yandex, динамический адрес обновляется самописным скриптом через api и с certbot никаких проблем — установил, запустил, добавил в cron автообновление и оно как-то работает уже второй год без плясок с бубном.
kasigor
Т.е. у вас нет dns сервера? А если вы захотите запустить ещё пару сайтиков, что делать?
sergarcada
А в чем проблема? Несколько сайтов на одном ip, но на разных железках? Для меня это неактуально, но думаю можно что-то придумать с проксированием трафика. А если просто несколько сайтов на одном rpi — так это все решается самим веб-сервером.
Практической ценности не было, но было интересно смогут ли работать два разных сайта по https на одной железке — это оказалось рабочим вариантом.
kasigor
Сейчас на raspberry pi 4 веб-сервак может поставить и школьник. Это ерунда. Но вот настроить почтовый сервак типа postfix, dovecot, roundcube это еще тот квест. А так ставишь raspberry pi 4 (2 гБ озу) с веб-сервером (рекомендую Ubuntu Server) и говоришь всем хостерам гудбай! Правда еще нужно заплатить за интернет и приблизительно 10 кВт электроэнергии в месяц.
osipov_dv
Как вы считали? Под нагрузкой она потребляет 6,79, округляем до 7… умножаем на 24 и на 31, итого 5208. 5кВт от силы. Это при нагрузке, при том что ее конечно такой не будет.
VolCh
Роутер ещё)
SomeAnonimCoder
Ну и зачем вам майл-сервер на ардуино? Ардуино дома может оставить вас без почты в любой момент, что при этом произойдет со входящими — ошибка доставки? Проще уж на vps'ке
kasigor
Может быть и такое. Просто делать надо бекапы.
NiPh
Не в бэкапах дело. Некоторые почтовые сервера конечно попытаются доставить письмо еще раз, но большая часть после первой невозможности достучаться до вашего сервера перестанут пробовать. И после включения электричества эти письма вы так и не получите.
ingeniare
В чем отличие установки всего это барахла (типа Апача) для Raspberry Pi, от других Linux-систем, какой вообще смысл несет эта статья?
Dorlas
Собрал пару домашних серверов на базе ASUS N3150I-C, mini-ITX, Ret.
Процессор тянет виртуалки, до 8 Гиг ОЗУ.
Замерял потребление электроэнергии — до 30 Ватт в час.
В месяц выходит 60-70 рублей за электроэнергию.
Решение выходит намного функциональнее и производительнее…
osmanpasha
Ну это же разные весовые категории — дороже в разы, чем rpi, хотя и мощнее, и функциональнее, и выглядит красивее, если с корпусом.
А что такое 30 Ватт в час? Просто 30 Вт?
Dorlas
Мне обошлось в 9 т.р. мамка с процом + корпус (miniITX THERMALTAKE Core V1, Mini-Tower). Все остальное просто уже было от старых ПК (блок питания, планка памяти и диски).
Так что сопоставимо по деньгам в моем случае )))
Lvenok
Я бы хотел сделать облачное хранение фоток на для сохранения с мобилы raspberry…
ikachinskiy
К уже многим перечисленным причинам «минус» стоит добавить, что ресурс работы карточки памяти в Raspberry ну никак не расчитан на хоть сколько нибудь значительную нагрузку по числу операций ввода/вывода. При активной работе карточка будет выходить из строя по крайней мере раз в несколько месяцев. А дальше вся процедура заново — с возможной потерей информации, накопленной на сайте от посетителей. Так что в лучшем случае упражнение для поиграться — а как можно поднять сайт на компе под ARM, пока нам еще не доступные нормальные машины (новые Mac не в счет)
VolCh
Некоторые облачные провайдеры уже предлагают сервера на ARM. То есть не просто поиграться, но и потренироваться реально перед деплоем.
ikachinskiy
Да, встречал такие предложения. Буквально одно. Провайдера не помню, читал их обзор по китайскому серверу (кажется, Хуавей) на ARM, которые они пытаются продвигать. Но пока в регулярной эксплуатации не предоставляли — «пишите и мы откроем вам временный доступ поэкспериментировать вместе с нами». В общем, похоже что еще год-два в стандартных предложениях провайдеровмы ARM пока не увидим. Но дальше — почти неизбежно будут. И тогда у программеров появится потребность в рабочих машинках для разработки под новую платфому. Apple к тому времени наклепает эталонов и за ними вслед побегут множество менее именитых производителей. Короче — мы на пороге…
VolCh
Навскидку https://aws.amazon.com/ru/ec2/graviton/ Думаю, основные конкуренты раньше чем через два года подтянутся
ikachinskiy
Спасибо — это прошло мимо меня. В связи с санкционными рисками последние 2 года рассматривал только российских облачных провайдеров и AWS как то упустил из виду
Barmer
Ну для одного домашнего сайта, еще с горем пополам потянет, но больше будут жуткие тормоза при больших количествах поситителей.
Kywaxe
В windows 10 из коробки теперь поддерживается ssh. Зачем ставить лишний софт?
PGluk
Такими статьями буквально кишит интернет. Не понимаю зачем нужен ещё один клон.
MaksVal
Я думал ifconfig давно убрали...
x2v0
Узнал, что у внука, 10 лет отроду — это любимая игрушка.
… поломал-таки :)