CentOS – Problème avec les permissions d'écriture

Je cours CentOS 6.4 et j'ai installé WordPress là-dessus. (avec LAMP)

Maintenant, le problème est que je ne peux pas apporter de changements d'écriture à tous les files dans l'éditeur de wordpress: par exemple. header.php, style.css etc. WordPress dit ce qui suit lorsque le button 'update' est supposé être: Vous devez rendre ce file inscriptible avant de pouvoir save vos modifications.

Remarques:

J'ai exécuté la command chmod 775 sur les deux «thèmes» et «uploads», Maintenant, faire un chmod 777 me permet d'écrire des permissions, mais je ne crois pas que ce soit très sûr … Y a-t-il une autre / meilleure façon de le faire?

(bluegig est le nom de mon domaine, je ne sais pas pourquoi c'est là …)

Qu'est-ce que je peux faire:

  • Je peux lire et exécuter dans WordPress
  • Je peux download des files dans le dossier des téléchargements depuis wordpress

Je ne peux pas:

  • Apporter des modifications aux files dans wordpress (via l'éditeur)
  • Comment activer les permissions d'écriture pour pouvoir modifier les files dans wordpress?

Notez que je ne me suis pas connecté à un count FTP depuis WP.

L'installation d'Apache peut sembler s'exécuter en tant que root, mais en réalité, elle s'exécute en tant qu'user apache . Vous pouvez vérifier ceci en regardant dans ce file:

 $ grep "^User" /etc/httpd/conf/httpd.conf User apache 

Votre directory wordpress entier devrait probablement être détenu par cet user si vous prévoyez de gérer l'installation en utilisant wordpress via l'interface user Web.

Je crée habituellement un directory séparé pour wordpress comme ceci:

 $ pwd /var/www $ ls -l | grep wordpress drwxr-xr-x. 5 apache apache 4096 Apr 25 19:27 wordpress 

Voici le contenu du directory wordpress pour que vous puissiez le voir:

 -rw-r--r--. 1 apache apache 395 Jan 8 2012 index.php -rw-r--r--. 1 apache apache 5009441 Jan 23 13:40 latest.tar.gz -rw-r--r--. 1 apache apache 19929 May 6 2012 license.txt -rw-r--r--. 1 apache apache 9177 Jan 25 11:25 readme.html -rw-r--r--. 1 apache apache 4663 Nov 17 2012 wp-activate.php drwxr-xr-x. 9 apache apache 4096 Dec 11 2012 wp-admin -rw-r--r--. 1 apache apache 271 Jan 8 2012 wp-blog-header.php -rw-r--r--. 1 apache apache 3522 Apr 10 2012 wp-comments-post.php -rw-rw-rw-. 1 apache apache 3466 Jan 23 17:15 wp-config.php -rw-r--r--. 1 apache apache 3177 Nov 1 2010 wp-config-sample.php drwxr-xr-x. 7 apache apache 4096 Apr 24 20:15 wp-content -rw-r--r--. 1 apache apache 2718 Sep 23 2012 wp-cron.php drwxr-xr-x. 9 apache apache 4096 Dec 11 2012 wp-includes -rw-r--r--. 1 apache apache 1997 Oct 23 2010 wp-links-opml.php -rw-r--r--. 1 apache apache 2408 Oct 26 2012 wp-load.php -rw-r--r--. 1 apache apache 29310 Nov 30 2012 wp-login.php -rw-r--r--. 1 apache apache 7723 Sep 25 2012 wp-mail.php -rw-r--r--. 1 apache apache 9899 Nov 22 2012 wp-settings.php -rw-r--r--. 1 apache apache 18219 Sep 11 2012 wp-signup.php -rw-r--r--. 1 apache apache 3700 Jan 8 2012 wp-trackback.php -rw-r--r--. 1 apache apache 2719 Sep 11 2012 xmlrpc.php 

Généralement, je gère aussi toutes les configs Apache liées à wordpress dans son propre wordpress.conf file under this directory, / etc / httpd / conf.d / `.

 # wordpress.conf Alias / "/var/www/wordpress/" <Directory "/var/www/wordpress/"> Order Deny,Allow Deny from all #Allow from 127.0.0.1 192.168.1 Allow from all AllowOverride all </Directory> #RewriteLog "/var/www/wordpress/rewrite.log" #RewriteLogLevel 3 

(bluegig est le nom de mon domaine, je ne sais pas pourquoi c'est là …)

Il semblerait qu'il y ait aussi un groupe nommé Blugig. Vous pouvez confirmer ceci:

 grep bluegig /etc/group 

L'utilisation des permissions de groupe est un moyen d'éviter d'utiliser, par exemple, 777. Vous voulez probablement que les scripts soient exécutés par un server pour être lisibles et exécutables par lui, mais non inscriptibles; mais vous voulez des permissions d'écriture sur eux pour un user admin / devel non privilégié ( dave ). Puisque le server fonctionne comme apache , si le file appartient à un groupe apache ne fait pas partie de dave is, et les permissions sont 775, c'est ce que vous obtiendrez (apache peut lire et exécuter, dave peut lire write execute).

Si la ligne de / etc / group ne mentionne pas apache, vous pouvez utiliser bluegig comme groupe, ou en créer un nouveau ( groupadd ). Pour vous mettre en groupe:

 usermod -a -G bluegig dave 

Votre nom de connection apparaîtra maintenant à la fin de l'input bluegig dans / etc / group, et vous disposerez des mêmes permissions que le groupe bluegig.