PHPでWeb Serverアプリケーションを作っています。
PHPでUNIXシステムコマンドを実行することはできますでしょうか?
具体的に何をしたいかというと、動的に作られるページだとgoogle等に登録されるまで時間かかるので、
あるページに情報が登録されるたびに、wgetで動的ページをファイルに吐き出して、検索はgrepで引っ掛けて、内部的に処理したいと考えております。
(1)PHPで、wgetを呼び出して、ファイルに吐き出すこと
(2)Webページで、検索フィールドに文字を入力すると
入力文字がgrepの引数に渡されて、その結果をPHPで
受けること
を実現する方法はございますでしょうか。
No.2
- 回答日時:
あなたがサーバ管理者であるなら、全てのコマンドを利用する事が出来ます。
#1さんの指摘通り、セキュリティには万全の注意をする必要があります。
関数としては
exec、shell_exec
等のプログラム実行関数があります。
http://php.s3.to/man/ref.exec.html
ここで注意しなくてはいけないのは、この関数はPHPが動いている環境、おそらくapacheやnobodyの実行権限でされるという事です。今回の質問者さんのやりたいことですと、一般ユーザ権限で出来るwgetやgrepなので特に問題はありませんが、実行権限のないコマンド、例えばuseraddとか、passwdとかは、sodoを使って実行権限を委譲すれば、WEBからも実行可能です。sodoの使い方は長くなるので説明は省きます。
繰り返しますが、プログラム実行関数は非常に大きなセキュリティホールになる可能性がありますので、くれぐれも気をつけて下さい。
別にシェルスクリプトを作ってWEBディレクトリ以外に作成しておいて、実行権限をPHP(WEB、通常nobodyかapache)にしておいて、それを呼び出す、というのが比較的安全かもしれません。
なお、質問者さんのやりたい事ですと、curl関数でファイルに保存し、namazuモジュールで検索、という方法も考えられると思います。
curl関数
http://www.php.net/manual/ja/ref.curl.php
PHPでnamazu
http://suwako.plala.jp/pukiwiki/index.php?%5B%5B …
参考URL:http://taketan.mydns.jp/xoops/modules/bwiki/?PHP
ありがとうございます。
やはりセキュリティには気をつけないといけませんね。
namazuをPHPで呼び出すのを調べたのですが、
UNIX用のnamazu呼び出しモジュールが現在公開されていないようです。
No.1ベストアンサー
- 回答日時:
がると申します。
とりあえず、バッククォートまたは shell_exec という関数を用いることで、任意のコマンドが発行できます。
http://php.s3.to/man/function.shell-exec.html
あたりをご覧下さい。
なお、設計次第では「OSインジェクション」などのセキュリティホールを生みますので、どうぞご注意くださいませ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHP ページング データベース 1 2022/06/16 10:30
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- UNIX・Linux bashでブランク(空白)を検索文字列として指定する方法 1 2022/04/13 22:29
- MySQL 私の考えていることは ・mySQL ・PHP ・web制作 この三つのスキルがあれば実現しますか? 4 2023/08/19 02:48
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpからエクセルのマクロを実行...
-
サーバーモジュールとCGIプロセ...
-
PHPからexecを使ってGnuPGを実...
-
mysql複数レコードをまとめて削...
-
PHPからバッチファイルの実行
-
シェルスクリプトをPHPで動かそ...
-
httpdのプロセスが自動で消えな...
-
php実行中に実行中のphpファイ...
-
一時停止のコマンドはありますか?
-
phpスクリプトのみで定期実行
-
Switch文における、returnとbre...
-
PHPにてC言語プログラムを呼び...
-
system()関数の使い方について
-
query、prepare、executeの違い
-
ブラウザからexecコマンドを実...
-
こちらはただの直列処理ですか?
-
フォントの色を変えるには?
-
form actionで二つ送信先を指定...
-
onedrive にexcelファイルをア...
-
Apacheでhttp://localhost/が表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql複数レコードをまとめて削...
-
php5-extensions を make でき...
-
php実行中に実行中のphpファイ...
-
ヒアドキュメントの中で演算子...
-
シェルスクリプトをPHPで動かそ...
-
phpからエクセルのマクロを実行...
-
PHPからバッチファイルの実行
-
query、prepare、executeの違い
-
PHPからCプログラムを実行して...
-
Switch文における、returnとbre...
-
PHPからlhaコマンドを使いたい
-
あるphpから他のPHPプロ...
-
CRON でPHPスクリプトをGET変数...
-
JSのWINOW.CONFI...
-
PHPの中間コード
-
別サーバのプログラムを起動
-
copy() で属性保存
-
phpスクリプトのみで定期実行
-
PHPで、C#のプログラムを実行す...
-
PHPからPostgreSQLのダンプを実行
おすすめ情報