Аренда серверов

Связка PHP + MySQL не работает

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.

Связка PHP + MySQL не работает

Непрочитанное сообщение Mushin » 2008-07-17 9:52:48

Помогите, люди добрые! Уже 4-й день бьюсь, спина болит, глаза из орбит вылазят... Проблемма такая:
Поставил Apache + PHP + MySQL все из портов (FreeBSD). Все по отдельности работает, Apache+PHP - работает, единственная проблемма - из под PHP не могу подключиться к Мускулу (Fatal error: Call to undefined function mysql_connect() ), в phpinfo() - нет подключенного модуля mysql.
Что зделано:
1. В php.ini - прописал:
extension=mysgl.so
extension_dir = "/usr/local/lib/php/20060613" #В указанной дирректории вайл mysql.so - присутствует
mysql.default_soket = /tmp/mysql.sock #Сокет есть в этой дирректории

Опыта у меня нет, это мой первый сервак на FreeBSD - поэтому буду очень рад и благодарен, ответу как и за счет чего эта связка (php+mysql) работает. :oops:
Mushin
рядовой
 
Сообщения: 26
Зарегистрирован: 2008-07-17 8:51:57

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение dikens3 » 2008-07-17 10:07:28

Рассказывай как ставил php.

Обрати внимание на порт /usr/ports/lang/php5-extension, после установки которого ничего прописывать не нужно. Работает по умолчанию.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Аватара пользователя
dikens3
подполковник
 
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Mushin » 2008-07-17 10:28:49

Apache, PHP, MySQL ставил из портов:

/usr/ports/www/apache13 – make install
/usr/ports/lang/php5 – make install
/usr/ports/lang/php5-extensions – make install
/usr/ports/databases/mysql51-server - make install

Далее прописал в httpd.conf модуль PHP5 и создал виртуальные хосты.
/etc/rc.conf – добавил строки:
mysql_enable="YES"
apache_enable=”YES”

В результате: виртуальные хосты работают, рнр-скрипты на них работают, а mysql_connect("localhost", $mysql_user, $mysql_pass) - не работает.

Мускул загружен, mysql.sock - присутствует.
/usr/local/bin/mysql –u root –p - работает, захожу под рутом, создал свою учетку, базу данных и т.д., но все это из командной строки мускула.
Mushin
рядовой
 
Сообщения: 26
Зарегистрирован: 2008-07-17 8:51:57

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение zingel » 2008-07-17 11:12:20

дай вывод

Код: Выделить всё
echo -ne '<?php phpinfo(); ?> | php | grep mysql*
Z301171463546 - можно пожертвовать мне денег
Аватара пользователя
zingel
beastie
 
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Mushin » 2008-07-17 11:59:44

zingel писал(а):дай вывод

Код: Выделить всё
echo -ne '<?php phpinfo(); ?> | php | grep mysql*


Ух... писал вручную, т.к. иначе не умею....

PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/20060613-debug/mysql.so’ – Shared object “libmysqlclient.so.15” not found, required by “mysql.so” in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/20060613-debug/mysql.so’ – Shared object “libmysqlclient.so.15” not found, required by “mysql.so” in Unknown on line 0
PHP Warning: PHP Startup: calendar: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=1, thread-safety=0
These options need to match
In Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/20060613-debug/sqlite.so’ – ‘/usr/local/lib/php/20060613-debug/sqlite.so: Undefined symbol “spl_ce_Countable” in Unknown on line 0
grep: нет соответствий
Mushin
рядовой
 
Сообщения: 26
Зарегистрирован: 2008-07-17 8:51:57

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение salvator » 2008-07-17 12:05:12

потерто

обнови/установи mysql-client
Аватара пользователя
salvator
мл. сержант
 
Сообщения: 88
Зарегистрирован: 2008-04-01 12:18:59
Откуда: Kiev, Ukraine

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Mushin » 2008-07-17 13:05:02

Там пишут - “libmysqlclient.so.15” not found, а у меня libmysqlclient.so.16 лежит в /usr/local/lib/mysql/
Похоже, что-то связано с нестыковкой версий
Удалил клиента mysql51-client и поставил mysql50-client появилась библиотека libmysqlclient.so.15 в /usr/local/lib/mysql/
Написал: echo –ne ‘<?php phpinfo(); ?>’ | php | mysql*
Получил ответ:
PHP Warning: PHP Startup: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=1, thread-safety=0
These options need to match
in Unknown on line 0

Удалил mysql51-server - поставил mysql50-server - те-же грабли...
Mushin
рядовой
 
Сообщения: 26
Зарегистрирован: 2008-07-17 8:51:57

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение zingel » 2008-07-17 13:10:49

Mushin писал(а):Там пишут - “libmysqlclient.so.15” not found, а у меня libmysqlclient.so.16 лежит в /usr/local/lib/mysql/
Похоже, что-то связано с нестыковкой версий
Удалил клиента mysql51-client и поставил mysql50-client появилась библиотека libmysqlclient.so.15 в /usr/local/lib/mysql/
Написал: echo –ne ‘<?php phpinfo(); ?>’ | php | mysql*
Получил ответ:
PHP Warning: PHP Startup: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=1, thread-safety=0
These options need to match
in Unknown on line 0

Удалил mysql51-server - поставил mysql50-server - те-же грабли...


Кто это у Вас там *пишут*? =) Святой коннектий?

Если без шуток - выполните

Код: Выделить всё
portupgrade -f databases/mysql50-client/
Z301171463546 - можно пожертвовать мне денег
Аватара пользователя
zingel
beastie
 
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Mushin » 2008-07-17 14:27:05

Что-то грустновастенько..., сделал:
/usr/ports/ports-mgmt/portupgrade - make install
(у меня не стояла эта утилитка)
Далее перезагрузка и
portupgrade -f databases/mysql50-client/
Получаю ответ:
**No such installed package: databases/mysql50-client/
ну и, как и следовало, остальные "грабли" тоже остались...
Mushin
рядовой
 
Сообщения: 26
Зарегистрирован: 2008-07-17 8:51:57

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение zingel » 2008-07-17 14:36:12

а поставить, сначала поставить нужно ведь? ;-)

Код: Выделить всё
cd /usr/ports/databases/mysql50-client/ && make install;  portupgrade -f databases/mysql50-clien


P.s. Вы администрируете сервер или просто для себя?
Z301171463546 - можно пожертвовать мне денег
Аватара пользователя
zingel
beastie
 
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Mushin » 2008-07-17 15:02:00

zingel писал(а):а поставить, сначала поставить нужно ведь? ;-)

Код: Выделить всё
cd /usr/ports/databases/mysql50-client/ && make install;  portupgrade -f databases/mysql50-clien


P.s. Вы администрируете сервер или просто для себя?


У меня на работе сервер: WinXPSP2+WinRoute+Денвер - работает локальный сайт. Встал вопрос о лицензировании и надежности, мне посоветовали FreeBSD, как лучший вариант, и вот уже второй месяц я изучаю это. Уже разобрался с MPD, IPFW, NAMED, dhcp, SSHD, Apache, PHP - все работает, осталась биллинговая система и камень преткновения - MySQL....
----------------------------------
Это уже делал:
cd /usr/ports/databases/mysql50-client/ && make install; portupgrade -f databases/mysql50-client
сначала
cd /usr/ports/databases/mysql50-client/ && make deinstall; потом make install
далее
portupgrade -f databases/mysql50-client
пишет:
**No such installed package: databases/mysql50-client/

Видать я своими экспериментами уже какието "грабли" приобрел... Я кучу раз ставил и удалял разные версии. Я ставил joomla - он подтягивает за собой и апаче и рнр и мускул - при этом все работает, но в рнр небыло поддержки calendar (я это использую на сайте), поэтому я переустановил php5-extensions и остался у разбитого корыта, нет ни MySQL ни Calendar.... :st:
Mushin
рядовой
 
Сообщения: 26
Зарегистрирован: 2008-07-17 8:51:57

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Rita » 2008-07-17 15:09:33

Ставила все хозяйство отдельно не из портов, все заработало с пол-пинка. Если не надоест мучаться опубликую тут свои примеры. :oops:
Rita
сержант
 
Сообщения: 157
Зарегистрирован: 2007-12-01 23:41:45

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Mushin » 2008-07-17 15:20:47

Rita писал(а):Ставила все хозяйство отдельно не из портов, все заработало с пол-пинка. Если не надоест мучаться опубликую тут свои примеры. :oops:


Мучиться не надоест - я упрямый, жену и ребенко только жалко, я ведь пока не "победю" этого мускула - не успакоюсь, а им грустно без батьки-то, небось.... (скупая мужская слеза упала на клавиатуру - в воздухе запахло горелой пластмассой....)
P.S. Конечно публикуйте, будьте так добры, если на этой неделе с портов не поставлю, то займусь вашими рекомендациями!
Mushin
рядовой
 
Сообщения: 26
Зарегистрирован: 2008-07-17 8:51:57

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение zingel » 2008-07-17 15:20:59

Код: Выделить всё
cd /usr/local/lib/mysql/ && ln -s libmysqlclient.so.16 libmysqlclient.so.15; killall mysqld && /usr/local/bin/mysqld_safe &

Код: Выделить всё
apachectl restart

Код: Выделить всё
cd /usr/ports/lang/php5-extension && make install clean

Код: Выделить всё
cd /usr/ports/databases/mysql50-client/ && make install;  portupgrade -f databases/mysql50-clien
Z301171463546 - можно пожертвовать мне денег
Аватара пользователя
zingel
beastie
 
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Mushin » 2008-07-17 16:33:09

zingel писал(а):
Код: Выделить всё
cd /usr/local/lib/mysql/ && ln -s libmysqlclient.so.16 libmysqlclient.so.15; killall mysqld && /usr/local/bin/mysqld_safe &

Код: Выделить всё
apachectl restart

Код: Выделить всё
cd /usr/ports/lang/php5-extension && make install clean

Код: Выделить всё
cd /usr/ports/databases/mysql50-client/ && make install;  portupgrade -f databases/mysql50-clien


Поскольку не все рекомендации понятны, то очитываюсь последовательно:
Пишу:
cd /usr/local/lib/mysql/
ln -s libmysqlclient.so.16 libmysqlclient.so.15; killall mysqld
Ответ:
ln: libmysqlclient.so.15: File exists
Пишу:
/usr/local/bin/mysqld_safe
Ответ:
Starting mysql daemon with databases from /var/db/mysql
и тута приветствия shell нету, в другой консоли пишу:
apachectl restart
Ответ:
/usr/local/sbin/apachectl restart: httpd restarted
Пишу:
cd /usr/ports/lang/php5-extension
make install clean
Ответ:
php5-extensions-1.1 alredy installed You may wish to "make deinstall" and install this port again by make reinstall to upgrade it propetly.
Пишу:
make deinstall
make install
Установилось....
Пишу:
cd /usr/ports/databases/mysql50-client/
make install; #Ничего не произошло...
portupgrade -f databases/mysql50-client
Урррр-а апгрейд пошел!!!
Все, обновился... Перезапуск на всякий случай...
Далее грустнее, пишу:
echo –ne ‘<?php phpinfo(); ?>’ | php | mysql*
Получил ответ:
PHP Warning: PHP Startup: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=1, thread-safety=0
These options need to match
in Unknown on line 0

Интересное дело... Заглядываю в /usr/ports/databases/mysql50-client - директории work там уже нет, пишу make install - пошла установка, ...??? Далее прерывается, пишет, что mysql50-client уже установлен, удаляю-ставлю, ставится нормально, после этого апгрейд не работает... Заколдованный круг... Чего-то мне не хватает, и скорее всего - в голове...
Mushin
рядовой
 
Сообщения: 26
Зарегистрирован: 2008-07-17 8:51:57

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Alex Keda » 2008-07-17 20:06:50

сообщения нормально оформляйте
Убей их всех! Бог потом рассортирует...
Аватара пользователя
Alex Keda
стреляли...
 
Сообщения: 33397
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение zingel » 2008-07-18 2:44:26

да не заколдованный круг, а самлинк надо сделать на не libmysqlclient.so.16 и обновится - дайте доступ, потом загляните в .bash_history, всё станет понятно.
Z301171463546 - можно пожертвовать мне денег
Аватара пользователя
zingel
beastie
 
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Alex Keda » 2008-07-18 6:22:50

баш - ф топку =)
Убей их всех! Бог потом рассортирует...
Аватара пользователя
Alex Keda
стреляли...
 
Сообщения: 33397
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение zingel » 2008-07-18 6:46:04

ну, не баш, я сохраню вывод в лог....
Z301171463546 - можно пожертвовать мне денег
Аватара пользователя
zingel
beastie
 
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение zg » 2008-07-20 6:35:39

Mushin писал(а):/usr/ports/www/apache13 – make install
/usr/ports/lang/php5 – make install
/usr/ports/lang/php5-extensions – make install
/usr/ports/databases/mysql51-server - make install
базу надо собирать ДО сборки пхп, в твоём случае экстеншенов. Сейчас можешь просто переустановить расширения и модуль пересоберётся.

Но, вообще, на будущее, гораздо лучше сначало ставить мусю, а потом юзать --with-mysql, которая в портах почему-то вырублена :evil: Да и PDO из расширений работает через раз, я делал через configure, пашет.
zg
полковник
 
Сообщения: 5832
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Mushin » 2008-07-22 8:48:51

базу надо собирать ДО сборки пхп, в твоём случае экстеншенов. Сейчас можешь просто переустановить расширения и модуль пересоберётся.

Но, вообще, на будущее, гораздо лучше сначало ставить мусю, а потом юзать --with-mysql, которая в портах почему-то вырублена :evil: Да и PDO из расширений работает через раз, я делал через configure, пашет.


Уже несколько раз все переустанавливал, и на "чистую" ситему пробовал, каждый раз новые проблеммы, я уже заметил, если сначала ставить Мускул клиент, то он потом "подхватывается" в РНР без проблемм, но, почему-то, если переустановить php-extensions, то Мускул "вылетает"...
Мой последний эксперимент вообще полный крах... Сейчас при подключении модуля РНР в Апаче (httpd.conf) - он (Апаче) отказывается стартовать... До этого попытка была более удачная, связка (Апаче-Мускул-РНР) заработала, но не работала функция fopen(); в РНР - пока я с ней разбирался "вылетел" Мускул, тяжко не знать всей "поднаготной", что и где должно быть прописано и какие "чмоды и чоуны" (chmod, chown) выставлены, и т.д. ....

P.S. У меня попутный вопрос, может кто подскажет, есть ли возможность удалить установленный порт вместе со всеми зависимостями, которые он использовал при инсталляции, ибо я заметил, что все мои эксперименты не дают эффекта, если я их не провожу на "чистой" системе, ...
Mushin
рядовой
 
Сообщения: 26
Зарегистрирован: 2008-07-17 8:51:57

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение zg » 2008-07-22 9:10:43

zg писал(а):Но, вообще, на будущее, гораздо лучше сначало ставить мусю, а потом юзать --with-mysql, которая в портах почему-то вырублена
я всегда ставлю так:
1. pkg_add -r mysql-serverxx
2. cd /usr/ports/www/apachexx && make install clean
3. cd /usr/ports/lang/phpxx, правлю Makefile, make install clean
из экстеншенов не люблю ставить, они через раз пашут и баги там на любой вкус и цвет. У меня тоже не идальный вариант, но поднятие хостинга не самая частая моя задача, поэтому обхожусь так. Но работает, да и времени уходит не намного больше.
zg
полковник
 
Сообщения: 5832
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение Mushin » 2008-07-24 10:30:03

Ур-р-р-р-р-р-а, ЗАРАБОТАЛО!!!
Огромное спасибо всем, кто откликнулся на мою проблему, ваша помощь бесценна для меня – огромное человеческое СПАСИБО!!! Для тех, кто забредет на эту страничку в поисках ответа на аналогичный вопрос, пишу подробный отчет о проделанной работе. Основной вывод, который я сделал для себя: "Подожди все переставлять - это не Винда, тут думать надо....". Главный камень предкновения, на котором я застрял - это php5-extensions, оказалось все просто: ставь вначале Мускул (клиент и сервер), потом Апаче и потом уже PHP с расширениями, если какие-либо расширения не подгрузились (смотреть в phpinfo();), то их необходимо ручками прописать в php.ini, а теперь сам процесс установки:
1.Ставим mysql50-client и mysql50-server
Код: Выделить всё
cd /usr/ports/databases/mysql50-client   &   make install clean
cd /usr/ports/databases/mysql50-server   &   make install clean

После окончания процесса установки, делаем инициализацию баз:
Код: Выделить всё
/usr/local/bin/mysql_install_db

После этого добовляем в /etc/rc.conf следующую строку: mysql_enable="YES"
Присваиваем необходимые права: chown -R mysql:mysql /var/db/mysql/
Можно считать, что база данных поднята, далее вполе логично будет поставить пароль на root, при необходимости создать других пользователей базы MySQL, это все очень удобно делать в phpmyadmin (можно поставить из портов: /usr/ports/databases/phpmyadmin), либо ручками: /usr/local/bin/mysql –u root –p и т.д. - это уже другая тема.
2. Устанавливаем Apache, последний мой удачный эксперимент был с 22-й версией:
Код: Выделить всё
cd /usr/ports/www/apache22   &   make install clean

После установки добавляем в rc.conf: apache22_enable="YES" и пока все, идем дальше:
3. Устанавливаем РНР и расширения, я предварительно отредактировал Makefile в портах php5 и php5-extensions, отметив там в разделе OPTIONS необходимые мне модули (не забудте отметить модуль Apache)
Код: Выделить всё
cd /usr/ports/lang/php5   &   make install
cd /usr/ports/lang/php5-extensions   &   make install clean

После того, как все установилось, необходимо связать РНР и Apache, для этого заходим в конфигурационый файл Apache, который находится по адресу /usr/local/etc/apache22/httpd.conf и находим там строчки, которые начинаются на LoadModule, убеждаемся в присутствии строки: LoadModule php5_module libexec/apache22/libphp5.so - обычно она в конце списка... и ниже всех этих записей добавляем:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Далее, находим строчку DirectoryIndex и перед index.html добавляем index.php.
Сохраняем файл. Запускаем Apache: # /usr/local/sbin/apachectl start, запуск Apache можно проконтроллировать с помощью команды top, наличие процессов с названием httpd свидетельствует об удачном запуске сервера.
После этого, переходим в каталог с нашим сайтом: cd /usr/local/www/apache22/data, создаем файл index.php и вписываем в него одну строчку: <?php phpinfo(); ?> Сохраняемся. Далее подключаемся к серверу через обычный браузер, вписав в строку адреса IP сервера, должна загрузиться страничка с информацией о версии РНР и подключаемых модулях расширения, если вы там чего-то не находите, что ожидалось, например наличия модуля MySQL или Calendar, или SESSIONS т.е. то, что вам необходимо, то идем /usr/local/etc/ ищем тут файл php.ini, если не находим, то переименовываем файл php.ini - recommended в php.ini, находим там строчки ;extension=php_имя-модуля.dll и расскоментировав необходимые приводим их к Unix-виду: extension=имя-модуля.so, например, мне пришлось дописать следующее:
Код: Выделить всё
extension=mysql.so
extension=calendar.so
extension=session.so

Естественно, что все эти модули должны быть установлены в системе и файлы типа имя-модуля.so должны быть в наличии по адресу: /sr/local/lib/php/..../.
После всего этого можно перезагрузить сервер (# /usr/local/sbin/apachectl restart) или, для чистоты эксперимента перезапустить систему, и открыв в браузере файл index.php убедиться в том, что модули подключились успешно.
У меня все заработало!
P.S. Не судите строго за изложение и возможные ошибки, писал это все еще очень зеленый админ,.. Желаю всем удачи!
Mushin
рядовой
 
Сообщения: 26
Зарегистрирован: 2008-07-17 8:51:57

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение unavailable » 2009-01-04 23:28:57

помогите пожалуйста!я только начал изучать php. Такая вот задача: установил Apache 2.0 потом Php5 все по учебнику настроил, когда вызываю в explorer <?phpinfo();?> начинает скачивать фаил из папки, где я его создал. А если через mozila , тогда появляется в окне <?phpinfo();?> и больше ничего. И другие скипты в таком же духе. Подскажите пожалуйста что я сделал не так, или не доделал. Спасибо
unavailable
проходил мимо
 

Re: Связка PHP + MySQL не работает

Непрочитанное сообщение hizel » 2009-01-04 23:31:04

конфигурация апача очень поможет нам
только без заккоментированных строк пожалуйста портяночку предоставьте
;)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
Аватара пользователя
hizel
дядя поня
 
Сообщения: 9013
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

След.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1