Почему запуск «apachectl -k start» не работает, а «sudo apachectl -k start» работает? - PullRequest
0 голосов
/ 25 мая 2009

Я работаю на своей OS X с установкой по умолчанию Apache. По какой-то причине, когда я запускаю команду «apachectl» без «sudo», я получаю «нет доступных сокетов прослушивания / невозможно открыть журналы». Я предполагаю, что это разрешающая вещь, так может кто-нибудь мне помочь? Я использую Apache 2.2.

Кроме того, побочный вопрос, где файл сценария Apache, который в основном представляет собой «exe», который исполняет linux? Я пытаюсь интегрировать свой сервер с Aptana Studio, и для этого требуется путь к установке Apache. Я знаю, в Windows это будет "C: \ path \ to \ httpd.exe", но я не знаю, как это работает в Linux.

Ответы [ 3 ]

6 голосов
/ 25 мая 2009

Ваш сервер прослушивает порт 80? (Обычно) только root может открывать порты ниже 1024. Отсюда необходимость в sudo.

Как вы можете видеть , многие люди задаются вопросом, как обойти это. Одним из возможных решений является перенаправление портов на вашем маршрутизаторе. (Я предполагаю, что вы находитесь за маршрутизатором ...). Затем входящие соединения через порт 80 могут быть перенаправлены, например, на. порт 8080. Таким образом, только локально нужно подключаться к порту 8080. (Могут быть более элегантные решения ... кто-то еще опубликует их)

0 голосов
/ 17 февраля 2010

попробуйте

(с php) $ a = shell_exec ('sudo -u root -S /etc/init.d/apache2 restart </ home / $ user / passfile'); </p>

пароль должен храниться в пароле

0 голосов
/ 25 мая 2009

Я думаю, что в целом (как на OS X, так и на Linux - я не уверен, на какую именно вы ссылаетесь) бинарный файл httpd находится по адресу: / usr / sbin / httpd

Если вам нужно перезапустить Apache и вы не можете сделать это как root (по какой-то причине ..), то вам, возможно, придется согласиться на не «хорошо известный» порт.

...