2009-05-24 6 views
0

Ich arbeite an meinem OS X mit der Standardinstallation von Apache. Aus irgendeinem Grund, wenn ich den Befehl "apachectl" ohne "sudo" ausführen, bekomme ich "keine hörenden Sockets verfügbar/nicht in der Lage, Protokolle zu öffnen." Ich vermute, das ist eine Erlaubnis, also kann mir jemand helfen? Ich benutze Apache 2.2.Warum funktioniert "apachectl -k start" nicht, aber "sudo apachectl -k start"?

Auch Frage, wo die Apache-Skript-Datei, die im Grunde ist die "exe", die Linux ausführt? Ich versuche, meinen Server mit Aptana Studio zu integrieren, und es erfordert den Pfad zur Apache-Installation. Ich weiß in Windows, das wäre "C: \ Pfad \ zu \ httpd.exe", aber ich weiß nicht, wie das in Linux funktioniert.

Antwort

6

Hört Ihr Server Port 80? (Normalerweise) Nur Root darf Ports unter 1024 öffnen. Daher die Notwendigkeit für sudo.

Wie Sie can see, fragen sich viele Leute, wie man das umgehen kann. Eine mögliche Lösung ist die Portweiterleitung auf Ihrem Router. (Ich gehe davon aus, dass Sie hinter einem Router sind ...). Dann können eingehende Verbindungen an dem Port 80 an z.B. Port 8080. Also nur lokal muss man sich mit Port 8080 verbinden. (Es gibt vielleicht elegantere Lösungen ... jemand anderes wird sie veröffentlichen.)

+0

interessant, also, was ist der beste Weg, um dies zu umgehen? Ich möchte nicht localhost: 8080 eingeben, aber ist das eine bessere Alternative als zu versuchen, meinem Konto die Erlaubnis zu erteilen, Port 80 zu öffnen? scheint, als wäre dies ein häufiges Problem, nur zu fragen, wie die Leute darum herum arbeiten. – Bialecki

0

Ich denke generell (sowohl unter OS X als auch unter Linux - ich bin nicht sicher, auf welche Sie sich beziehen) Die httpd-Binärdatei befindet sich unter:/usr/sbin/httpd

Wenn Sie in der Lage sein müssen, Apache neu zu starten, und Sie können dies als root (aus welchem ​​Grund auch immer) nicht tun ..), dann müssen Sie sich vielleicht mit einem nicht 'gut bekannten' Hafen begnügen.

0

versuchen diese

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

Passwort sollte im Passfile gespeichert werden

+0

bin ich mir da nicht sicher – Rinu

Verwandte Themen