4

CodeIgniterを使用してファイルに対してcronジョブを実行する必要がありますが、CodeIgniterではファイルを直接実行できません。すなわち

次の方法でブラウザでコントローラを実行できます。

api.example.com/index.php/cron

私のホスティングではPHPファイルしか実行できませんが、wgetやcurlを実行できないため、コマンドラインから実行することはできません。

CodeIgniterに以下のようなファイルを実行させるにはどうすればよいですか?

api.example.com/index.php/application/controller/cron.php

ホスティングでそのファイルを呼び出すことができます。

更新しました

私は私のために働いたオプションのどれも更新しないだろうと思った私はホスティングを変更して次のことをすることになった。

http://devsforrest.com/116/setup-a-cronjob-to-run-every-5-minute-on-media-temple

4

7 に答える 7

2

これがあなたが探しているものなのか、それとも私が間違って答えているのかはわかりませんが、CodeIgniterでCRONジョブを実行する方法は、単にcronとしてこれを実行することです。

php /path/to/index.php controller function

次に、コントローラーの上部にこれがあります

if( PHP_SAPI != 'cli') exit('My Custom Error Message');
于 2012-07-13T03:45:38.093 に答える
1

wgetコマンドをURLと一緒に使用して、codeigniterファイルでcronを実行します。この場合は次のようになります。

wget api.example.com/index.php/controller/function

また、ファイルのパスを使用しないように注意してください。関数を呼び出すURLを使用してください。

于 2012-07-14T08:50:01.720 に答える
0
class Cron extends CI_Controller {
    function index($dummy) {

        // Crony command

    }
}

ライン:api.example.com/index.php/cron/index/dummy.php

基本的に与えられた例では、3番目のURIセグメントを使用して、.php使用しない値で終わる値を渡します。

または、古き良きルーティングを使用できます

于 2012-07-12T20:07:40.957 に答える
0

.htaccessを使用して、要求されたURLに.phpを追加します。以下のコードはテストしていませんが、お役に立てば幸いです。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [R=301]
于 2012-07-12T20:09:09.583 に答える
0

CURLを使用して、URLでcronjobを呼び出します。ホスティングでCURLが有効になっている場合は、それが適切な選択になります。

Webサイトのルートフォルダーにcronjob.phpという名前のPHPファイルを作成し、次のスクリプトをファイルに追加します。

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.mysite.com/index.php/controller/method");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
?>

cronjobでphpファイルcronjob.phpを呼び出すと、機能するはずです。

于 2012-07-13T06:31:31.130 に答える
0

単に

/usr/local/bin/php /home/cpanel_username/public_html/sub_folder/index.php param1 param2 optional_param3 optional_param3

ここ

cpanel_username-ドメインのユーザー名cpanel、

sub_folder(オプション)-Webアプリケーションが任意のフォルダーの場合

Param(parameters)-コントローラーとそのメソッド(関数)を参照します

于 2018-12-13T17:50:53.023 に答える
0

GoDaddyホスティング用のCodeigniterAPICronjob

CodeIgnitercronジョブAPIベースの毎日10時

0   10  *   *   *   /usr/local/bin/php public_html/folder_name/index.php controller_name funcation_name

私にとってはうまく働いています

于 2021-12-25T17:17:27.673 に答える