今天幹了一件很嚴重的錯事,用tp開發完新專案後,傳到伺服器上報錯,網上查了一下,說未載入pdo,就載入吧。找到配置檔案php.ini,搜到;extension=php_pdo_mysql.dll,去掉前面的注釋,重啟伺服器,看似一切正常,卻大錯特錯。
linux下應該是.so,而不是.dll,php原始碼中的php.ini-development只是用.dll作為樣例,在linux下不能直接去除注釋就行了。但是我一直沒發現,誤以為是php.ini未生效,在網上找各種解決辦法,一直改配置檔案,結果誤操作,把生產環境上面的配置檔案也改了。造成大問題。唉。。。。。。在網上找了個linux下正確新增新擴充套件的方法,以pdo為例:
進去到php的原始碼包的ext中
[root@linux php]# cd /usr/local/src/php-5.2.17/ext/pdo_mysql
[root@linux pdo_mysql]# /usr/local/php/bin/phpize(phpize 命令是用來準備 php 外掛程式模組的編譯環境的)
configuring for:
php api version: 20041225
zend module api no: 20060613
zend extension api no: 220060519
[root@linux pdo_mysql]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql (假設你的mysql是安裝在/usr/local/mysql)
[root@linux pdo_mysql]# make && makeinstall
。。。。。。。。。。
build complete.
don't forget to run 'make test'.
installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
修改php.ini加入
extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/pdo_mysql.so"
重啟apache
/usr/local/apache2/bin/apachectl restart 重啟
phpinfo中有pdo_mysql了
總結:一直用的整合環境,沒編譯安裝過php環境,而且對php的配置不熟悉。
Linux下php新增新擴充套件
今天幹了一件很嚴重的錯事,用tp開發完新專案後,傳到伺服器上報錯,網上查了一下,說未載入pdo,就載入吧。找到配置檔案php.ini,搜到 extension php pdo mysql.dll,去掉前面的注釋,重啟伺服器,看似一切正常,卻大錯特錯。linux下應該是.so,而不是.dll,php原...
Linux下php新增redis擴充套件
檢視php版本 php v 如下 php 7.1.25 cli built dec 6 2018 22 54 10 nts php 7.1.25 cli built dec 6 2018 22 54 10 nts 列出所有的可以安裝的php軟體包列表 yum list grep php71w 結果大...
Linux下php動態新增擴充套件
假定手動配置好php環境情況下.一.生成需要呼叫的so檔案 要呼叫的演算法 int rgb to gray int r,int g,int b gcc o c fpic o gray.o gray.c fpic 是指生成的動態庫與位置無關 gcc shared o libgray.so gray.o...