そこで、Apache、PHP、MySQLを使用して共有ホスティングを設定しています。最大の疑問符は、PHPをどのように使用するかです。これは、PHPを安全に構成する方法が無数にあるためです。
計画は次のとおりです。
suexecとsuphpを見ましたが、非常に遅いようです。
http://blog.stuartherbert.com/php/2007/12/18/using-suexec-to-secure-a-shared-server/http://blog.stuartherbert .com/php/2008/01/18/using-suphp-to-secure-a-shared-server /
だから私はもう少し調べて、他のいくつかの解決策を見つけました:
Mod_fastcgi + php-fpmを使用して簡単なセットアップを試しましたが、動作しているようで、正しいユーザーとして実行されているなどですが、ディレクトリの移動に対する保護はまだopen_basedir(?)です。
そのための1つの解決策は、php-fpmのchrootオプションを使用することですが、それは次のような他の多くの問題を引き起こします。
チップ?
Fpmプロジェクトは、共有ホスティングソリューションの展開を非常に簡単に可能にし、ユーザーをchrootすることさえ可能にする素晴らしい仕事をしました(ただし、Apacheには、シンボリックリンクによって解決できる問題がいくつかあります。インターネット上には、それに関するチュートリアルがたくさんあります)。
php5-fpmを含むソリューションにはmod_fastcgiが必要であり、ホスティング業者がユーザーごとの構成(例としてmemory_limit、max_execution_time ...)を行えるようにします。私が確認したところ、かなり安定しています。 ;)
メールの解決と使用に関する問題については、chrootされた環境にライブラリを追加し、必要な実行可能ファイル(sendmailなど)を追加することで簡単に解決できます。
私が見つけて解決している問題は、php-fpmによってphpスクリプトに渡される間違った変数に関するものです(chrootした後、php-fpmは外部ディレクトリを削除し、スクリプトのみに渡す必要がありますchroot内のもの...しかし、そうではなく、mod_fastcgiとphp-fpmの間のプロキシのような何か他のものがそれを処理する必要があります)。
私が書いている時点のphp-fpmは変数を修正できないため、php-fpmとApacheの間で変数を自動的に修正するfcgiプロキシを使用して問題を解決することができました。
この質問に答えて以来、CloudLinuxは共有ホスティングスペースで実際に主流のLinuxディストリビューションになりました。いくつかの変更はありますが、アップストリームとしてRHEL/CentOSに基づいています。詳細は次のとおりです。