我尝试使用 PHP localhost/PhpProject3/create.php 创建新文件夹:
<?php mkdir('newdir', 0777); ?>
但是这段代码并没有做到这一点。它也不起作用:
<?php mkdir('/var/www/PhpProject3/newdir',0777); ?>
我安装了 LAMP。我认为问题出在设置中(也许是 chmod ?),因为 PHP 脚本有效。例如我创建了简单的 test.php:
<?php echo 'Great'; ?>
然后运行它: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>
我也无法使用 touch() 创建文件。
谁能帮帮我?
最佳答案
您的网络服务器以哪个用户身份运行?你可以看到,如果你写
ps aux
然后看看。它可能是用户 www-data(如果你使用 ubuntu)。
然后您将目录 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 运行。
关于PHP 不创建文件夹 mkdir(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16373953/