
以下は、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/appsite
Webサーバーアプリケーション(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ルートをマッピングして公開するように設定できます。