![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
cronでPHPファイルを定期動作させるようにしています。下記はそのPHPファイルの内容です。
上部の「メールの送信」は時間通りされるのですが、下部の関数「fsockopenやfputs」あたりが動作していないようなのです。
このPHPファイルをURL打ち込みしてブラウザに表示すると、目的とおりの動作をしますのでソースのミスではないようです。cronでfsockopenは動作しないとか・・あるのでしょうか。ちなみにfsockopenで行いたいのは指定のURLにパラメーターを送る動作です。
//----メールの送信-----
//言語の設定
mb_language(\"japanese\");
mb_internal_encoding(\"Shift_JIS\");
//登録メールの送信
$to=\"aaaa@aaa.jp\";
$subject=\"時間動作確認\";
$message=\"動いてますよ!\";
$header=\"from:info@aaa.jp\";
$send_mail=mb_send_mail(\"$to\",\"$subject\",\"$message\",\"$header\");
( 中 略 )
//クエリメソッドを作成
$url = \"http://xxx.jp/aaa/bbb.php
//リクエストラインを作成
$request = GET.\" \".$url.\" HTTP/1.0\\r\\n\";
$request .= \"Host: \".$URL[\'host\'].\"\\r\\n\";
$request .= \"User-Agent: PHP/\".phpversion().\"\\r\\n\";
$request .= \"\\r\\n\";
//WEBサーバへ接続
$fp = fsockopen(\"xxx.jp\", 80);
//接続に失敗した時の処理
if (!$fp) {
die(\"ERROR\\n\");
}
//要求データ送信
fputs($fp, $request);
//接続を終了
fclose($fp);
説明が下手ですいません。
どうしたら指定のURLにパラメーターを送れるのでしょうか・・。
どなたかお助けいただけませんでしょうか。
お願いします。。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
単なる推測ですが、、、
>このPHPファイルをURL打ち込みしてブラウザに表示
>すると、目的とおりの動作をしますのでソースのミス
>ではないようです。
ここを出発点にすると、Apacheで動作している時と、
Cronで動作している時の権限が違うため動作しないのではないかと、考えます。
(または、パーミッション?)
対応は、動かない関数について、
プロバイダーに苦情を言う。
(この回等については、私が問題を勘違いしている可能性が多々あります。)
No.3
- 回答日時:
こんにちは。
えっと「一部動作していない」の一部以外は動作しているということでしょうか。
いきなりメール。というより簡単なものからやっていきましょう。
で、以下の点が出来るか教えてください。
・TelnetかSSHでサーバに接続出来ませんか?
・PHPではなくて、シェルで出来ませんか?
・PHPへのパスはあっていますか?
・パーミッションが実行可能になっていますか?
・<? ?>で囲っているか(<?PHPも)
ブラウザがで確認したい。と、いうのなら以下の方法の方が正確でしょう。
--- URLアクセスして確認するプログラム /home/tarou/public_html/url.php
<?
System("/usr/bin/php /home/usr/test.php" , $st);
print"\n<BR>";
if ( $st == 0 )
print "成功";
else
print "失敗";
?>
--- cron で実行させたいプログラム /home/usr/test.php -------------
--- FTPでアップしたあと実行権限をつけること!
<?
print "aaaaaaaaaa";
?>
--------------------------------------------------------------------
で、ブラウザで
http://hogehoge.co.jp/~tarou/url.php
とアクセスして
aaaaaaaaa
成功
と出力されれば、今度は /home/usr/test.php を cronで登録したいプログラムに変更してやってみてください。
失敗とでた場合は
"/usr/bin/php /home/usr/test.php" のPHPへのパスの部分を変更してみてください。
※注意 cron は失敗するとエラーがメールで管理人のところに行くような設定になっている可能性があります。1分おきはあくまで実験時の動作確認としてやってくださいね。
No.2
- 回答日時:
>#!/usr/local/bin/php(パス)を入れる必要はあるものなのでしょうか。
。cronのスケジュール登録をどのようにされているんですか?
php -f ファイル名
なら必要がありません。
phpのソース自体に実行権を与えて登録している場合には記述しなければなりません。
追伸:
気にされないでと書かれているのですが、
他の方の投稿では\の追加されないので
とても気になります。
この回答への補足
kotaronさまありがとうございます。
* * * * * -q /usr/local/bin/php /home/aaa/public_html/bbb/ccc.php
で1分おきの動作命令にしています。
ちなみにCRONはレンタルサーバのきまりでファイルに直接書き込みしています。
ヒントになるようなご意見でもかまいませんので、お願いいたします。。いきずまりました。
No.1
- 回答日時:
気になる点はいくつかありますが、
その前に、ソースがaddslashesされているはどうしてですか?
このままということはないと思いますが、
投稿用に\を付加したんでしょうか?
この回答への補足
ちなみに今回の場合
PHPファイルの最初に、
#!/usr/local/bin/php(パス)
を入れる必要はあるものなのでしょうか。。
脳がフリーズしてます。
?? たしかに・・。PHPファイルには書いてないのにここへの投稿には¥が入ってますね。。入れた覚えがないのですが。すいません、お気になさらないで下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- Visual Basic(VBA) エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法 8 2022/08/08 07:50
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- C言語・C++・C# condaコマンドに対応したプロキシ設定が思うようにならないようです。 2 2022/04/11 17:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysql複数レコードをまとめて削...
-
Switch文における、returnとbre...
-
hudson×phingの連携
-
PHPでMysqlにデータがあるかど...
-
PHPからシェルコマンドの実行
-
PHPからバッチファイルの実行
-
PHPスクリプトからサービスの再...
-
php実行中に実行中のphpファイ...
-
phpからエクセルのマクロを実行...
-
PHPファイルをcronで実行す...
-
フォントの色を変えるには?
-
【BAT(バッチ)ファイル】Web...
-
PHP8を使うと、大量のWarningが...
-
バッチを用いたフォルダの自動移動
-
ファイル一覧を表示しその画面...
-
文字化けについて
-
PHPのif文でその処理を途中で抜...
-
eclipseのエラーの意味
-
透過PNGが透過されない!!
-
空メールの作り方教えて欲しい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql複数レコードをまとめて削...
-
php実行中に実行中のphpファイ...
-
phpからエクセルのマクロを実行...
-
ヒアドキュメントの中で演算子...
-
PHPからバッチファイルの実行
-
PHPのコマンドをnobodyオーナで...
-
copy() で属性保存
-
$argv[1]) && $argv[1]・同じ
-
PHPで外部プログラムのバックグ...
-
Prompt入力値をphp変数として取...
-
PHPでサーバーにインストールさ...
-
require_onceが動いていない
-
現在、レンタルサーバ(コアサー...
-
PHPで、C#のプログラムを実行す...
-
query、prepare、executeの違い
-
phpスクリプトのみで定期実行
-
【PHP】命令は記述順に処理...
-
PHP(Windows)でコマンド実行
-
PHPでコマンドプロンプトを実行...
-
IIS + PHP からのWindowsコマン...
おすすめ情報