Меня зовут Лебник, и информация обо мне:
# id lebnik
uid=1000(lebnik) gid=1000(lebnik) groups=1000(lebnik),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev)
Мой apache запускает php-скрипты от пользователя www-data, проверьте это:
root@debian /etc/apache2 # grep -R "APACHE_RUN_USER=" .
./envvars:export APACHE_RUN_USER=www-data
Информация о пользователе www-data:
# id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Я создаю php-скрипт file.php:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
echo `whoami`;
$file = __FILE__.'.tmp';
file_put_contents($file, 'Hi');
echo file_get_contents($file)."\n";
$dirname = dirname(__FILE__);
echo `ls -la $dirname`;
?>
Затем я пытаюсь вызвать мой скрипт с помощью Apache:
# curl http://starsite.l/test/file.php
www-data
Hi
total 16
drwxrwxrwx 1 lebnik www-data 4096 Oct 18 00:49 .
drwxrwxr-x 1 lebnik www-data 4096 Oct 18 00:36 ..
-rw-rw-r-- 1 lebnik www-data 225 Oct 18 00:46 file.php
-rw-r--r-- 1 lebnik www-data 2 Oct 18 00:49 file.php.tmp
Ты видишь это? PHP создать файл file.php.tmp от пользователя lebnik. Что не так в моей конфигурации?
Извините, я монтирую папку в VirtualBox от неправильного пользователя:
mount -t vboxsf -o uid=1000,gid=33 starsite.l /var/www/starsite.l
Правильный монтаж:
mount -t vboxsf -o uid=33,gid=33 starsite.l /var/www/starsite.l
Других решений пока нет …