Forum Webscript.Ru
Программирование => PHP => Тема начата: che от 27 Мая 2003, 12:19:17
-
Дорова!
Вопрос такой вот не тривиальный :)
Задача такая - заставить работать Horde
Есть БСД, есть пхп, mysql, и нужно подключение pear
как положено pkg_add, всё уже установлено
но вот такой вот ключик phpxs -a pear не прокатывает, оттого что *.so pear нет, это понятно
как быть? потому как hordeвский тест показывает, что библиотеки pear не подключены.
С уважением che.
-
не знаю что там в Horde , но вообще-то pear подключается так:
1. Скачиваются нужные классы в одну папку (либо устанавливаются через специальный скрипт)
2. на эту папку настраивается include_path (через php.ini или .htaccess).
-
как папка называется?
-
che:
как папка называется?
ДА хоть горшком назови...
-
ThE0ReTiC хамить в ответ не буду, хотя вопрос я вполне конкретный задал!
Макс
php.ini
include_path = /usr/local/lib/php/PEAR
не помогает :(
PEAR
PEAR - No
Check your PHP include_path setting to make sure it has the PEAR library directory.
Recent PEAR - No
Mail - No
Log - No
DB - No
Net_Socket - No
Date - No
HTML_Common/HTML_Select - No
Unknown error: Failed opening \'Mail/mimeDecode.php\' for inclusion (include_path=\'usr/local/lib/php/PEAR\') (/htdocs/horde/test.php:194)
-
che
ты получил весьма конкретный ответ от Макс и продолжаешь задавать магко говоря бессмысленные вопросы
надеюсь папка называется именно PEAR а не pear ?
-
вопрос мягко говоря не бессмысленный, поскольку многое зависит от системы, я настраиваю всё под OpenBSD, когда я устанавливаю pear, я понятия не имею куда установочный скрипт копирует данные, откуда я могу знать тогда как называется папка?
папка на которую я думаю называется PEAR, pear папки внутри php папки нет
но всё равно легче от этого не становитися, поскольку всё равно не работает :(
зы если бы у меня не было проблемы меня бы тоже здесь не было, и я никого бы не донимал
-
Поясняю
1. Что такое include_path ?
Эта переменная (или опция, не знаю как правильно назвать) содержит список путей где php будет искать файлы при попытке подключить их через include/require.
Например:
php.ini:
include_path = ".:/usr/local/php/pear/\';
в скрипте:
require_once("Mail/mimeDecode.php\');
ПХП будет искать файл Mail/mimeDecode.php сначало в текущей папке, а потом в /usr/local/php/pear
Если найдет - он их подключит.
Я думаю ты в курсе что регистр в именах файлов имеет занчение (под openBSD)
2. У тебя классы перечисленные выше есть локально ?
Если нет - то http://pear.php.net скачай необходимые классы или попробуй разобраться с http://go-pear.org (я с ним не работал).
Если они у тебя есть - запиши их в папку PEAR
-
Макс
как ты знаешь, у нас под OpenBSD php идёт либов пакетах, либо в сырцах, пакеты вещь рекомендованная, это так же относится и к библиотекам
всё я сделал, как ты говорил, но НЕ РАБОТАЕТ :(
/usr/local/php/pear у меня НЕТ :(
/usr/local/lib/php/ а там внутри все классы перечислены :(
хоть как подключай с
include_path =/usr/local/lib/php/
include_path =/usr/local/lib/php/PEAR
всё равно horde ругается говорит не могу найти, проверь путь, а какой ей ещё путь нужен?
может дело в том что библиотеки лежат вне www и тогда могут быть проблемы с правами на файлы и папки :(
ещё вот интересный ньюанс
все классы
Mail
DB
PEAR
HTML
XML
всё это лежит в
/usr/local/lib/php/
не знаю что и думать, БЛИН самая безопасная ситема, НИФИГА НЕ СДЕЛАЕШЬ :)
-
/usr/local/php/pear у меня НЕТ
это просто пример, создай эту папку
можешь вообще создать папку /bla/bla/bla/ha/ha/ha/ , записать сюда pear-овские классы, сделать
include_path = ".:/bla/bla/bla/ha/ha/ha/"
и все должно работать.всё это лежит в
/usr/local/lib/php/
и include_path = ".:/usr/local/lib/php/" не работает ?
положи в папку с хордой файл phpinfo.php с содержимым:
phpinfo(); ?>
и найди там строку про include_path , посмотри его значение
кстати Unknown error: Failed opening \'Mail/mimeDecode.php\' for inclusion (include_path=\'usr/local/lib/php/PEAR\')
судя по этому сообщению у тебя неправильное значение include_path
-
да, и цитируй плиз все ошибки, то есть без вольного перевода типа :
всё равно horde ругается говорит не могу найти, проверь путь, а какой ей ещё путь нужен?
-
Макс
не я тоже не вчера за компьютер сел, можешь сам посмотреть
http://131.246.236.156/test.php
-
Unknown error: Failed opening \'Mail/mimeDecode.php\' for inclusion (include_path=\'usr/local/lib/php/PEAR\')
вот в этоv сообщении если ты заметишь, пропушен СЛЕШЬ перед usr
я только потом разглядел, но исправление ничего не дало
-
не я тоже не вчера за компьютер сел
верю, сразу за OpenBSD врятле кто сядет =)
Unknown error: Failed opening \'Mail/mimeDecode.php\' for inclusion (include_path=\'usr/local/lib/php/PEAR\')
ты ведь сказал что у тебя нет папки pear. Верно ?
Тогда должно быть
/usr/local/lib/php/
И лучше пиши так: ".:/usr/local/lib/php/"
ЗЫ
Твоя ссылка у меня не открывается так что не знаю что там у тебя там
-
Сорри, ссылка уже открывается :)
Да include_path вроде верный
положи в папку такой файл:
require_once("DB.php");
?> Ok
Выполни это, есть ли ошибка ?
-
Макс это я перегружался, MySQL не пашет, вернее не пахало :(, итак целый день mysql и pear, ещё MCAL :(
это путь к мои ошибкам
http://131.246.236.156/horde/test.php
куда, тобишь в какую папку то положить? тот файл?
я так понимамаю, продолжим мы завтра, и файл я тоже завтра выложу, у меня уже 01:16 ночи а в 9:00 на работу :)
-
значит зделал как ты и сказал
http://131.246.236.156/testDB.php
-
Так, ты писал что у тебя все классы в /usr/local/lib/php/
Судя по http://131.246.236.156/testDB.php у тебя их там нет.
У тебя там должны быть файлы:
PEAR.php, DB.php, Mail.php, Log.php (может чего и забыл)
Папки: PEAR, DB, Mail, Log, Net, XML, Date, HTML (в каждой папке свои файлы)
-
Макс ты смеяться будешь НО ОНИ ТАМ ЕСТЬ :) и папки и файлы, файлы лежат в директории php, а потом паки ещё
вот этого я и не понимаю :(
-
#ls -l /usr/local/lib/php
доступ на файлы 644
PEAR.php, DB.php, Mail.php, Log.php
на папки 755
PEAR, DB, Mail, Log, Net, XML, Date, HTML (в каждой папке свои файлы)
один ньюанс, всё принадлежит root из группы wheel, может в этом загвоздка?
-
еще session.save_path пропиши на существуюшую директорию и права нужные выставь..
или создай /tmp и поставь на нее права drwxrwxrwx(777)
также положи PEAR в отдельную директорию, где лежит php, например /usr/local/lib/php/PEAR/, то есть DB.php должен находиться по /usr/local/lib/php/PEAR/DB.php и дай права на чтение из этой директории drwxr--r--(744). Затем посмотри чтобы у тебя в include_path = ".;/usr/local/lib/php/PEAR/"
-
include_path = ".;/usr/local/lib/php/PEAR/"
а не
include_path = ".:/usr/local/lib/php/PEAR/" ?
будем считать это опиской
-
[root@regular]#ls -l /usr/local/lib/php
total 244
drwxr-xr-x 2 root wheel 512 May 26 19:43 Archive
drwxr-xr-x 2 root wheel 512 May 26 19:43 Console
drwxr-xr-x 2 root wheel 512 May 26 19:43 Crypt
drwxr-xr-x 2 root wheel 512 May 26 19:43 DB
-rw-r--r-- 1 root wheel 27819 Mar 20 14:45 DB.php
drwxr-xr-x 2 root wheel 512 May 26 19:43 Date
drwxr-xr-x 2 root wheel 512 May 26 19:43 File
-rw-r--r-- 1 root wheel 17108 Aug 18 2002 File.php
drwxr-xr-x 2 root wheel 512 May 26 19:43 HTML
drwxr-xr-x 2 root wheel 512 May 26 19:43 HTTP
-rw-r--r-- 1 root wheel 6554 Mar 20 14:45 HTTP.php
drwxr-xr-x 2 root bin 512 May 26 19:43 Image
drwxr-xr-x 2 root wheel 512 May 26 19:43 Log
-rw-r--r-- 1 root wheel 6920 May 22 2002 Log.php
drwxr-xr-x 2 root wheel 512 May 26 19:43 Mail
-rw-r--r-- 1 root wheel 7287 Mar 20 14:45 Mail.php
drwxr-xr-x 2 root wheel 512 May 26 19:43 Net
drwxr-xr-x 4 root wheel 512 May 26 19:43 PEAR
-rw-r--r-- 1 root wheel 24378 Mar 20 14:45 PEAR.php
drwxr-xr-x 2 root wheel 512 May 26 19:43 Schedule
-rw-r--r-- 1 root wheel 13327 Mar 20 14:45 System.php
drwxr-xr-x 2 root wheel 512 May 26 19:43 XML
drwxr-xr-x 2 root wheel 512 May 26 19:43 build
drwxr-xr-x 2 root bin 512 May 26 18:45 modules
[root@regular]#
-
мы вот тут ещё обсуждаем, с вашего позволения
http://www.php4you.kiev.ua/talk/showthread.php?postid=5785#post5785
-
trent
перенёс я все файлы в
/usr/local/lib/php/pear/
ничего не изменилось :(
session.save_path где прописать в php.ini?
так прописан он
http://131.246.236.156/horde/test.php?mode=phpinfo
-
странно.
сделай в твоей папке /htdocs/horde/ папку pear/, залей в нее все классы и
include_path = ".:/htdocs/horde/pear/"
работать будет ? (права сделай такие же как и скрипты Horde)
в php.ini
session.save_path = /tmp
права на /tmp 777
-
Макс
сделал я так
/htdocs/horde/ папку pear/, залил в нее все классы и
include_path = ".:/htdocs/horde/pear/"
работает но только от части http://131.246.236.156/horde/test.php
как и рекомендуют пойду за свежаком, говорят не свежая у тебя гуша :(
так как же быть, чтобы из /usr/local/lib/php библиотеки подгружать?
обратил внимание, что права доступа по умолчанию на грушу в OpenBSD 744, а не 755
а вот сессионный путь /tmp и так существует с правами 777, что то тут не чисто :(
-
а пакет MCAL кто нить ставил?
-
che
У тебя там на http://131.246.236.156/horde/test.php два ворнинга, 1. бишь temp не существует (но у тебя же он есть?!)
2. не знаю как это под никсом, но под виндой надо кроме прав на запись дать ещё права на изменение
-
вполне очевидно, что всё происходит не откривызны моих рук :) а в силу моего незнания иногда, ну а в большей степени в настройках системы по умолчению
про два ворнинга я в курсе, спасибо я видел
/tmp СУЩЕСТВУЕТ! chmod 777
-
а apache в OpenBSD 3.x в chroot идет!
запусти его с -u
-
archy и чё это даст? и где запускать если запускать?
вопрос ещё такой
horde я отложил в дальний ящик вместе с его проблемой mcal
вопрос другой
так как на опенбсд слишком долго обновляются пакеты, а я хочу установить новую версию pear
как я понимаю мне достаточно развернуть архив с pear
в директории /usr/local/lib/php или /usr/local/lib/php/pear
а в php.ini просто задать правильнуйпуть в include_path?
-
есть такие вот архивы
http://www.horde.org/pear/
а если по человечески, без скрипта автоматической установки с оффсайта,
что нужно брать с оффсайта и класть
в /usr/local/lib/php
-
нифига не понял. На http://www.horde.org/pear/ есть же архивы pear-классов которые тебе нужно установить (распаковать в опред. папку). В чем проблема, распакуй и положи в папку на которую у тебя include_path установлен