Modification de l'user / du groupe pour permettre à PHP de chmod / rename et move_upload_file ()

Il semble que je ne peux rien faire avec mon script PHP sur mon VPS.

Il renvoie "Autorisation refusée" lorsque j'essaie de download quelque chose dans un directory.

Oui, j'ai changé d'autorisation pour 777, et cela fonctionne, mais je n'aime pas l'insecurity

Lors de l'exécution de la command:

ps axu|grep apache|grep -v grep 

Il revient

  nobody 7689 0.1 3.8 50604 20036 ? S 21:38 0:00 /usr/local/apache/bin/httpd -k start -DSSL root 13600 0.0 3.8 50304 20348 ? Ss Jun06 0:46 /usr/local/apache/bin/httpd -k start -DSSL nobody 15733 0.1 3.8 50700 20156 ? S 21:39 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 15818 0.1 3.8 51492 20180 ? S 21:39 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 23843 0.1 3.7 51336 19592 ? S 21:40 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 30335 0.0 3.5 50436 18496 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 30406 0.0 3.5 50444 18544 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 30407 0.0 3.5 50556 18696 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 30472 0.0 3.6 50828 19348 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 30474 0.0 3.5 50668 18868 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 30476 0.0 3.6 50532 19064 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 30501 0.0 3.8 50556 20080 ? S 21:36 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 32341 0.0 3.5 50444 18492 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 32370 0.0 3.5 50444 18476 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 32414 0.1 3.7 51336 19524 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 32416 0.1 3.5 50668 18816 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 32457 0.1 3.6 50828 19320 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 32458 0.1 3.6 50772 19276 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 32459 0.0 3.5 50444 18504 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 32460 0.2 3.6 50828 19320 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 32463 0.0 3.5 50444 18472 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL nobody 32466 0.0 3.4 50436 17960 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL 

Le propriétaire du directory est «user [505]» et le groupe est «user [508]» (voir WinSCP)

Que puis-je faire pour changer le gestionnaire d'Apache au bon propriétaire et au groupe pour permettre à mes scripts PHP de fonctionner?

PS

Mon PHP n'est pas configuré en mode sans échec et le open_basedir est défini comme sans valeur

EDIT :

C'est à quoi ressemble mon httpd.conf (pour le domaine associatif)

  <VirtualHost *:80> ServerName domain.com ServerAlias www.domain.com DocumentRoot /home/domain/public_html ServerAdmin info@domain ## User <theUsername> # Needed for Cpanel::ApacheConf <IfModule mod_userdir.c> Userdir disabled Userdir enabled <userName> </IfModule> <IfModule mod_suphp.c> suPHP_UserGroup <userName> <userName> </IfModule> <IfModule !mod_disable_suexec.c> SuexecUserGroup <userName> <userName> </IfModule> CustomLog /usr/local/apache/domlogs/domain.com-bytes_log "%{%s}t %I .\n%{%s}t %O ." CustomLog /usr/local/apache/domlogs/domain.com combined ScriptAlias /cgi-bin/ /home/domain/public_html/cgi-bin/ #Options -ExecCGI -Includes #RemoveHandler cgi-script .cgi .pl .plx .ppl .perl 

3 Solutions collect form web for “Modification de l'user / du groupe pour permettre à PHP de chmod / rename et move_upload_file ()”

Il aura besoin des mêmes droits que l'user qui exécute le server web. Cela variera en fonction de votre operating system. Il peut être "apache" ou "www-data" ou autre chose entièrement.

Sauf si vous utilisez suEXEC , le script est exécuté par le server Web et, en tant que tel, fonctionne avec les mêmes permissions que cet user.

Donc, pour corriger le problème, vous devez identifier l'user dans lequel le process apache est exécuté, et appliquer les permissions appropriées aux files / dossiers que vous voulez que le script puisse modifier.

Vous pouvez spécifier le count user et le count de groupe qui s'exécute dans votre file Conf en utilisant le

 User=[username] Group=[groupname] 

directives.

Jetez un oeil dans votre file conf, encore une fois, le nom et l'location du file varieront selon le operating system. Fournir un peu plus de détails ici peut assidir avec une réponse plus directe.

modifier: pour Centos, le file conf est situé dans

 /etc/httpd/conf/httpd.conf 

METTRE À JOUR! Si vous rencontrez ce problème, essayez ceci:

Dans WHM, allez à:

Principal >> Configuration du service >> Configuration d'Apache >> Configuration PHP et SuExec

J'ai changé PHP 5 Handler pour: suphp.

A fait un régal

changement dans WHM Principal >> Configuration du service >> Configuration d'Apache >> Configuration PHP et SuExec php hadler >> fcgi ,, cela résoudra le problm ..

  • PHP-FPM occasionnel "FastCGI: erreur de connection au server" erreur
  • Mettre à niveau PHP5.1.6 vers PHP5.3 dans CentOS
  • Apache Serving 403 interdit après OS X Snow Leopard Mise à jour vers la version 10.6.6
  • Apache: proxy inverse pour traiter PHP à partir d'un autre server
  • Comment installer PHP OAuth Extension sur Amazon Linux
  • signal Déficit de segmentation après un access spécifique à l'URL
  • Les modifications apscopes à php.ini de cli ne prennent pas effet
  • post_max_size ne changera pas, coincé à 128M, d'autres parameters fonctionnent
  • La mise à jour Wordpress échoue - mais pourquoi?
  • Comment puis-je find exactement quels scripts PHP utilisent toutes les ressources du server?
  • Comment réécrire un user d'une URL non réécrite à une URL réécrit
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.