2012-02-19 3 views
1

Я бегу простой тестовый скрипт из командной строки на CentOS 5.6 с PHP пакета, установленного из PHP 5.3 on CentOS/RHEL 5.6.PHP: mysql_connect() отсутствие без сообщения об ошибке

PHP прекрасно работает во всех остальных случаях, но когда я ударил mysql_connect() он выходит из строя без ошибок.

Если я бегу

$ php -m 

я не вижу MySQL в качестве установленного модуля.

Однако я добавил extension=mysql.so в свой php.ini и перезагрузился.

Выход «rpm -qa | Grep PHP»

php-common-5.3.10-1.w5 
php-5.3.10-1.w5 
php-cli-5.3.10-1.w5 

Выход 'ням установить PHP-Mysql'

--> Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-mysql-5.1.6-27.el5_7.5.x86_64 (updates) 
php-pdo-5.1.6-27.el5_7.5.x86_64 from updates has depsolving problems 
    --> Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-pdo-5.1.6-27.el5_7.5.x86_64 (updates) 
Error: Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-pdo-5.1.6-27.el5_7.5.x86_64 (updates) 
Error: Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-mysql-5.1.6-27.el5_7.5.x86_64 (updates) 
You could try using --skip-broken to work around the problem 
You could try running: package-cleanup --problems 
         package-cleanup --dupes 
         rpm -Va --nofiles --nodigest 
The program package-cleanup is found in the yum-utils package. 

ответ

6
I am not seeing MySQL as an installed module. 

Установили ли вы его?

# yum install php-mysql 

(из того же репо установлен php с).

EDIT:

перспективе это:

yum --enablerepo=webtatic install php-mysql 

это говорит ням, чтобы получить пакеты из webtatic хранилища (в дополнение к системным сконфигурированных репозиториев). Если вы хотите webtatic среди системных включен репозиториев, запустите:

yum --enablerepo=webtatic install webtatic-release 
+0

Как это сделать? – phirschybar

+0

Если у вас установлен yum, «yum install php-mysql» должен это сделать, если он еще не установлен –

+0

, как вы установили пакет * php *? если вы установили его с помощью yum, запустите в командной строке, * yum установите php-mysql * как root –

0

Во-первых, несколько советов: прекратить использование библиотек MySQL и использовать PDO или, по крайней мере, Mysqli библиотеки.

Теперь для получения помощи по устранению неполадок: первый шаг должен быть на 100% уверен, что загрузка mysql. Создайте сценарий (на веб-сайте) с:

phpinfo();

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

Где бы вы тестируете сомнительны ошибок, прямо перед вызовом mysql_connect добавить эти строки:

ini_set('display_errors', 1); 
ini_set('log_errors', 1); 
error_reporting(E_ALL | E_STRICT); 

Это позволит вам не подавляя ошибки где-то еще до того, как соединение. Некоторые структуры иногда это делают.

Если это действительно модуль загружается, и с добавленным кодом регистрации ошибок вы все равно не получите допустимую ошибку. Я бы попытался подключиться в сценарии php командной строки. Посмотрите в файле php.ini, чтобы узнать, к чему установлен «error_log». Это журнал по умолчанию, на который он будет регистрироваться: когда-то настройки на основе http переопределяют ведение журнала, поэтому даже если ошибки не используются, вы не видите или не можете их найти. Это объясняет сценарий php командной строки.

Последнее, но не менее важное: вы всегда можете опубликовать свою строку подключения к этому сообщению. Попробуйте подключиться из командной строки на сервере в качестве сценария, используя команду mysql с теми же учетными данными, что и ваш mysql_connect. Возможно, вы сможете подключиться просто отлично, но иметь плохие учетные данные.

Если модуль не загружается, попробуйте найти, где находится модуль, и поместите полный путь в php.ini. Yum иногда устанавливает вещи, где php.ini его ищет. В конце Yum установки, он иногда говорит вам путь, если нет, то найти его с грубой силой, это сделать:

cd/
find . -name 'mysql.so' 

так в php.ini, вместо

extension=mysql.so 

extension=/path/to/found/mysql.so 

Удачи вам!

+0

Я получаю следующую ошибку: Неустранимая ошибка: вызов неопределенной функции mysql_connect() в /home/app/index.php в строке 7 Модуль не загружается, даже если я установил MySQL 'yum install php-mysql ' – phirschybar

+0

Вы запустили phpinfo(), чтобы быть на 100% уверенным, что он не загружается (фатальная ошибка указывает на это, но мне нравится быть уверенным) – Ray

+0

@phirschybar Я добавил некоторую помощь для поиска, где может быть yum выгрузили библиотеку mysql, иногда это не то место, где php.ini ожидает их. – Ray