#perl
#perl
Вопрос:
В течение многих лет я использовал следующее в верхней части своих сценариев:
use lib '/var/www/vhosts/example.com/demo.example.com/cgi-bin/library';
Это работает нормально, когда библиотека находится в том же доменном пространстве, что и вызывающий скрипт.
Тем не менее, я хочу позвонить из централизованной библиотеки, поэтому у меня будет только одно место для установки учетных данных БД.
Итак, если я настрою эту строку для вызова из другой учетной записи на том же сервере, она не сможет найти библиотеку.
use lib '/var/www/vhosts/example2.com/demo.example2.com/cgi-bin/library';
Запуск на plesk, если это может иметь значение. Раньше запускался на cPanel, и у меня не было проблем.
Я был бы признателен за указатель, уже прочитав некоторые документы, и я в замешательстве.
Комментарии:
1. Не следует исключать возможность того, что каждый виртуальный сервер работает в собственной среде chroot .
Ответ №1:
Только кто-то, имеющий доступ к конфигурации вашего веб-сервера, может ответить на этот вопрос наверняка, но я бы предположил, что каждый из ваших виртуальных хостов работает от имени другого пользователя, и пользователи могут читать файлы только из своего собственного веб-пространства.
Этот подход не сработает. Если вы хотите иметь централизованную библиотеку модулей, то либо установите нужные модули в библиотеку системных модулей (т. Е. Где cpan
они будут установлены по умолчанию), либо создайте свою собственную новую централизованную библиотеку где-нибудь, что не находится ни в одном из каталогов vhost (возможно, в /opt
).
Однако стоит отметить, что лучшие практики развертывания приложений движутся в совершенно противоположном направлении. Обычно считается хорошей идеей, чтобы каждое приложение имело свой собственный набор зависимостей, установленных в его собственной библиотеке модулей. Использование cpanfile
для записи точных версий используемых вами зависимостей упрощает задачу.
Комментарии:
1. Спасибо. Я ценю замечание о наилучшей практике, а также о том, что универсальный подход также имеет ограничения. Все мои клиенты используют одну и ту же базу данных, и управление учетными данными для нее в одном файле значительно упростит развертывание любых изменений. Размышляю дальше.