user1518451 user1518451 - 2 months ago 13
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:
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 /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

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 ::1/128


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

Can anyone help me ?


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


chmod u+w /var/www/PhpProject3

An alternative is to instead use group permissions.

chgrp www-data /var/www/PhpProject3


chmod g+w /var/www/PhpProject3

assuming the webserver runs as group www-data.