2009-05-24 13 views
0

Je travaille sur mon OS X avec l'installation par défaut d'Apache. Pour une raison quelconque, quand je lance la commande "apachectl" sans le "sudo" je reçois "pas de sockets d'écoute disponibles/impossible d'ouvrir les journaux". Je suppose que c'est une permission, alors quelqu'un peut-il m'aider? J'utilise Apache 2.2.Pourquoi "apachectl -k start" ne fonctionne pas, mais "sudo apachectl -k start" fonctionne-t-il?

En outre, la question de côté, où le fichier script Apache qui est essentiellement le « exe » que linux exécute? J'essaie d'intégrer mon serveur avec Aptana Studio, et cela nécessite le chemin vers l'installation d'Apache. Je sais dans Windows, ce serait "C: \ path \ to \ httpd.exe", mais je ne sais pas comment cela fonctionne dans Linux.

Répondre

6

Votre serveur écoute sur le port 80? (Généralement) seule la racine est autorisée à ouvrir les ports en dessous de 1024. D'où la nécessité de sudo.

Comme vous can see, beaucoup de gens se demandent comment contourner ce problème. Une solution possible consiste à effectuer un transfert de port sur votre routeur. (Je suppose ici que vous êtes derrière un routeur ...). Ensuite, les connexions entrantes sur le port 80 peuvent être transférées par ex. port 8080. Ainsi seulement localement il faut se connecter au port 8080. (Il peut y avoir des solutions plus élégantes ... quelqu'un d'autre les publiera.)

+0

intéressant, alors quelle est la meilleure façon de contourner ce problème? Je n'aime pas taper localhost: 8080, mais est-ce une meilleure alternative que d'essayer d'accorder la permission à mon compte pour ouvrir le port 80? semble que ce serait un problème commun, se demandant simplement comment les gens travaillent autour d'elle. – Bialecki

0

Je pense généralement (sur OS X et Linux - je suis Vous ne savez pas à qui vous faites référence) le binaire httpd est situé à:/usr/sbin/httpd

Si vous devez être en mesure de redémarrer Apache, et vous ne pouvez pas le faire en tant que root (pour une raison quelconque ..), alors vous devrez peut-être vous contenter d'un port non "bien connu".

0

essayer

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

mot de passe devrait être stocké dans le fichierpass

+0

je ne suis pas sûr à ce sujet – Rinu