Serveur Apache: Édition de httpd.fichier conf (permission denied)
Donc, j'ai récemment téléchargé serveur Apache avec l'ensemble de ses fichiers (httpd, avril, apr-util, pcre) en suivant les instructions dictées ici: http://httpd.apache.org/docs/2.4/install.html
Toutefois, après, quand j'ai essayé de démarrer mon serveur Apache, qui est situé dans ma usr/local/bin/, j'ai été invité à ce message:
[allen@allen-lnx ~]$ /usr/local/bin/apachectl start
(13)Permission denied: AH00091: httpd: could not open error log file /usr/local/logs/error_log.
AH00015: Unable to open logs
Après quelques recherches, j'ai trouvé que je dois modifier mon httpd.fichier conf, je n'ai donc plus tôt afin de permettre le bon serveur et Écouter les options. Cependant, je ne sais pas comment modifier mon fichier conf pour permettre l'accès à la "logs" de répertoire.
Notamment, la commande sera exécutée lorsque j'utilise la commande "sudo", mais je préfère ne pas toujours l'utiliser, car il semble être un travail autour de.
Toute aide serait appréciée. Merci!
Edit: en fait, j'ai remarqué que j'ai peut-être deux httpd.fichiers de conf, qui s'est avéré être un peu gênant. L'autre est situé dans ma racine du répertoire /etc/etc/httpd/conf/httpd.conf). Je pense que mon modifiée question est maintenant de savoir... qui dois-je garder? Est /etc/la version de celui qui est intégré, comme indiqué par faff de commentaire ci-dessous?
Solution actuelle: j'ai pensé que je voudrais juste accepter le fait que j'ai besoin d'utiliser sudo lors de l'édition de ce fichier car j'ai besoin d'être root. Je pourrais le changer plus tard, alors que je suis toujours en cours d'exécution en tant que root, mais pour l'instant, sudo
suffira.
Je suis exécutant Oracle Linux 6.4. Est-ce que c'est?
Pourquoi ne pouvez-vous pas utiliser apache que Oracle Linux navires? Regarde public-yum.oracle.com/repo/OracleLinux/OL6/4/base/x86_64 il semble qu'il y a des versions de Apache HTTPD 2.2.15 disponible dans les versions d'apache 2.2.15-26.0.1.el6.x86_64.tr / min etc.
J'ai utilisé le "sudo yum install httpd de la commande", et il dit que tout est à jour. :X
OriginalL'auteur Zhouster | 2013-06-15
Vous devez vous connecter pour publier un commentaire.
Cela ressemble à un problème avec les permissions du système de fichiers. Assurez-vous que le
/usr/local/logs/
répertoire existe et est accessible en écriture par l'utilisateur que vous utilisez Apache comme.Si vous ne voulez pas que votre
logs
répertoire accessible en écriture par l'utilisateur normal, vous pouvez créer le fichier de log:Puis de changer le propriétaire du fichier à l'utilisateur:
En supposant que vous souhaitez exécuter Apache en tant que l'utilisateur
allen
.Si vous souhaitez modifier l'emplacement du fichier de log d'Apache, regardez pour les
ErrorLog
directive dans votre httpd.fichier conf (vous aurez à ajouter si ce n'est pas là):Aussi, quand j'ai essayé ci-dessus, il s'exécute sans erreur, mais j'ai vérifié et ce n'est pas vraiment le démarrage du serveur. Je le sais parce que quand j'essaie de l'arrêter, il dit: "httpd (pas de fichier pid) ne fonctionne pas". L'appel de "sudo" est ma solution à tout cela, mais je me demande si je suis absent quelque chose...
lorsque vous avez démarré le serveur, il y avait rien d'écrit dans le fichier de log? En les regardant, vous devriez voir. Aussi, j'ai ajouté des instructions pour le changement de défaut logile emplacement de ma réponse.
Il est en fait beaucoup dans ma error_log. Il dit "impossible de créer le répertoire /usr/local/logs/httpd.pid" et "ne pouvait pas le journal des pid pour le fichier /usr/local/logs/httpd.pid". Quand je lance sudo pour mes opérations, je suis en mesure de démarrer le serveur et de visiter mon site web, mais quand je lance la commande d'état, il dit qu'il ne trouve pas l'URL demandée. Je me demande si je suis absent quelque chose. Je suis en cours d'exécution apachectl. Je devrais être en cours d'exécution de quelque chose d'autre?
Il semble qu'il y a toujours un problème avec les autorisations de fichier. Vous pouvez essayer de créer la
/usr/local/logs/httpd.pid
fichier manuellement ou modifier son emplacement avec laPidFile
directive dans votre httpd.conf.OriginalL'auteur Esenti
Pour tout le monde qui est à l'aide de SELinux, si vous avez supprimé le dossier ou rencontré des problèmes similaires, vous pouvez avoir besoin de faire plusieurs choses.
Rétablir le lien avec le dossier avec
ln -s /var/log/httpd /etc/httpd/logs
Par défaut, les journaux sont conservés en vertu de la var dossier, mais ne sont référencé dans /etc/httpd/logs
Appliquer de sécurité SELinux autorisations avec
chcon system_u:object_r:httpd_config_t:s0 /etc/httpd/logs
Et bien sûr tout faire en tant qu'admin
Tiens à confirmer que SELinux empêche mon
httpd
serveur d'exécution sur Fedora 22. C'est encore une solution pour les systèmes à l'aide de SELinux.OriginalL'auteur Matthew Sprankle
Changer de sécurité SELinux politique de permissive fixe mon problème.
Avant de fixer mon SELinux a travaillé avec forcées mode:
J'ai changé de politique de sécurité dans le fichier de configuration de SELinux et dans le système.
Après la réparation de mon SELinux a travaillé avec forcées mode:
OriginalL'auteur Lukasz Dynowski