user1518451 user1518451 - 3 months ago 27
Apache Configuration Question

PHP don't create the folder mkdir()

I trying create new folder using PHP localhost/PhpProject3/create.php:

<?php mkdir('newdir', 0777); ?>


but this code doesn't do it. It also doesn't work :

<?php mkdir('/var/www/PhpProject3/newdir',0777); ?>


I installed LAMP. I think the problem is in the settings (maybe chmod ?) because PHP script works. For example i create simple test.php:

<?php echo 'Great'; ?>


and run it:
localhost/PhpProject3/test.php
the result is Great.

I use Netbeans.
Here are files: /var/www/PhpProject3 .
I run it: localhost/PhpProject3/...
The content of /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>


I also can't create file using touch().

Can anyone help me ?

Answer

Which user does your webserver run as? You can see that if you write

ps aux

and take a look. It is probably the user www-data (if you use ubuntu).

Then you chown the dir to that user and give the user write permissions to the directory.

chown www-data /var/www/PhpProject3

and

chmod u+w /var/www/PhpProject3

An alternative is to instead use group permissions.

chgrp www-data /var/www/PhpProject3

and

chmod g+w /var/www/PhpProject3

assuming the webserver runs as group www-data.

Comments