レンタルサーバーのCron設定についてですが、Hellow World! とメッセージを送るphpファイルをつくり、1時間おきに送信するように設定しました。ただひとつだけ問題がありまして、cronの設定だけで、phpファイルを実行したいのですが、そのphpファイルに直接アクセスしただけでもメール送信が実行されてしまうので、phpファイルをcron設定からの命令だけのみで実行されるようなことは可能でしょうか?
ファイル構成としては
public_html/
+ test.sh ←mail.phpを実行するためのシェルスクリプト
+ mail.php ← hello world とメッセージを送信するプログラム
※test.shの中に、php mail.php と書き加えて、レンタルサーバーのCron設定より、
0 */1 * * * /home/testsever/public_html/test.sh と指定して実行しています。
ただ、公開した www.testsever.com/mail.php に直接アクセスしても、プログラムが実行されるので困っています。
No.1ベストアンサー
- 回答日時:
CLIモードでy呼び出すのはやめてwgetなどクローラーから
公開サーバーから呼び出すようにして
mail.php?cron=1
のようにパラメーターまで見るようにすればよいでしょう
ありがとうございます。cronで wgetを使うようなやり方は知りませんでした。このあたりも詳しくないので調べて試して見たのですが、ちゃんと動いてくれました。
0 */1 * * * wget -O result.log "http://www.testsever.com/mail.php?cron=[適当]" のようにやって、 phpのほうは i条件分岐より、GETでパラメーターを受ける形で実行することができました。パラメーターによってメッセージの内容も変えることができるので、とてもおもしろいです。(自己満足ですが…笑)
No.3
- 回答日時:
レンタルサーバーがわかりませんが、httpアクセスできるフォルダと
httpアクセスできないフォルダがあるのではないでしょうか?
httpアクセスがどのユーザで実行されるのかわかりませんが、
適切なアクセス権を設定するか公開されないフォルダに配置すれば大丈夫かと思います。
またtest.shはCronからのみ実行したいのですよね?
public_htmlにおくものではないかとおもいます。
おそらくですが、public_htmlに置くとそのまま外部からアクセス可能な状態になるかと思われます。
返信ありがとうございます。おっしゃるとおり public_htmlの配下ではなく、同じ階層に設置したら上手くきました。当初は、うまく動かなかったので、無理なのかと思っていましたが、よくよく考えたら、パーミッションで実行権限を許可してなかっただけなので、解決してよかったです。
No.2
- 回答日時:
の続きなら、 外部に公開しなければ済むのでは。
このmail.phpはWeb関係の機能を使ってないし、HTML等を出力するわけでもありません。
phpコマンドを使って実行しているので、Webサーバーも使っていません。
そんなファイルを外部に公開しているのが間違いで、public_htmlに置く必要はありません。
ありがとうございます。確かにおっしゃるとおりでした。public_htmlと同階層においてもしっかりと実行されました。なんでもかんでもpublic_htmlの下に置くクセがありまして、いろいろ勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP アップロードファイルの数に応じてCSSを動的に変更したいのですが、方法がわかりません 3 2023/07/23 21:59
- Windows 10 指定したファイルを任意の範囲のディレクトリ内に上書き保存したい 1 2022/11/24 10:42
- サーバー 接続・ログインはできているのにメールが送信できない 2 2022/06/27 15:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php実行中に実行中のphpファイ...
-
PHPで実行中の行番号を取得したい
-
Prompt入力値をphp変数として取...
-
php/cgi , php(cgi)とは?
-
PHPにてC言語プログラムを呼び...
-
php copy がうまくいきません
-
require_onceが動いていない
-
ブラウザからexecコマンドを実...
-
[cakePHP]外部ファイルの実行方法
-
mysql複数レコードをまとめて削...
-
$argv[1]) && $argv[1]・同じ
-
毎週日曜22:00に処理を実行したい
-
MACのターミナルで「C:¥> c:¥...
-
PHPで外部プログラムのバックグ...
-
unix(freebsd)でmysqldumpコマ...
-
ヒアドキュメントの中で演算子...
-
system関数で一部のプログラム...
-
ファイルの実行権限について
-
あるphpから他のPHPプロ...
-
【BAT(バッチ)ファイル】Web...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql複数レコードをまとめて削...
-
PHPからバッチファイルの実行
-
php実行中に実行中のphpファイ...
-
Prompt入力値をphp変数として取...
-
Switch文における、returnとbre...
-
phpからエクセルのマクロを実行...
-
ヒアドキュメントの中で演算子...
-
copy() で属性保存
-
httpdのプロセスが自動で消えな...
-
別サーバのプログラムを起動
-
シェルスクリプトをPHPで動かそ...
-
【PHP】命令は記述順に処理...
-
MySQLでのdeadlockをPHPで検出...
-
Linux:PHPでTELNETによるSMTP...
-
サーバーモジュールとCGIプロセ...
-
ブラウザからexecコマンドを実...
-
phpスクリプトのみで定期実行
-
phpのshell_exec関数の動作に関...
-
PHPからlhaコマンドを使いたい
-
htmlでsubmitで指定したAction...
おすすめ情報