私は管理者以外のアカウントを持つ新しい Linux Web サーバーに移行している CGI Web アプリケーションをいくつか維持していwww_maintainer.
ます/home/www_maintainer/
。物事をクリーンアップするには、特にcgi-bin/
ディレクトリをより適切に編成できます。そのためのベストプラクティスの基準について学びたいと思います。
たとえば、補助的なもののバイナリとライブラリを使用して、内部にbin/
サブlib/
ディレクトリが呼び出されるのは正常ですか?cgi-bin/
具体的な例として、数学およびデータ プロット アプリケーションgnuplotとその依存関係 (libfontconfig、libpng、libgd、libjpeg、libreadline.so など) について説明します。
Python は別の例かもしれません (ディストリビューションでは 2.4 が提供されていますが、2.6 以上が必要です)、管理者がパッケージから 2.6 をインストールできるので、心配する必要はありません。
新しい Web サーバーには、Redhat RHEL に基づくScientific Linux (SL) が搭載されています。残念ながら、現在の SL バージョンのディストリビューション リポジトリは、必要な gnuplot バージョン 4.4 を提供していないため、 のような通常の場所にインストールすることはできませ/usr/bin/
んcgi-bin/tools/
。launch1.sh
実際の CGI Web アプリケーションは、スクリプトまたはによって起動されるバイナリ実行可能ファイルlaunch2.sh
です。
これは、ディレクトリ ツリーとそこにあるいくつかのファイルの図です (もちろん、多くのディレクトリとファイルは省略されています)。
cd /home/www_maintainer/www_root/
|-- html/
| |-- index.html
| `-- info.html
|-- cgi-bin/
| |-- gen/
| | |-- status.sh*
| | `-- sybase/
| | `-- DataAccess64/
| | `-- ODBC/
| | |-- lib/
| | |-- samples/
| | `-- spl/
| |-- exe1/
| | `-- launch1.sh*
| |-- exe2/
| | `-- launch2.sh*
| |-- javascript/
| | `-- check-input.js
| |-- scripts/
| | |-- decode.pl*
| | |-- generate-random-string.bash*
| | |-- gnuplot -> ../tools
| | `-- upload.php*
| |-- tools
| | |-- bin/
| | | |-- gnuplot*
| | | |-- python -> python2.6
| | | |-- python-config -> python2.6-config
| | | |-- python2.6*
| | | |-- python2.6-config*
| | | `-- xmlwf*
| | |-- etc
| | | `-- fonts/
| | |-- include/
| | |-- info/
| | |-- lib/
| | | |-- libfontconfig.so
| | | |-- libpdf.so
| | | |-- libreadline.so
| | | |-- libpng15.so
| | | |-- libpng15.so
| | | |-- pkgconfig/
| | | |-- libpng.so
| | | |-- libjpeg.so
| | | |-- libreadline.so
| | |-- libexec/
| | |-- man/
| | `-- share/
|-- tests/
| `-- results/
| `-- info/
| |-- readme.pdf
| `-- readme.html
|-- fonts/
|-- index.html -> html/index.html
|-- log/
| `-- log.txt
`-- tmp -> /tmp/
の外部www_root
、たとえばディレクトリ/home/www_maintainer/bin/
に インストールし、/home/www_maintainer/lib/
それを許可するように Web サーバーを構成する方がよいでしょうか?