проблема с библиотекой perl — не удается найти каталог библиотеки

#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. Спасибо. Я ценю замечание о наилучшей практике, а также о том, что универсальный подход также имеет ограничения. Все мои клиенты используют одну и ту же базу данных, и управление учетными данными для нее в одном файле значительно упростит развертывание любых изменений. Размышляю дальше.