Как автоматически запустить собственный веб-сервер на BeagleBone Black?

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

Я полагаю, что этот вопрос состоит из двух частей:

  • Как удалить все стандартные, избыточные или конфликтующие поведение при запуске веб-сервера? У меня работает сток Angstrom, 3.8.13.

  • Предполагая, что у меня есть собственный исполняемый файл веб-сервера (в моем случае это веб-сервер twistd), как мне настроить его на автоматический запуск при запуске платы?

Большое спасибо за любую помощь, которую вы можете оказать мне.

6 ответов

Решение

Bbb использует systemd и служебные файлы для контроля запуска служб - на вашем bbb есть файл README в /etc/init.d, который предоставляет некоторую информацию и ссылки. На systemd также есть несколько хороших страниц по адресу http://fedoraproject.org/wiki/Systemd. Есть много сервисов, настроенных по умолчанию. Попробуйте набрать: systemctl list-units. Это даст вам список услуг и некоторую минимальную информацию о статусе. Каждая из перечисленных служб настраивается (обычно) простыми служебными файлами, которые сообщают systemd, как запускать, и эти файлы по большей части находятся в / lib / systemd / system. Я не совсем уверен, что вы спрашиваете в своем первом вопросе, но звучит так, как будто вы хотите избавиться от "встроенного" веб-сервера - я довольно новичок в себе, и я не знаю отвечу точно, но если узнаю больше, выложу здесь.

вступление

Я думаю, что вы пытаетесь сделать то же самое, что и я, то есть изменить веб-страницу, которую вы видите в браузере, когда вы переходите к IP-адресу BBB со страницы по умолчанию bone101 на свою собственную пользовательскую веб-страницу, написанную в HTML или что-то еще.

Отчасти основываясь на ответах на этой странице, а также на своем методе проб и ошибок, я разработал, как это сделать, и предоставил полный и полный ответ ниже.

Разъяснение запутанных моментов в других ответах

Но сначала, чтобы прояснить некоторые запутанные моменты в других ответах на этой странице:

  • Когда вы подключаете BBB к компьютеру через USB и переходите в браузере по IP-адресу BBB (по умолчанию 192.168.7.2), вы получаете страницу по умолчанию bone101, расположенную (по умолчанию) в /usr/share/bone101/index.html.

  • Если вы подключите BBB напрямую к маршрутизатору через Ethernet (или настроите Wi-Fi-соединение), вы можете перейти к IP-адресу BBB в сети, и вы получите ту же веб-страницу.

  • Если затем вы настроили переадресацию портов на маршрутизаторе для пересылки входящего http-трафика на BBB, а затем получили доступ к внешнему IP-адресу вашей сети (напрямую или через домен (www.example.com), который указывает на этот IP-адрес), тогда Вы также получите ту же веб-страницу.

В конечном счете, это то, что я и, я полагаю, ФП пытаемся изменить. Я хочу использовать свой BBB в качестве веб-сервера для обслуживания своего собственного веб-сайта, и я не хочу, чтобы люди заходили на www.my-website.com, чтобы посмотреть материал по умолчанию bone101.

Решение

NB: Я использую последний образ Debian ARM, а не angstrom, поэтому расположение по умолчанию может отличаться.

Сначала отключите и остановите существующий материал bone101, согласно ответу Баса Вийнена:

systemctl disable bonescript.socket
systemctl disable bonescript.service
systemctl stop bonescript.socket
systemctl stop bonescript.service

Затем отредактируйте конфигурацию веб-сервера apache. Начните с редактирования конфигурации прослушивания порта:

sudo vim /etc/apache2/ports.conf

и измените эту строку:

Listen 8080

к этому:

Listen 80

так как порт 80 является портом по умолчанию для трафика http. В противном случае люди должны были бы пойти на www.your-website.com:8080, что просто глупо.

Затем, как отмечено в приведенном выше файле, вам также придется отредактировать включенную конфигурацию сайтов:

sudo vim /etc/apache2/sites-enabled/000-default.conf

Отредактируйте первую строку из этого:

<VirtualHost *:8080>

к этому:

<VirtualHost *:80>

Затем либо поместите ваш контент в каталог, указанный в DocumentRoot поле (это каталог, который будет использоваться в качестве корня вашего сайта), который по умолчанию /var/www/htmlили измените DocumentRoot поле, чтобы указать на каталог, который вы хотите использовать. В моем случае я оставил это как /var/www/html но потом сделал это символической ссылкой на каталог в git-репозитории, где находится содержимое моего сайта.

Или, если вы просто хотите сделать быстрый тест, используйте символическую ссылку или скопируйте тестовую страницу apache по умолчанию в DocumentRoot каталог или измените поле так, чтобы оно указывало на каталог, в котором находится тестовая страница apache по умолчанию (по умолчанию /usr/share/apache2/default-site/index.html)

Затем перезапустите Apache и так далее:

sudo /etc/init.d/apache2 restart

HTML-страницы на устройствах хранения BBB доступны только для вас, если вы подключены через USB-кабель.

Это не относится к BBB здесь. Хотя стандартные веб-страницы "/support/bone101" действительно доступны через USB на 192.168.7.2 на интерфейсе USB0, они также отображаются на динамическом IP-адресе BBB через обычный сетевой интерфейс eth0, например, 192.168.1.132 в моей локальной сети.,

Запуск "Linux beaglebone 3.8.13 #1 SMP Tue 18 Jun 02:11:09 EDT 2013 armv7l GNU/Linux", поэтому YMMV на других релизах, конечно.

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

Я установил lighttpd с помощью opkg. Файл lighttpd.conf заканчивается в /etc, где вы можете указать порт:

 --> cat lighttpd.conf | grep port
## bind to port (default: 80)
server.port                = 2080

и тому подобное:

server.document-root        = "/www/pages/"
server.errorlog             = "/www/logs/lighttpd.error.log"
accesslog.filename          = "/www/logs/access.log"

На www / pages вы найдете index.html. Оно работает!

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

Порт 80 используется "bonescript.socket", который используется "bonescript.service". Чтобы отключить его, нужно:

systemctl disable bonescript.socket
systemctl disable bonescript.service
systemctl stop bonescript.socket
systemctl stop bonescript.service

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

Во-первых, вы должны четко понимать веб-интерфейс, который появляется на BBB, когда вы получаете к нему доступ как к простому флэш-устройству, как к любому другому флэш-накопителю, в отличие от запуска веб-сервера в операционной системе BBB с чем-то вроде Apache. Когда вы начинаете работать с BBB, вы можете получить доступ к html-файлам и большому количеству DOC, просто щелкнув по ссылкам, которые вы видите на BBB, но это просто те файлы, к которым вы обращаетесь, как и со своего жесткого диска. Если вы загрузите дистрибутив Angstrom Linux, который вы просто включите, вы можете войти в терминальную сессию, и весь мир станет вашей устрицей. С BBB вы можете загружать пакеты (например, веб-сервер) и создавать любые сайты, какие пожелаете. В этот момент вы можете ввести URL своего нового веб-сервера на главном рабочем столе (ПК или что-то еще), добавить его в избранное (закладки), и он должен "запуститься автоматически". HTML-страницы на устройствах хранения BBB доступны только для вас, если вы подключены через USB-кабель. HTML-страницы, которые может обслуживать веб-сервер, доступны всем, у кого есть доступ к вашей сети из любой точки мира, при условии правильного URL-адреса. НТН.

Другие вопросы по тегам