Как статически скомпилировать DBD:: mysql и переместить файлы на общий хостинг, где у меня есть моя собственная установка perl
- я скачал и установил локально на моем Ubuntu ActiveState Perl (ActivePerl-5.14.1.1401-x86_64-linux-glibc-2.3.5-294969.смола.ГЗ).
- я сделал "~$ sudo apt-get install libmysqlclient-dev "
- я скачал из CPAN DBD:: mysql
-
Я читаю установить.html И вот в чем моя проблема: Я не уверен, как скомпилировать статически связанный DBD:: mysql, который я могу скопировать из моей локальной установки ActivePerl в тот же perl instalaltion, но на моем общий хостинг-провайдер mashine. Обратите внимание, что загруженная через ftp(нет ssh там) структура каталогов perl работает на общем хостинге (также x86_64-linux) после изменения разрешений исполняемого файла в каталоге ActivePerl/bin/. Мои CGI-скрипты хорошо работают под mod_cgi и mod_fast_cgi на общем хостинге. Я попробовал советы в установочном документе (INSTALL.html#source_installation ), но не повезло. На другом общем хостинге с i586 Active Perl DBD:: mysql просто работает, потому что я первый установил его локально, используя PPM, а затем загрузил через FTP. Однако нет пакета x86_64 с промилле предоставленная компанией ActiveState. Может ли sonmebody предоставить заклинания магии для командной строки (ubuntu 11.04), что-то вроде:
me@mine:~$ mkdir /tmp/mysql-static me@mine:~$ cp /usr/lib/libmysqlclien* /tmp/mysql-static me@mine:~$ cd ~/install/Perl/DBD-mysql-4.019/ me@mine:~/install/Perl/DBD-mysql-4.019$ perl Makefile.PL --libs="-L/tmp/mysql-static -lmysqlclient" me@mine:~/install/Perl/DBD-mysql-4.019$ make me@mine:~/install/Perl/DBD-mysql-4.019$ make install
... ..хм: кажется, на этот раз все получилось, но в любом случае я написал все вышесказанное... это может быть полезно для других. Я загружу позже сегодня на общий хостинг, чтобы посмотреть, работает ли он.
1 ответ:
Это работает. Единственное, что нужно знать, это когда вы используете его на общем хостинге. Вы должны подключиться через TCP, а не через сокет Unix:
$dsn = "DBI:mysql:database=$database;host=127.0.0.1;port=3306"; $dbh = DBI->connect($dsn, $user, $password);
Как написано в docs:
чтобы подключиться к серверу MySQL на localhost с помощью TCP / IP, необходимо указать имя хоста как 127.0.0.1 (с дополнительным портом).