2

サーバーのshell_execオプションに問題があります。CPanelとPHPがインストールされたCentOS5.7を実行しています。

このコーディングでは、shell_execを使用してパラメーターをphpファイルに渡します。サンプルコードは以下のようになります。これをphpfileから呼び出しています(バックグラウンドプロセス)

vi test.php

<?php
shell_exec("php -f /home/nikesh/public_html/createtestfile.php 666 >/dev/null &");
?>

ここで、666はphpファイルに渡されるパラメーターです。

これは、テストサーバーでは正常に機能しており、ライブサーバーでは機能していません。

また、Linuxターミナルを使用してこれを実行すると、正常に動作し、出力が生成されます。

すなわち:php-ftest.php-は正常に動作しています。

しかし、この同じファイルをブラウザで実行しようとすると、機能しません。

http://example.com/test.php

ログファイルにエラーメッセージはなく、設定した権限は正しいです。

以前に同じ問題が発生した場合はお知らせください。この問題を解決するのを手伝ってください。

ありがとう、

ニケシュ


フォルダに完全な権限を与えましたが、機能しません。サーバーでセーフモードが無効になっています。

基本的なShell_exec関数がサーバーで機能しています。しかし、phpファイルにパラメーターを指定すると、ブラウザーを介して機能しなくなります。しかし、Linuxターミナルからは、その動作と出力の生成が行われます。

フォルダのアクセス許可とは関係なく、フォルダには書き込みアクセス許可があります。しかし、ブラウザを介して機能しない方法がいくつかあります。これを有効にする必要がある場合はお知らせください。またはサーバー/PHP設定を変更する必要がありますか?

4

2 に答える 2

0

Web サーバーの php.ini でセーフ モードが有効になっているか、disabled_functions ini 設定でこの関数が有効になっている可能性があります。

走る

<?php
phpinfo();
?>

ページからウェブサーバーを介してこれらの変数を検査する (無効になっていないと仮定)

于 2012-01-13T20:42:02.063 に答える
0

public_html フォルダーに 777 のアクセス許可を与えますchmod -R 777

そのようにしてみてください

<?php
shell_exec("php -f /home/nikesh/public_html/createtestfile.php 666 >/dev/null 2>&1");
?>
于 2012-01-13T21:14:13.563 に答える