install_driver (mysql) не удалось: не удается найти DBD / mysql.pm

Вопрос не повторяется, сначала прочтите проблему, с которой я столкнулся, затем отметьте ее, если она повторяется, будет полезно, если повторение моего вопроса поможет мне в решении моей проблемы, поскольку я прошел через все ссылки и решения, упомянутые в других похожие вопросы и проблемы, но не повезло.

Я пытаюсь настроить redmine git на моем экземпляре ec2-aws с помощью ссылки ниже

https://docs.bitnami.com/installer/how-to/configure-advanced-integration-git-redmine/

Я могу правильно подключить проекты Redmine с моими репозиториями git, но как только я дойду до третьего шага по указанной выше ссылке, у меня возникнет проблема, как показано ниже

шаг: - 3 Настройка контроля доступа Git

Ниже приведена ошибка при попытке защитить мой репозиторий git с помощью учетных данных пользователя Redmine.

[Чт, 21 фев, 17:46: 26.918619 2019] [perl: error] [pid 26820: tid 139790464616192] [client 127.0.0.1:50156] install_driver (mysql) failed: не удалось найти DBD / mysql.pm в @INC ( @INC содержит: /opt/bitnami/git/lib/site_perl/5.16.3 /opt/bitnami/perl/lib/5.16.3/x86_64-linux-thread-multi /opt/bitnami/perl/lib/5.16.3 /opt/bitnami/perl/lib/site_perl/5.16.3/x86_64-linux-thread-multi /opt/bitnami/perl/lib/site_perl/5.16.3 /opt/bitnami/perl/lib/5.16.3/x86_64 -linux-thread-multi /opt/bitnami/perl/lib/site_perl/5.16.3/x86_64-linux-thread-multi /bitnami/ruby23stack-linux-x64/output/perl/lib/site_perl/5.16.3/x86_64 -linux-thread-multi /bitnami/ruby23stack-linux-x64/output/perl/lib/site_perl/5.16.3 /bitnami/ruby23stack-linux-x64/output/perl/lib/5.16.3/x86_64-linux-thread -multi /bitnami/ruby23stack-linux-x64/output/perl/lib/5.16.3. / opt / bitnami / apache2) в строке 3 (eval 6) \ nВозможно, Perl-модуль DBD :: mysql не был полностью установлен, \ или возможно использование заглавных букв mysql неверно. \ nДоступные драйверы: DBM, ExampleP, File, Gofer, Proxy, Sponge. \ n по адресу /opt/bitnami/perl/lib/site_perl/5.16.3/x86_64-linux-thread-multi/Apache/Redmine .pm строка 557. \ n Стандартный вывод приложения 26921:

Без третьего шага мои репозитории являются общедоступными, любой, кто знает URL-адрес репозитория, может клонировать мои репозитории или выполнять другие операции с моими репозиториями git. Итак, третий шаг предназначен для обеспечения безопасности в соответствии с приведенной выше ссылкой на документ, и это важно для меня.

Как только я добавляю строку ниже в конфигурацию apache в соответствии с упомянутой документацией, я получаю указанную выше ошибку в моем журнале битнами, когда пытаюсь клонировать репозиторий.

 <Location "/">
       AuthType Basic
       AuthName "Redmine git repositories"
       Require valid-user

       PerlAccessHandler Apache::Authn::Redmine::access_handler
       PerlAuthenHandler Apache::Authn::Redmine::authen_handler
       RedmineDSN "DBI:mysql:database=bitnami_redmine;host=localhost;mysql_socket=installdir/mysql/tmp/mysql.sock"
       RedmineDbUser "REDMINE_DB_USERNAME"
       RedmineDbPass "REDMINE_DB_PASSWORD"
       RedmineGitSmartHttp yes
     </Location>

Когда я запускаю следующую команду для клонирования репо без третьего шага в документации, я могу правильно клонировать репо, но на третьем шаге я терплю неудачу и получаю ошибку выше в журнале и ошибку ниже в командной строке.

[email protected]:/tmp$ git clone http://git.domain.com/test2
Cloning into 'test2'...
fatal: unable to access 'http://git.domain.com/test2/': The requested URL returned error: 500

Я даже попытался установить пакет ниже, но не повезло

sudo apt-get install libdbd-mysql-perl

my os is

Ubuntu 16.04.5 LTS \n \l

person vishal-mote    schedule 21.02.2019    source источник
comment
Вы устанавливаете правильный пакет, но весь этот /opt/bitnami материал предполагает, что вы не используете системный Perl, для которого предназначен этот пакет, поэтому модуль не обнаруживается.   -  person Shawn    schedule 21.02.2019
comment
Я столкнулся с аналогичной проблемой на стандартной Bitnami 3.4.6-1 на Ubuntu 16.04 на Azure. Системный Perl - 5.22, а версия Bitnami Perl - 5.16, поэтому пакет libdbd-mysql-perl использовать нельзя. Я считаю, что модули DBD MySQL не были упакованы в вышеприведенном выпуске Bitnami. Из-за нехватки времени я скопировал соответствующие файлы MySQL из Bitnami 3.3.x (с Bitnami Perl 5.16) в /opt/bitnami/perl/lib/site_perl/5.16.3/x86_64-linux-thread-multi/ и перезапустил службы Bitnami. , и это сработало. Вы также можете проверить, решает ли ваша проблема настройка / opt / bitnami / apache2 / bin / envvars для использования системного Perl и DBD :: MySQL.   -  person Kishan Parekh    schedule 22.02.2019


Ответы (1)


Чтобы установка Perl могла взаимодействовать с базой данных MySQL, ей необходимо использовать модуль DBD :: mysql. Этот модуль не входит в стандартную установку Perl и должен быть установлен отдельно. Когда вы устанавливаете его с помощью инструмента командной строки CPAN (cpan DBD::mysql) или с помощью apt-get (apt-get install libdbd-mysql-perl), он устанавливается в каталоги библиотек, используемых системным Perl (тот, который установлен как часть вашей операционной системы). Вы можете убедиться, что он установлен правильно, выполнив следующие команды:

$ perldoc DBD::mysql
$ perl -MDBD::mysql -le'print $DBD::mysql::VERSION'

Если DBD :: mysql установлен правильно, первая команда покажет вам документацию для модуля, а вторая даст номер версии.

Но, как я уже сказал, он устанавливается для использования системой установки Perl. Из сообщения об ошибке видно, что ваша установка Bitnami не использует системный Perl. Вместо этого используется отдельная установка Perl, которая устанавливается в /opt/bitnami.

Итак, вам нужно установить DBD :: mysql в библиотеке модулей для этой установки Perl. Можно попросить cpan установить модуль в другой каталог, но я бы опасался просто устанавливать что-то в дерево каталогов Bitnami. Я сильно подозреваю, что этап установки был пропущен намного раньше. Если Bitnami необходимо использовать MySQL из программы Perl и установить свой собственный дистрибутив Perl с собственной библиотекой модулей, то он должен либо включить DBD :: mysql в свою установку, либо предоставить четкие инструкции по его установке.

Я предлагаю внимательно просмотреть инструкции по установке Bitnami и посмотреть, что они говорят об установке поддержки MySQL. Если это не сработает, вам следует передать этот вопрос в каналы поддержки Bitnami.

person Dave Cross    schedule 22.02.2019
comment
Я получаю следующий вывод для первой команды: - -bash: / opt / bitnami / perl / bin / perldoc: / bitnami / ruby23stack-linux-x64 / output / perl / bin / perl: плохой интерпретатор: нет такого файла или каталога - person vishal-mote; 22.02.2019
comment
@ vishal-mote: Добавление такой информации в комментарий делает ее почти нечитаемой. Здесь много людей, которые хотели бы вам помочь, но вы должны облегчить им задачу. Пожалуйста, отредактируйте свой вопрос, чтобы добавить эту полезную информацию. - person Dave Cross; 22.02.2019
comment
@ vishal-mote: Мне кажется, что вы вошли в систему с помощью специального bitnami пользователя, у которого настроен нестандартный путь (он работает с версией Perl Bitnami, а не с системным Perl). Что произойдет, если вы войдете в систему как обычный пользователь? - person Dave Cross; 22.02.2019
comment
Я создал этот экземпляр сервера, используя рекомендованную копию образа AWS Market Place. bitnami является стандартным пользователем для этого сервера, используя пользователя root, я получаю ту же ошибку, что и плохой интерпретатор - person vishal-mote; 22.02.2019
comment
@ vishal-mote: Думаю, я могу только повторить свою рекомендацию передать это в каналы поддержки Bitnami. - person Dave Cross; 22.02.2019