PHP ne pas créer le dossier mkdir()
J'ai essayer de créer un nouveau dossier à l'aide de PHP localhost/PhpProject3/create.php:
<?php mkdir('newdir', 0777); ?>
mais ce code ne pas le faire. Il également ne fonctionne pas :
<?php mkdir('/var/www/PhpProject3/newdir',0777); ?>
J'ai installé la LAMPE. Je pense que le problème est dans les paramètres (peut-être chmod ?) parce script PHP fonctionne. Par exemple, j'ai créer simple test.php:
<?php echo 'Great'; ?>
et de l'exécuter: localhost/PhpProject3/test.php
le résultat est super.
J'utilise Netbeans.
Voici les fichiers: /var/www/PhpProject3 .
Je le lance: localhost/PhpProject3/...
Le contenu de /etc/apache2/sites-available/default:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin//usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/"/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Je ne peux pas créer de fichier à l'aide de touch().
Quelqu'un peut m'aider ?
Très probablement, vous n'êtes pas autorisé à y écrire, serveurs web ne sont généralement pas autorisés à écrire dans les répertoires ou les fichiers qu'il sert (pour de bonnes raisons). Si vous avez besoin d'un répertoire en écriture, vous devez explicitement faire un chmod pour permettre au serveur web pour y écrire. Il suffit de ne pas le faire sur le serveur de la racine, mais comme spécifiques à un sous-répertoire que vous le pouvez.
OriginalL'auteur user1518451 | 2013-05-04
Vous devez vous connecter pour publier un commentaire.
De l'utilisateur qui n'votre serveur exécuter en tant qu'? Vous pouvez voir que si vous écrivez
et de prendre un coup d'oeil. C'est probablement l'utilisateur www-data (si vous utilisez ubuntu).
Alors vous chown la dir de l'utilisateur et de donner à l'utilisateur des autorisations en écriture sur le répertoire.
et
Une alternative est d'utiliser à la place des autorisations de groupe.
et
en supposant que le serveur s'exécute en tant que groupe www-data.
Il fonctionne mais je ne peux pas créer un nouveau fichier php dans Netbeans. Comment puis-je changer le chmod pour créer, supprimer et modifier des fichiers sans racine permision ?
Pas possible si vous n'êtes pas root, vous pouvez faire le répertoire de tous accessibles en écriture si vous l'osez, son chmod a+w thedir
Je ne peux pas par exemple copier le fichier dans le dossier "dir". J'ai ajouter un utilisateur au groupe www-data et chmod: drwxrwxrwx 2 www-data www-data 4096 maj 4 19:13 dir . Comment puis-je modifier les fichiers dir dossier (sans racine permision) ?
Si les fichiers sont déjà existants, vous ne pouvez pas les modifier si les permissions sur les fichiers eux-mêmes ne le permet pas, même s'ils sont dans un répertoire accessible à tous. La seule chose répertoire writability vous donne la capacité à ajouter/supprimer des fichiers de la dir.
OriginalL'auteur Anders Lindén
Difficile de deviner ce qui est vraiment le problème, je suppose autorisations ou des problèmes de chemins. Vous devriez vérifier la valeur de retour de
mkdir()
:En outre, vous devez également apprendre activer les messages d'erreur.
mkdir()
déclencherait une si elle échoue. Ils sont désactivés par défaut car il pourrait être un risque pour la sécurité dans un système de production. Mais lorsque vous développez vous DOIT leur permettre. Vous pouvez l'activer dans lephp.ini
de système de développement:php.ini:
Après la modification de la
php.ini
n'oubliez pas de redémarrer le serveur web.OriginalL'auteur hek2mgl
il ya une salle de temp emplacement dans centos 7 qui est très ennuyeux parfois avec php en particulier la commande mkdir
Pour désactiver ce comportement, vous pouvez définir PrivateTmp=false dans le fichier /usr/lib/systemd/system/httpd.service
puis systemctl démon-reload; systemctl restart httpd
HTH.
OriginalL'auteur Raymond Henick