質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2613閲覧

PHPのshell_execの結果がApacheのerror_logに記録されてしまう

snic518

総合スコア39

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/03/16 03:07

編集2016/03/16 03:14

検索はしたものの見つからなかったので質問させていただきます。

■環境
・CentOS 7
・Apache 2.4.6
・PHP 7.0.3

PHPスクリプトからshell_execをすると、コマンドが正しく処理されているものであっても、シェルへの出力がApacheのエラーログに記録されてしまいます。

具体的には、OptiPNGの画像圧縮をPHPからコマンドを叩いて実行しています。

PHP

1shell_exec('optipng /path/to/sample.png -nc');

これを実行すると、/var/log/httpd/error_log に下記が出力されてしまいます。

apache

1** Processing: /path/to/sample.png 274x74 pixels, 4x8 bits/pixel, RGB+alpha 3Input IDAT size = 1191 bytes 4Input file size = 1269 bytes 5 6Trying: 7 zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 1187 8 zc = 9 zm = 8 zs = 1 f = 0 IDAT size = 1186 9 zc = 1 zm = 8 zs = 2 f = 0^M zc = 9 zm = 8 zs = 3 f = 0 IDAT size = 1185 10 zc = 9 zm = 8 zs = 0 f = 5^M zc = 9 zm = 8 zs = 1 f = 5^M zc = 1 zm = 8 zs = 2 f = 5^M zc = 9 zm = 8 zs = 3 f = 5^M ^M 11Selecting parameters: 12 zc = 9 zm = 8 zs = 3 f = 0 IDAT size = 1185 13 14Output IDAT size = 1185 bytes (6 bytes decrease) 15Output file size = 1263 bytes (6 bytes = 0.47% decrease) 16

ちなみに、Apacheの設定上、LogLevelはwarnです。

OptiPNGは正常に実行完了しているので、shell_execが失敗しているわけでは無いと思うのですが、何故エラーログにシェルへの出力が記録されてしまうのでしょうか。

どなたかご存知であれば、教えていただきたく思います。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

−quiet か −silent で OptiPNG のログ出力を抑制してみたらどうですか

投稿2016/03/16 03:25

HiroshiWatanabe

総合スコア2160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

snic518

2016/03/16 03:34

上手く行きました!ありがとうございます。 シェルの出力がエラーログに出てしまう点についての理由はわかりませんが、挙動としてはこれで何の問題もないので助かりました。
guest

0

コマンドが標準エラー出力に出す物が、そのままエラーログに出ます。
不要なら、リダイレクトで捨てればいいかと思います。
2>/dev/nullとか。

投稿2016/03/16 06:48

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問