FanatPHP: и давай по спокойнее. Приуменьши тут свой пыл, парниша. Веди нормальный диалог без доказывания, какой ты бог пыхи и тру прогер. Нормально помогать можешь?
Я выше написал, что куча ошибок вида failed to open stream: Permission denied in. Все они ссылаются на строки. где присутствует file_put_contents(). Ошибка гласит, мол отказано в доступе. Я в очередной раз намекаю щас про разных пользователей, писал об этом выше.
При запуске этого скрипта в ручную из консоли от пользователя user1 ошибок нет по понятным причинам.
FanatPHP: блин! Я в самом вопросе описал ситуацию. Описал что и почему не работает. Описал, что скорее всего не записывается в файл, так как php скрипт запускается от www-data, а каталоги принадлежат user1. Это и мешает записи, это подтвердилось на практике.
Я спросил, как это можно исправить? Если у вас нет предположения, то, пожалуйста, не пишите.
FanatPHP: Окей. Был не прав. В одном файле забыл сменить вывод ошибок на E_ALL. Вылезла ошибка в доступе, как я и писал.
Первая команда:
php -f /path/to/file.php
Ответ:
Zend Guard Loader requires Zend Engine API version 220090626.
The Zend Engine API version 220100525 which is installed, is newer.
Contact Zend Technologies at www.zend.com for a later version of Zend Guard Loader.
Socket created
Socket bind OK
Log cleared
fclose closed
Последние две строки говорят, что fopen() и file_put_contents() выполняются. На деле так оно и есть, в файл запись идет.
Вторая команда (выполняется из под exec):
nohup php -f /path/to/file.php > /path/to/log.log &
Содержимое log.log:
Socket created
Socket bind OK
А ниже куча ошибок вида: failed to open stream: Permission denied in
В вопросе четко написано: "от user1". Это означает, что каталоги и файлы от пользователя user1. И да, на каталог итак стоят права 777. Функция file_put_contents() выполняется, если тот же файл выполнить от afuno в консоле.
В лог записалось все то, что должен выполнить php скрипт. То есть выполняется.
Черт. Я понять не могу, почему он выводит ту часть выполненного когда, минуя код ранее.
То есть в лог записываются два echo, ниже вывел ссылку на другой файл лога в var_dump (путь до другого лога тоже верный), но тут же ниже после var_dump имеются эти 2 строки:
Хоть и public помог, но меня что-то мучает это решение. Не комфортно. Просто недавно начал изучать Rails и пока держу позицию, мол все (стили, и скрипты шаблонов) должно быть в app. Или я не прав?
Насколько я понял, если первый случай, то можно переопределить test.TestMethod() из родного объекта в другом. А во втором случает так не выйдет. Верно понял?