Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте друзья. Задача такая. В определенное время нужно, что бы запускался определенный метод определенного класса.
Решил реализовать это с помощью Крона, тем более что на моем хостинге он доступен.
Но вот возникла проблема хостинг шаровый, настроить крон через консоль возможности нет, только через панель управления хостига. Вот скриншот:
Как видно настраивать там особо нечего, просто выбираешь время и путь к скрипу.
Идем далее. Я создал файл Cron.php и забросил его в папку public, решил реализовать запуск метода на примере index.php .
Написал я следующее:
<?php
$con = require_once __DIR__.'/../app/controllers/IndexController.php';
$con ->create();
Но ничего не получилось, крон при работе выдал ошибку:
Class 'BaseController' not found in /home/u100500/public_html/app/controllers/IndexController.php
Потом я решил подключить еще и BaseController. Получилось вот так:
<?php
require_once __DIR__.'/../app/controllers/BaseController.php';
$con = require_once __DIR__.'/../app/controllers/IndexController.php';
$con ->create();
На этот раз выбило ошибку что не нашло клас "Controller". Я понял что в этом направлении двигаться не получится.
Потом я решил в файле Cron.php открывать ссылку вот так:
<?php
header('Location: http://site.ru/create');
Но теперь крон мне выдал Status: 302 Moved Temporarily. Короче тоже не проканало.
Решил погуглить, вот что нашел http://stackoverflow.com/questions/1637 … in-laravel но там нужна консоль, которой у меня нет.
Короче я могу создать php файл, а он уже как то должен дернуть метод Ларавела, подскажите кто чем может. Хостинг использую hostinger может кто настраивал под него.
Не в сети
Хах.
cron.php
include 'http://yourdomain com/controller/method'
или http_get() или curl() или все что может обратить к URL.
Попробуйте https://github.com/Indatus/dispatcher
Не в сети
include 'http://yourdomain com/controller/method' - отключен на сервере такой тип инклуда
http_get() - не знает такой функции
curl_exec() - тоже отключено, "безопасность" ск.
Админы видать не один день думали как заставить юзера сойти с ума.
Изменено exFAT (08.10.2014 14:42:39)
Не в сети
Для запуска CLI-скриптов (Command Line Interface - командная строка) в Laravel придуман artisan. Вам нужно сделать артизан-команду (это есть в документации) и в панельке крона запустить её, что-то вроде /usr/bin/php /path/to/artisan mycommand .
Не в сети
Страницы 1