Я поддерживаю некоторые веб-приложения CGI, которые я переношу на новый веб-сервер Linux, на котором у меня есть учетная запись, отличная от admin, например www_maintainer.
Итак, я устанавливаю CGI приложений внутри /home/www_maintainer/
, и я хотел бы воспользоваться возможностью, чтобы очистить вещи, в частности, можно было бы лучше организовать каталог cgi-bin/
; Я хотел бы узнать о стандарте лучшей практики для этого.Стандарты для инфраструктуры в каталоге cgi-bin
Например, нормально ли иметь поддиры bin/
и lib/
внутри cgi-bin/
, с бинарниками и библиотеками вспомогательных вещей?
Я опишу конкретный пример, а именно приложение математической и графической обработки данных gnuplot и его зависимости (libfontconfig, libpng, libgd, libjpeg, libreadline.so, ...).
Python может быть другим примером (дистрибутив обеспечивает 2.4, но мне нужно> 2.6), однако я надеюсь, что администратор может установить 2.6 из пакета, поэтому мне не нужно беспокоиться об этом.
Новый веб-сервер имеет Scientific Linux (SL), который основан на Redhat RHEL. К сожалению, хранилище дистрибутивов для нашей текущей версии SL не предоставляет требуемую версию gnuplot 4.4, поэтому она не может быть установлена в обычном месте, например /usr/bin/
, поэтому я мог бы ее установить и установить и ее зависимости в несистемном расположении, например cgi-bin/tools/
. Фактические веб-приложения CGI представляют собой двоичные исполняемые файлы, запущенные сценариями launch1.sh
или 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
, e.g.in директории /home/www_maintainer/bin/
и /home/www_maintainer/lib/
и настроить веб-сервер, чтобы разрешить это?
Большое спасибо! Я отредактировал вопрос, включил конкретный пример проблемы и иллюстрацию структуры каталогов веб-сервера. – user1069609
Помогла ли это? Осталось всего пять часов, прежде чем ваша щедрость попадет в корзину ... –
Абсолютно. Теперь вы должны получить награду, так как я принял ваш ответ. – user1069609