На данный момент мне удалось успешно собрать Discourse на локальном компьютере, и я могу открыть его по адресу localhost:3000. Это замечательно: можно создавать темы, публиковать сообщения и т. д.
В основном я следовал руководству отсюда. Это действительно здорово!
Однако я не могу открыть форум по моему внутреннему IP-адресу (то есть локальному адресу в сети). Например, 10.1.2.139 (что-то вроде этого). Я хочу иметь возможность открывать этот форум на других устройствах (например, на своём ноутбуке).
Спасибо за ваш ответ!!
Я использую Ctrl+C для остановки процесса в терминале и запускаю сервер командой bundle exec rails server --binding=0.0.0.0, но, похоже, это всё ещё не работает.
Подскажите, пожалуйста, как правильно остановить процесс и запустить его снова? Я заметил, что даже после закрытия терминала форум остаётся доступным. Кроме того, я не использую Docker-контейнеры, поэтому у меня нет утилиты launcher для выполнения команды ./launcher stop app. Также я пробовал выполнить kill $(cat tmp/pids/server.pid), но получил ошибку: cat: tmp/pids/server.pid: Нет такого файла или каталога.
Вы уверены в этом? Со мной уже случалось подобное, потому что мой браузер кэшировал приложение Discourse и позволял мне перемещаться между темами, даже если процесс сервера не работал. Возможно, стоит проверить это с помощью curl:
curl http://localhost:3000
Также можно проверить, запущены ли какие-либо процессы ruby:
ps -ef | grep ruby
Утилита netstat может показать, какие процессы прослушивают определённые порты. Например, если я запущу простой веб-сервер на Python так:
$ python3 -m http.server 8099
Serving HTTP on 0.0.0.0 port 8099 (http://0.0.0.0:8099/) ...
Затем выполню netstat:
$ netstat -tlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8099 0.0.0.0:* LISTEN 2511478/python3
...
Это показывает, что процесс с PID 2511478 прослушивает порт 8099 на всех интерфейсах (0.0.0.0 означает «все интерфейсы»). Чтобы получить немного больше информации об этом процессе:
$ ps -fp 2511478
UID PID PPID C STIME TTY TIME CMD
simon 2511478 1250783 0 09:53 pts/11 00:00:00 python3 -m http.server 8099
Спасибо за информацию! Она очень полезна. К тому же я уже перешел на docker-container таким образом.
Я продолжу экспериментировать с Discourse. Я действительно в восторге от этого.