Как автоматически запустить собственный веб-сервер на 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-адреса. НТН.