Centos 7 / Apache / PHP - mkdir (): autorisation refusée

Avant de crier en DOUBLE! et bannissez-moi dans l'abîme, écoutez-moi. 🙂

J'ai développé un site intranet pour la société où je travaille, et à l'origine j'étais en développement directement à partir de mon poste de travail exécutant Windows 7 /IIS. Comme je l'ai approché de l'achèvement du site/applications, on m'a donné un Centos 7 boîte exécutant Apachej'ai donc commencé le processus de migration vers ce système. J'ai réglé la plupart des problèmes mineurs, et a obtenu le site de la course maintenant. Cependant, il y a une partie du site qui interagit avec notre base de données et crée un journal répertoire/fichier basée sur la personne qui est connecté. Cette partie utilise la mkdir (), mais j'obtiens la permission de problèmes avec elle.

mkdir(): Permission denied

Voici ce que j'ai déjà fait:

  • Depuis que je suis sous Centos 7, l'utilisateur Apache/groupe apache:apache.
    J'ai utilisé chown et changé le propriétaire de /var/www/html/et les Journaux
    dossier pour l'utilisateur apache/groupe. Pour être sur le côté sûr, j'ai vérifié le httpd.conf et vérifier les processus en cours d'exécution pour s'assurer que j'avais le bon utilisateur/groupe.
  • J'ai essayé, juste pour des fins de test, de changer les permissions de tous les dossiers en chmod 777, mais obtenir la même erreur.
  • Cherché sur StackOverflow de haut en bas, et seulement d'obtenir des réponses pour les choses que j'ai déjà essayé, mais en vain.

Donc si j'utilise la commande chmod ou chown pour modifier les autorisations pour les dossiers en cours d'accès, j'obtiens le même type d'erreur. Pour être sur le côté sûr, j'ai vérifié l'utilisateur PHP aussi, et c'est à l'aide de l'utilisateur apache.

Si quelqu'un peut avoir un aperçu supplémentaire pour expliquer pourquoi il ne fonctionne pas, même avec la modification des autorisations, alors s'il vous plaît m'éclairer. S'il m'est arrivé de rater un article qui explique cette situation particulière, puis crier, de dupliquer et de me bannir de l'abîme. lol 🙂


MODIFIER
Ok, donc sur des tests supplémentaires, j'ai découvert les 2 questions qui semblent être la cause de ce problème.

  1. PHP est d'essayer de définir des autorisations pour le dossier quand il est créé à partir du script, et il semble que le serveur ne fonctionne pas comme ça, même si apache est le propriétaire. Lors de la suppression de cette partie du code, les autorisations d'erreur disparaît, et je reçois une erreur "no such file or directory".
  2. Lors de l'essai de la création des répertoires avec l'utilisateur Apache via sudo, il a été en mesure de faire un annuaire sans problème. Cependant, mon script PHP est de créer 2 répertoires, puis un fichier de log dans le dernier créé. Il semble que vous ne pouvez pas créer deux répertoires en même temps?? Par exemple, il y a un dossier Logs déjà créé, et PHP est d'essayer de créer deux sous-répertoires, un pour l'ID de l'utilisateur et ensuite un autre dossier à l'intérieur qu'un avec la date. Donc, une fois que le script PHP s'exécute, il doit créer quelque chose comme "les Journaux/5235/3-3-2015/"

Juste pour remarque, j'ai tenté de définir le récursive de la valeur à true sur mkdir en PHP, mais c'est quand je reçois l'autorisation des problèmes initialement indiqué. Lorsque récursive/mode est supprimé, il n'obtient pas l'autorisation de problème, mais il n'est pas en mesure de créer des répertoires imbriqués.


EDIT2

Pour tester mes théories, j'ai enlevé la nidification et essayé de faire mkdir créer juste 1 répertoire, et c'est de générer les mêmes erreurs qu'avant. Bien qu'il soit possédé par Apache, et même si je l'ai mis en 777, il jette en arrière des problèmes d'autorisation.

source d'informationauteur Fata1Err0r