Codeigniter is_cli_request() stops cpanel cron job from working

后端 未结 2 1572
自闭症患者
自闭症患者 2021-01-25 10:34

On my website I use cron job on cpanel.

I have this code below in the construct area of controller but it stops the cpanel cron job from working.

if (!$t         


        
相关标签:
2条回答
  • 2021-01-25 11:25

    To prevent direct access from a webpage:

    you need to add this line

    /* deny direct call from web browser */
    if (isset($_SERVER['REMOTE_ADDR'])) die('Permission denied.');
    

    with CI 3.0 you can

    Make your cron-jobs inaccessible from being loaded in the URL by checking the return value of is_cli().

    is_cli() returns TRUE if the application is run through the command line and FALSE if not.

    as by my comment, the cpanel cron job pattern is:

    /usr/bin/php /var/www/website/public_html/cli.php controller method

    ,

    see docs here

    related post

    0 讨论(0)
  • 2021-01-25 11:32

    Solved now. CodeIgniter Cron Job through Cpanel

    It seem to be a issue from path I had used. On cpanel before I had

    php --silent http://mysubdomain.mydomain.co.nz/cron/message
    

    That was not working proper if I wanted to use this code to prevent access

    if (!$this->input->is_cli_request()) {
       show_error('Direct access is not allowed');
    }
    

    So now I changed to

    php-cli /home/myusername/public_html/mysubdomain/index.php Cron message
    

    All works fine now

    0 讨论(0)
提交回复
热议问题