كيفية التحقق مما إذا تم تمكين دعم PDO في تثبيت Apache الخاص بي؟
-
23-08-2019 - |
سؤال
أنا أستخدم استضافة مشتركة من خلال cipl.in. يستخدمون cpanel. أحاول نشر تطبيق ZEND على موقع الويب الخاص بي. ومع ذلك فإنه يحتفظ بإعطاء الخطأ.
An error occurred
Application error
Exception information:
Message: The PDO extension is required for this adapter but the extension is not loaded
Stack trace:
#0 /home/cubeeeco/worminc/library/Zend/Db/Adapter/Abstract.php(770): Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 /home/cubeeeco/worminc/library/Zend/Db/Adapter/Abstract.php(840): Zend_Db_Adapter_Abstract->quote('windchimes', NULL)
#2 /home/cubeeeco/worminc/library/Zend/Auth/Adapter/DbTable.php(354): Zend_Db_Adapter_Abstract->quoteInto('`password` = MD...', 'windchimes')
#3 /home/cubeeeco/worminc/library/Zend/Auth/Adapter/DbTable.php(285): Zend_Auth_Adapter_DbTable->_authenticateCreateSelect()
#4 /home/cubeeeco/worminc/library/Zend/Auth.php(117): Zend_Auth_Adapter_DbTable->authenticate()
#5 /home/cubeeeco/worminc/application/controllers/LoginController.php(117): Zend_Auth->authenticate(Object(Zend_Auth_Adapter_DbTable))
#6 /home/cubeeeco/worminc/library/Zend/Controller/Action.php(503): LoginController->processAction()
#7 /home/cubeeeco/worminc/library/Zend/Controller/Dispatcher/Standard.php(285): Zend_Controller_Action->dispatch('processAction')
#8 /home/cubeeeco/worminc/library/Zend/Controller/Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#9 /home/cubeeeco/public_html/worm/index.php(47): Zend_Controller_Front->dispatch()
#10 {main}
أيضا عندما أحاول طباعة phpinfo أحصل عليه:
System Linux bear.dnsracks.com 2.6.18-92.1.13.el5PAE #1 SMP Wed Sep 24 20:07:49 EDT 2008 i686
Build Date Jun 8 2009 13:50:29
Configure Command './configure' '--disable-pdo' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-sockets' '--prefix=/usr' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-png-dir=/usr' '--with-ttf' '--with-xpm-dir=/usr' '--with-zlib' '--with-zlib-dir=/usr'
Server API CGI
Virtual Directory Support disabled
Configuration File (php.ini) Path /usr/lib
Loaded Configuration File /usr/local/lib/php.ini
Scan this dir for additional .ini files (none)
additional .ini files parsed (none)
PHP API 20041225
PHP Extension 20060613
Zend Extension 220060519
Debug Build no
Thread Safety disabled
Zend Memory Manager enabled
IPv6 Support enabled
Registered PHP Streams php, file, data, http, ftp, compress.zlib, https, ftps
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filters string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, convert.iconv.*, zlib.*
هذا يمكن أن ينظر إليه في http://cubeee.co.in/worm/tester.php.
ومع ذلك، عندما أعود إلى مقدمي استضافتي، أخبروني أنهم قاموا بتعديل php.ini لتمكين دعم PDO وسيقومون بالتحقق مرة أخرى. ما الذي أحتاج إلى القيام به أو اسأل مضيفي القيام به؟
المحلول
يظهر الأمر التكوين في إخراج PHP:
'--disable-pdo'
لذلك أعتقد أنه من الآمن افتراض أنهم لم يمكينهم.
نصائح أخرى
if (!defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO unavailable';
}
elseif (defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO available';
}
آمل أن يكون هذا يعمل
هل هذا التطبيق يريد PDO_MYSQL؟ إذا كان الأمر كذلك، فقد تتمكن من استخدام محول MySQLI بدلا من ذلك - يعتمد ذلك على البرنامج ولكنه ممكن.
في المنطقة التي تقوم فيها بتعيين تفاصيل اتصال قاعدة البيانات الخاصة بك، ربما يكون هناك خيار يسمى "محول". حاول تحديد قيمةها إلى "mysqli"