Запуск PHP 5.3 на CentOS 5.4 - фатальная ошибка Класс 'PDO' не найден - PullRequest
2 голосов
/ 23 декабря 2011

Как лучше всего запустить PHP 5.3 и запустить его на CentOS 5.4. Моя машина говорит, что у меня установлен PHP 5.3, но у меня возникла проблема с моим скриптом, который говорит Неустранимая ошибка: класс 'PDO' не найден в /var/www/html/lib/rb.php в строке 45 Не удается создать новый класс PDO в библиотеке RedbeanPHP 3.0.

Как я могу исправить эту недостающую проблему PDO?

Я пытался следовать этим инструкциям: от http://www.computingunplugged.com/issues/issue201102/00002619002

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm  
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm  
# THIS LINE FAILED FOR ME
rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/ius-release-1.0-6.ius.el5.noarch.rpm  

yum erase php php-pear php-mysql php-cli php-common  

yum install php53u php53u-pear php53u-cli php53u-common php53u-gd  
yum install php53u-mbstring php53u-mcrypt php53u-mysql php53u-soap  
yum install php53u-xml php53u-xmlrpc php53u-bcmath  

UPDATE
Кто-то удалил свой ответ. Это было хорошо. Я возвращаю это с точными шагами. Сначала я должен был установить php53u-devel
Цитировать "
Вам нужно расширение PDO. Обычно лучший способ установить расширения - это PECL.

Прежде чем вы сможете установить любые расширения PECL, вам нужно установить пакет php5-dev

sudo pecl install pdo
sudo pecl установить pdo_mysql
Затем вам нужно добавить следующее в конец вашего файла (ов) php.ini. В зависимости от того, какую версию PHP вы установили, они будут /etc/php5/apache2/php.ini, /etc/php5/cgi/php.ini и /etc/php/cli/php.ini.

расширение = pdo.so
расширение = pdo_mysql.so
«

Теперь я получаю mysql_query_missing при попытке запустить sudo pecl install pdo_mysql
и не уверен, как пройти через это.

Ответы [ 2 ]

2 голосов
/ 23 декабря 2011

Вам также потребуется установить пакет php-pdo.

Редактировать: Может быть, это также поможет: Как включить PDO с помощью CentOS?

1 голос
/ 24 мая 2012

Я успешно смог установить PHP-5.3 на CentOS 5.4 Linux.Мне нужно было это, чтобы иметь возможность успешно установить и запустить Drupal 7 - что также сработало для меня.Вот подробности:

Это копия ответа, который я написал в ServerFault: https://serverfault.com/a/392168/29205

(... для моего вопроса: https://serverfault.com/questions/391772/php-xml-install-complains-of-dependency-php-common-but-this-is-already-installed/392168#392168)

Решение основано на принятом ответе:

https://serverfault.com/questions/391839/how-to-force-centos-yum-to-use-a-later-version-of-a-package-dependency-already-i

В заключение: перейти к php5.3.

Причина: поддержка php5.2 как удалено из-за проблем безопасности, как объяснено в принятом ответе этого другого вопроса.Это удаление приводит к несоответствию версий зависимостей и, следовательно, к ошибке.

Фон

Я хотел запустить Drupal 7 на компьютере с CentOS 5.4.Поэтому мне понадобилась версия PHP 5.3.

Вот полные рабочие шаги для обновления до PHP 5.3 с работающими репозиториями по состоянию на 24 мая 2012 г. (я предоставляю комментарии, начинающиеся с # - они вам не нужны, только дляВаша информация)

# Comment: sites like http://www.computingunplugged.com/issues/issue201102/00002619001
# provide a good start for remedying the problem whereby we need 5.3 on CentOS 5.4 to run Drupal 7. But although their packages worked at the time, the links are now outdated, and updates to these are below.


# comment: (as of May 2012 - the following work, the reason for failures was use of 1) older packages no longer on the server and 2) change of address of one of the servers to dl.fedoraproject.org/pub/epel (credit to: http://osdir.com/ml/centos/2012-03/msg00057.html )

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/ius-release-1.0-10.ius.el5.noarch.rpm  

yum erase php php-pear php-mysql php-cli php-common  

yum install php53u php53u-pear php53u-cli php53u-common php53u-gd  
yum install php53u-mbstring php53u-mcrypt php53u-mysql php53u-soap  
yum install php53u-xml php53u-xmlrpc php53u-bcmath 


# After doing the above, php -v shows 5.3.x But on attempting to install Drupal 7 you may get complaint of something "Your PHP installation is too old 5.1.6 Drupal requires at least PHP 5.2.4. See the system requirements page for more information." and php.info shows the same

# The remedy is to simply restart your apache server

service httpd restart

# credit to following for suggesting service httpd restart :-
# https://serverfault.com/a/207806/29205
# https://serverfault.com/questions/207762/centos-updating-php-via-yum-doesnt-change-the-version-apache-uses

# Drupal 7 install on CentOS 5.4 worked after applying the above steps

# If your MySQL server is not running (check by ps -ef | grep mysql ) then you can run:

/etc/init.d/mysqld

# ...to start it, and to make sure it starts when the machine is restarted or cold booted:

chkconfig mysqld on
...