![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| ivanpet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.1.2007 Репутация: нет Всего: нет |
Здравствуйте!
Сайт размещается на хостере, имеется на нем perl, модулей нужных как обычно нет. Прочитали статью по установке модулей - заинтересовало то, что можно в обход прова установить и использовать свои модули. Для компиляции и сборки нужного модуля написали скрипт следующего содержания (имеется ввиду что модуль уже распокован и закачан на хостинг): #!/usr/bin/perl -t print "Content-type: text/html\n"; print "Pragma: no-cache\n"; print "Expires: now\n\n"; print "Домашняя директория - $HOME"; print "<br>"; print system ('/usr/bin/perl -t Makefile.PL PREFIX=$HOME/mylib'); print system ('make'); print system ('make test'); print system ('make install'); Запускаем скрипт из браузера IE7.0. Происходит следующее: Файл Makefile создается, функция возвращает 0, а вот собрать не можем - функци возращает -1. Может кто-нибудь подскажет в чем проблема и как ее порешать, если это возможно? |
|||
|
||||
| Ramirez |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: 1 Всего: 5 |
Собрать на своей машине (ос думаю нужно такую же как на хосте) и положить на сервер хостеру (и надеятся что пусти в системе у него стандартные, и либы нужные есть).
|
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
ivanpet, вы уверены что нужна "компиляция"/сборка?
Если нет, то зачем "так извращаться", просто положите ваши модули .pm в ./libs А в скрипте пропишите
Добавлено через 35 секунд ./libs относительно вашего скрипта |
|||
|
||||
| ivanpet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.1.2007 Репутация: нет Всего: нет |
Спасибо за советы.
1. Мы в линуксе не очень, но мыслим в таком направлении, если, например, попробовать положить в папку скриптов файл make, а затем запустить скрипт, интересно, файл make запуститься? 2. Собрать этот же самый модуль, например, на виндовой машине, а получившийся модуль положить в нашу папку /mylib. По виндой пробовали собрать, все получилось, и модуль работает под виндовым апачем. Практически все полученные файлы - обычные с расширением *.pm, но вот один файл .packlist содержит пути именно к нашему модулю. Под виндой файл выглядит так c:\inet\localhost... Может собрать на виндовой машине и положить готовый модуль на хостер, с подменой путей скажем /mylib. Интересно сработает, как думаете? P.S. Положили, ради эксперемента один файл smtp_m.pm в директорию /mylib Подключаем так: use lib $root_dir.'/mylib'; use SMTP_M; При запуске скрипта выдается: Can't locate SMTP_M.pm in @INC (@INC contains: /mylib /usr/lib/perl5/5.8.5/i386-linux-thread-multi и т.д. ) Подскажите как правильно БЕЗ сборки указать пути к модулю? Это сообщение отредактировал(а) ivanpet - 14.8.2008, 16:48 |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
ivanpet,
выбросите это из головы Положите файл в ./mylib, чтобы назывался SMTP_M.pm и можно подключать
|
|||
|
||||
| ivanpet |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.1.2007 Репутация: нет Всего: нет |
Не понятно, Вы извините за назойливость. Где должна располагаться эта папка? При подключении на хостинг через FTP видим следующее: папки: logs (логи апача) site (куда выкладывается сайт) tmp (временные файлы) создаем папку mylib тут же и выкладываем файл SMTP_M - не подключается, выдается то же сообщение об ошибке! Заходим в папку site и создаем там - тоже не работает |
||||
|
|||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
предположим папка с нашим скриптом в site
создаём папку mylib в папке site кладём в mylib файл SMTP_M.pm и прописываем как уже выше сказал. Есть большая вероятность, что вы это уже проделали, но у вас где-то ошибка, как например с именем файла модуля, возможно модуль самописный и т.д.. Если не получится, ошибку сюда. Добавлено через 1 минуту и 26 секунд
посмотрите внимательно путь не /mylib а именно ./mylib (точку не пропустите) Добавлено через 2 минуты и 43 секунды Где у вас скрипт лежит который 100% работает без этого модуля? |
|||
|
||||
| ivanpet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.1.2007 Репутация: нет Всего: нет |
предположим папка с нашим скриптом в site
создаём папку mylib в папке site кладём в mylib файл SMTP_M.pm Да именно так и сделано было. (во втором случае) ...и прописываем как уже выше сказал. Есть большая вероятность, что вы это уже проделали... Вот код скрипта, который пытается подключить модуль unshift(@INC,$root_dir); require $root_dir."/config/"."config.pl"; use strict; use CGI qw/:standard :cgi-lib/; use CGI::Carp qw(fatalsToBrowser); use DBI; use lib './mylib'; use SMTP_M; ...возможно модуль самописный... Да нет, на самом деле скачанный со CPAN, могу выложить, если нужно. Модуль - обычный NET::SMTP, только версия поновее. Начали возится потому, что скрипт прова не работает (не может отправлять почту), а этот - работает, по крайней мере на виндовой машине. Если не получится, ошибку сюда. Ошибка та же Can't locate SMTP_M.pm in @INC (@INC contains: /mylib /usr/lib/perl5/5.8.5/i386-linux-thread-multi и т.д. ) Где у вас скрипт лежит который 100% работает без этого модуля? Лежит в папке /site/cgi-bin/usemodul.pl |
|||
|
||||
| ivanpet |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.1.2007 Репутация: нет Всего: нет |
Модуль подключился, мы только не поняли почему
Вместо:
Мы использовали:
Огромное спасибо за поддержку |
||||
|
|||||
| nitr |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
Вот вы уже стали говорить дело
Копируйте папку Net , которая лежит в архиве http://search.cpan.org/CPAN/authors/id/G/G...net-1.22.tar.gz напиши примерно такой скрипт (только под cgi его измените):
Добавлено через 35 секунд Увидите, что используется ваш "новый" модуль. Скажите - зачем вам это?
|
||||
|
|||||
| ivanpet |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.1.2007 Репутация: нет Всего: нет |
Да, спасибо. Теперь версия smtp пакета 2.31
Прочитали в какой-то книжке
в этой папке лежат файлы с настройками: доступ к базе, соединение с smtp и т.д. А Вы что посоветуете? |
||||
|
|||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
ivanpet, можно поставить галочку по этой теме, и создать новую тему как кто посоветует
|
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |