PHP不创建文件夹mkdir()

use*_*451 5 php apache

我尝试使用PHP localhost/PhpProject3/create.php创建新文件夹:

<?php mkdir('newdir', 0777); ?>
Run Code Online (Sandbox Code Playgroud)

但是这段代码没有这样做.它也不起作用:

<?php mkdir('/var/www/PhpProject3/newdir',0777); ?> 
Run Code Online (Sandbox Code Playgroud)

我安装了LAMP.我认为问题出在设置中(可能是chmod?)因为PHP脚本有效.例如,我创建简单的test.php:

<?php echo 'Great'; ?>
Run Code Online (Sandbox Code Playgroud)

并运行它:localhost/PhpProject3/test.php结果是伟大的.

我使用Netbeans.这是文件:/ var/www/PhpProject3.我运行它:localhost/PhpProject3/.../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>
Run Code Online (Sandbox Code Playgroud)

我也无法使用touch()创建文件.

谁能帮我 ?

And*_*dén 11

您的网络服务器运行的是哪个用户?你可以看到,如果你写

ps aux
Run Code Online (Sandbox Code Playgroud)

并看看.它可能是用户www-data(如果你使用ubuntu).

然后你将dir chown给该用户并授予用户对该目录的写权限.

chown www-data/var/www/PhpProject3

和

chmod u + w/var/www/PhpProject3

另一种方法是使用组权限.

chgrp www-data/var/www/PhpProject3

和

chmod g + w/var/www/PhpProject3

假设网络服务器以组www-data运行.