複雑な計算を実行して結果を取得するために統計ソフトウェア R を呼び出す PHP の技術的実装

Webプログラム開発の主な言語としてphpが広く使われています。 R は統計ソフトウェアとして、数理アルゴリズムの実装における操作性が優れています。最近、仕事の都合上、一部の Web アプリケーションデータに対して複雑な数学的計算を実行する必要があります。しかし、PHP 自体はいくつかの数学的アルゴリズムを記述することができますが、数十行のコードの効率性を満たすことはまだ困難です。 Rの関数に相当するもので、研究の結果、PHPのインスタントアクセスでRを呼び出して計算演算を行い、計算結果を直接読み込んでWebページに表示することが可能になりました。一般的な考え方は次のとおりです。

重要な点は、php が R プログラムを起動して実行し、計算パラメーターを R に渡し、結果を取得することです。

PHP で R をアクティブにするには、組み込み関数 exec を使用します。これにより、オペレーティング システムの実行ウィンドウで実行されるコマンドをここで実行できます (以下は Windows 環境を指します)。

.user.ini ファイルを使用して open_basedir を変更し、PHP システムのセキュリティを強化します

.user.ini は、Web サイトのフォルダー パス アドレスを含む lnmp ファイルであり、その目的は、ある意味で発生する可能性のあるセキュリティ上の問題を確実に防止することです。不明な PHP コードによる。

設定はルート ディレクトリ .user.ini に配置されます。

open_basedir=/プロジェクトパス/:/tmp/:/proc/     

例:

open_basedir=/www/www.a.com/:/tmp/:/proc/

上記のパスはスラッシュで終わる必要があることに注意してください。スラッシュで終わっていない場合は、対応する名前で始まる一連のディレクトリを表します。例: /user は /user(*)/ を表すため、スラッシュの使用に注意してください。

同時に、ファイルが直接操作によって変更されないように、ファイルを変更するためのアクセス許可をルート ディレクトリ コードのアクセス許可よりも高く設定するように注意してください。


PHPページにHTTP認証コードを追加する

// Digest HTTP Authentication
// To enable, add user: "name" => "password".
//$users = array();
$users = array(""=>"");

// If auth is enabled:
if (!empty($users)) {
    if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
        header('HTTP/1.1 401 Unauthorized');
        header('WWW-Authenticate: Digest realm="' . $realm . '",qop="auth",nonce="' . uniqid() . '",opaque="' . md5($realm) .

シェル環境でphpプログラムを定期的に実行するcronでの相対参照の問題

Linux システムでは、cron を使用して PHP プログラムを定期的に実行するのが便利な方法です。最近、PHP スクリプトをテストし、ブラウザーがすべてを正常に呼び出してデバッグしました。そのため、シェルのタイミングを設定しましたが、翌日そのことが分かりました。データベースには何も保存されていませんでした... ...エラーログを見ると、PHP の特定の行にエラーがあるとのことで、この行のコードを確認したところ、このスクリプトが相対参照であることがわかりました。以前も定期的に実行していましたが、実行したプログラムと参照先のファイルは同じフォルダにあり、前日にディレクトリを計画して参照を変更しました。 ../filename の絶対参照 予想外に、これが問題でした。このエラーは、php サーバーのディレクトリに解析されたことを示していました。 。

解決:

ディレクトリを切り替えるための 2 行のコードを追加します。

PHP を購読