1 (24.07.2014 00:16:42 отредактировано iAlexandre)

Всем привет!
Краткий ликбез: на VPS поставил CentOS 6. Залил небольшую программку, которая будет получать данные от моих устройств, которые, в свою очередь, при подключении к серверу по ip:100 в определенном каталоге создают *.txt файл. Я открыл доступ по нужному порту через виртуалхост к нужным папкам, все проверил - порт открыт, апачем слушается и все вроде бы хорошо. Но, что-то при подключении устройства файл не создается, сделал логи подключения устройства к виртуалхосту по порту и вот что там:

+ открыть спойлер
[Wed Jul 23 19:45:27 2014] [error] [client xx.xx.xx.xx] PHP Warning:  flock() expects parameter 1 to be resource, boolean given in /var/www/html/myfolder/data1.php on line 7
[Wed Jul 23 19:45:27 2014] [error] [client xx.xx.xx.xx] PHP Warning:  fputs() expects parameter 1 to be resource, boolean given in /var/www/html/myfolder/data1.php on line 8
[Wed Jul 23 19:45:27 2014] [error] [client xx.xx.xx.xx] PHP Warning:  flock() expects parameter 1 to be resource, boolean given in /var/www/html/myfolder/data1.php on line 9
[Wed Jul 23 19:45:27 2014] [error] [client xx.xx.xx.xx] PHP Warning:  fclose() expects parameter 1 to be resource, boolean given in /var/www/html/myfolder/data1.php on line 10
[Wed Jul 23 19:45:27 2014] [error] [client xx.xx.xx.xx] PHP Warning:  flock() expects parameter 1 to be resource, boolean given in /var/www/html/myfolder/data.php on line 6
[Wed Jul 23 19:45:27 2014] [error] [client xx.xx.xx.xx] PHP Warning:  fputs() expects parameter 1 to be resource, boolean given in /var/www/html/myfolder/data.php on line 7
[Wed Jul 23 19:45:27 2014] [error] [client xx.xx.xx.xx] PHP Warning:  flock() expects parameter 1 to be resource, boolean given in /var/www/html/myfolder/data.php on line 8
[Wed Jul 23 19:45:27 2014] [error] [client xx.xx.xx.xx] PHP Warning:  fclose() expects parameter 1 to be resource, boolean given in /var/www/html/myfolder/data.php on line 9 

Содержимое data1.php:

+ открыть спойлер

data.php:

+ открыть спойлер

Что я делаю не так и в чем проблема?  ac

2 (23.07.2014 17:23:57 отредактировано Marley)

failed to open stream: Permission denied in /var/www/html/myfolder/data1.php on line 6

Не может записать туда, куда ссылается в скрипте data1.php инструкция в 6 строке.

Узнаете значение переменной $file, тогда сможете понять, чего не хватает.

No Woman No Cry...

3 (24.07.2014 00:14:50 отредактировано iAlexandre)

Создал вручную по FTP нужные файлы и все заработало - файлы начали заполняться а в логах теперь пусто. Но это не выход абсолютно, не буду же я создавать каждый день новый файл. Отсюда вопрос: почему устройству не удается создать файл в папке? Копать в какой стороне?

4

Мысль 1:
У пользователя www-data от имени которого запускается apache должны быть соответствующие права на запись в каталоге где создаются файлы.

Вроде так:

 Консоль:
chown -R www–data:www-data /somefolder
chmod -R 660 /somefolder

No Woman No Cry...

5 (23.07.2014 22:53:15 отредактировано iAlexandre)

Cпасибо, дельный совет! Буду тестировать.

Как выяснилось, в CentOS нет юзера www–data

 Консоль:
[root@vps etc]# chown -R www–data:www-data /var/www/html/
chown: invalid user: `www–data:www-data'

Но, вместо него используется юзер "apache" на сколько я понял. Сейчас буду проверять)

6

Писал по памяти.

Вроде на самом деле вот так обстоят дела:

There is apache user instead of www-data in Centos.

No Woman No Cry...

7

Да, все работает как нужно! Файлы создаются, логи пустые.

Marley,спасибо еще раз!