LinuxでWebアプリケーションをどこに配置する必要がありますか?

LinuxでWebアプリケーションをどこに配置する必要がありますか?

以下は、Linuxディストリビューションのファイル構造の例です。 https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-filesystem-fhs.html

各ディレクトリには特定の目的があり、Webアプリケーションはフォルダにカプセル化されるのではなく、異なるディレクトリにデプロイする必要があるようです。

私のWebアプリケーションの初期構造は次のとおりです。

/home/username/appname/appsource...
/home/username/appname/appconfiguration...
/home/username/appname/apptempdata...
/home/username/appname/applogdata...
/home/username/appname/appdata...
/home/username/public_html/appname/appsite/...

アプリケーションは、Linuxシステム内の最小ディレクトリにパッケージ化されています。 1 つは Web ソース/Web サイト (ページ、JavaScript、CSS、Web サイトイメージ) 用、もう 1 つのディレクトリ (/home/username/appname/.. .) はアプリケーションの残りの部分です。プログラムファイル。

最初は、Web ツールを使って Web アプリケーションの開発が開始されただけなので、ユーザーフォルダにアプリケーションが配置されていましたが、今では Web ツールとサーバーのユーザーとアプリケーションを分離してインストール方法を作成する必要があります (最終的には、Linux システムでの権限これが許可されると、特定のLinuxサーバー上の他の管理者ユーザーがアプリケーションファイルを交互に管理します。

私の研究によると(参照FHS仕様)、私が理解したように、アプリケーションファイルは次のように再配布する必要があります。

/usr/lib/appname/appsource...
/etc/appname/appconfiguration...
/var/www/html/appname/appsite...
/var/tmp/appname/apptempdata...
/var/log/appname/applogdata...
/var/lib/appname/appdata...

今すぐ作業するには、/var/libおよび/var/www/htmlディレクトリにすべてを入れます。

/var/lib/appname/appsource...
/var/lib/appname/appconfiguration...
/var/www/html/appname/appsite...
/var/lib/appname/apptempdata...
/var/lib/appname/applogdata...
/var/lib/appname/appdata...

これをする必要がありますか?そうでない場合は、主な理由と、サンプルファイルをどのように配置するかを説明してください。

答え1

私はこのトピックの専門家ではありませんが、FHS仕様を読んで考えた元のソリューションは実際には正確または非常に似ているようです。そして、さらに以下を発見しました。記事、RPMの出現により、/optディレクトリはもはや必要ではないという記事では、これらのディレクトリはもはや使用されなくなり、システム管理者とユーザーの生活を容易にしないと言います。/usr/local

私のすべてのWebアプリケーションはPHPで書かれています。つまり、私のアプリケーションにはバイナリが含まれていないので、すべてのアプリケーションを/usr/lib。私のアプリにはドキュメントやマニュアルが(まだ)含まれていないため、どちらも使用しません。/usr/bin/usr/sbin/usr/share/doc/usr/share/man

/var/wwwこれはFHSの一部ではないため、/var/www/html/appsiteWebサーバーアプリケーション(Apache、Nginxなど)の設定方法によって他の場所に配置できるファイルです。

一方、OPの第2のアプローチは怠惰であり、実際にFHSに準拠しようとしないので廃棄されます。

だから私の結論は次のとおりです。

/usr/lib/appname/appsource...
/etc/appname/appconfiguration...
/var/www/html/appname/appsite...
/var/tmp/appname/apptempdata...
/var/log/appname/applogdata...
/var/lib/appname/appdata...

修正する:

また、多くのパブリックファイルをソースコードフォルダ内のパブリックフォルダに配置するのが合理的です。その多くはスクリプト(html、js、cssも含む)なので、ソースコードの一部であり、残りのパブリックファイルは他のパブリックフォルダにあります。

/usr/lib/appname/appsourceprivatefiles... (ej: php classes and functions)
/usr/lib/appname/www/appsourcepublicfiles... (ej: php scripts)
/usr/share/appname/appprivateresources... (images, raw text, xml resources, json resources, audio...)
/usr/share/appname/www/apppublicresources... (images, raw text, xml resources, json resources, audio...)
/etc/appname/appconfiguration...
/var/tmp/appname/apptempdata...
/var/log/appname/applogdata...
/var/lib/appname/appdata...

ApacheなどのWebサーバーアプリケーションは、wwwルートをマッピングして公開するように設定できます。

関連情報