Apache + mod_phpの環境でコマンド検索パスを追加したい

公開

覚え書きです。WordPressを使用していて、エックスサーバービジネスなどのレンタルサーバーだとPDFをアップロードした時に自動でサムネイルが生成されるのですが、Homebrewを使用して構築したMacのローカルだとサムネイルが生成されませんでした。PHPのImagickモジュールとGhostScriptはインストール済ですが、WordPressのサイトヘルス情報を見ると「Ghostscript バージョン」の所に正しくバージョンが表示されていませんでした。

コードを確認するとexec( 'gs --version' );のように書かれており、どうやらパスが通っていない状況です。

// Get Ghostscript information, if available.
if ( function_exists( 'exec' ) ) {
    $gs = exec( 'gs --version' );

    if ( empty( $gs ) ) {
        $gs       = $not_available;
        $gs_debug = 'not available';
    } else {
        $gs_debug = $gs;
    }
} else {
    $gs       = __( 'Unable to determine if Ghostscript is installed' );
    $gs_debug = 'unknown';
}

解決法を探ると、「php - How do I add paths to the Apache PATH variable? - Stack Overflow」のコメントに.plistを編集してパスを追加する方法が見つかりました。Homebrewなので、/usr/local/Cellar/httpd/2.4.41_1/homebrew.mxcl.httpd.plistに以下を追記し、コマンド検索パスに/usr/local/binを追加したところ、問題なく動作するようになりました。

<key>EnvironmentVariables</key>
<dict>
    <key>PATH</key>
    <string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin</string>
</dict>

print_r( exec( 'echo $PATH' ) );でも変更が確認できました。