lgg / vk-to-telegram-bot

Bot for auto-reposting posts from VK to Telegram channel
129 stars 21 forks source link

Add check and error log for directory permissions #47

Open madby31 opened 6 years ago

madby31 commented 6 years ago
[22-Jul-2018 20:46:01 UTC] PHP Warning:  file_put_contents(/last.json): failed to open stream: Permission denied in /home/x------ml/console/vk-to-telegram-bot/app/Manager.php on line 42
[22-Jul-2018 20:46:01 UTC] PHP Warning:  file_get_contents(/last.json): failed to open stream: No such file or directory in /home/x-----ml/console/vk-to-telegram-bot/app/Manager.php on line 46
[22-Jul-2018 20:46:01 UTC] PHP Warning:  file_put_contents(/log.txt): failed to open stream: Permission denied in /home/x-----ml/console/vk-to-telegram-bot/app/Log.php on line 12

Не получается побороть ошибки. Все делал по инструкции.

lgg commented 6 years ago

@madby31 неверно выставлены права на файл, а скорее всего на сами папки. Из под какого пользователя запускаете скрипт? И можете показать вывод:

ls -al /home/x-----ml/console
ls -al /home/x-----ml/console/vk-to-telegram-bot
madby31 commented 6 years ago

ls -al /home/x-----ml/console drwxr-xr-x 3 x-----ml x-----ml 4096 июл 22 23:25 . drwx--x--x 22 x-----ml x-----ml 4096 июл 22 23:24 .. drwxrwxrwx 7 x------ml x-----ml 4096 июл 22 23:45 vk-to-telegram-bot

ls -al /home/x-----ml/console/vk-to-telegram-bot drwxrwxrwx 7 x------ml x-----ml 4096 июл 22 23:45 . drwxr-xr-x 3 x------ml x-----ml 4096 июл 22 23:25 .. drwxrwxr-x 2 x------ml x-----ml 4096 июл 22 23:27 app -rw-rw-r-- 1 x------ml x-----ml 94 июл 22 23:25 clear.php -rw-rw-r-- 1 x------ml x-----ml 305 июл 22 23:25 composer.json -rw-rw-r-- 1 x------ml x-----ml 2392 июл 22 23:25 composer.lock drwxrwxr-x 3 xx------ml x-----ml 4096 июл 22 23:25 docs -rw-r--r-- 1 x------ml x-----ml 12811 июл 22 23:55 error_log drwxrwxr-x 7 x------ml x-----ml 4096 июл 22 23:25 .git -rw-rw-r-- 1 x------ml x-----ml 1232 июл 22 23:25 .gitignore drwxrwxr-x 2 x------ml x-----ml 4096 июл 22 23:25 i18n -rw-rw-r-- 1 x------ml x-----ml 121 июл 22 23:25 index.php -rw-rw-r-- 1 x------ml x-----ml 1689 июл 22 23:25 README.md drwxrwxr-x 4 x------ml x-----ml 4096 июл 22 23:25 vendor

Вообще, назначал права 777 всем файлам в корне и в /app, а также всем папкам. Этот листинг после повторной установки.

Запускаю через cron

lgg commented 6 years ago

@madby31 не стоит никогда давать 777 на права и папки. Достаточно 775, а лучше и того меньше.

Cron из под какого пользователя?

Есть тупой костыль: руками создать в директории /home/x-----ml/console/vk-to-telegram-bot файлы log.txt и last.json, но лучше разобраться с правами.

У меня стоят в папке права на www-data:www-data(из под этого юзера php запускается) И на www-data в crone же стоит задача.

crontab -e -u www-data

madby31 commented 6 years ago

Запускаю cron через c-panel Вместо

//Functions files
    public static function getFileLog()
    {
        return dirname($_SERVER['SCRIPT_NAME']).DIRECTORY_SEPARATOR.self::$file_log;
    }
    public static function getFileLast()
    {
        return dirname($_SERVER['SCRIPT_NAME']).DIRECTORY_SEPARATOR.self::$file_last;
    }
}

пропиcал

//Functions files
    public static function getFileLog()
    {
        return dirname($_SERVER['SCRIPT_NAME']).self::$file_log;
    }
    public static function getFileLast()
    {
        return dirname($_SERVER['SCRIPT_NAME']).self::$file_last;
    }
}

Заработало. Спасибо!