2009-09-23 84 views
0

我有一個運行中的服務器(在將它變成dev服務器的過程中,但首先需要一些東西),所以我們不想重新編譯php來破壞任何東西。Mysql作爲一個PHP DSO

在新的服務器上,我們有mysql.so和mysqli.so的動態擴展 我一直無法找到任何有關構建自己的細節的信息,因此將它們複製到舊服務器上。在當前服務器上,它沒有使用php配置MySQL。 MySQL被安裝在機器上,但是被用在一個現在未被使用的服務上。目的是在遠程服務器上使用MySQL數據庫。

我已經加入了線在php.ini

extension=mysql.so 
extension=mysqli.so 

我最終得到這個錯誤:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/mysqli.so' - libmysqlclient.so.15:cannot open shared object file: No such file or directory in Unknown on line 0 

我感動的是文件的拷貝到/ usr/lib目錄/ MySQL /但我仍然收到錯誤。

有沒有什麼我應該做的,讓PHP運行MySQL(或MySQLi),而不必冒險重新編譯在現場服務器上?

回答

1

看起來像你的文件路徑是不同的。是mysql.so:

/usr/local/lib/php/extensions/mysqli.so 

+0

是的。 ini也有設置 extensions_dir =「/ usr/local/lib/php/extensions /」 – 2009-09-24 14:57:38

+0

「libmysqlclient.so」在哪裏? – 2009-09-24 18:07:41

0

從包或端口安裝擴展和PHP本身總是更好,而不是編譯源自己。你的操作系統是什麼?在你的情況下,似乎初始化libmysqlclient庫時會出現問題,這會引發錯誤。你可以從服務器上的命令行啓動mysql客戶端工具嗎?它工作正常嗎?

+0

我同意這些軟件包,但那不是我的電話(我的老闆)。 不確定操作系統是什麼。這是一個只有命令行的Linux版本。 我真的不想在Web服務器上啓動MySQL,只能調用查詢到遠程數據庫服務器。它是否必須安裝在Web服務器上才能做到這一點? – 2009-09-24 15:01:06

+0

您需要libmysqlclient才能從PHP使用MySQL。 MySQL服務器本身沒有必要。但是libmysqlclient版本應該與您通過它調用的MySQL服務器的版本相匹配。 – 2009-09-25 08:12:28