2016-02-05 97 views
2

我已經設置了phpbrew,包括安裝所有requirements並使用下面的命令成功編譯PHP-5.6.11:phpbrew不能連接到MySQL

sudo phpbrew --debug install php-5.6.11 +default+mysql+pdo+debug +apxs2 -- --with-mysql-sock=/var/run/mysqld/mysqld.soc 

我的PHP版本之間使用下面的phpbrewswitch腳本切換,這是我在this comment發現:

#!/usr/bin/env bash 
VERSION=$1 

SOFILE=/usr/lib/apache2/modules/libphp$VERSION.so 
CONFFILE=/etc/apache2/mods-available/php5.load 

source ~/.phpbrew/bashrc 

if [ -f $SOFILE ]; then 
    phpbrew switch $VERSION 
    phpbrew list 

    FILECONTENTS="LoadModule php5_module $SOFILE" 
    echo $FILECONTENTS > $CONFFILE 

    echo "Updated $CONFFILE" 
    sudo service apache2 restart 

else 
    echo $VERSION "is not configured for apache" 
    phpbrew list 
fi 

這個腳本簡單地使用phpbrew切換PHP版本,並告訴阿帕奇使用請求版本的.so文件,然後重新啓動Apache的。 (所有在一個服務器,這使得它很容易地轉回&第四yay!)

但是我的本地PHP 5.6.11安裝和phpbrew 5.6.11安裝之間切換導致mysql停止連接。 phpinfo在兩個版本上運行良好,並顯示相關信息,僅供參考。我錯過了什麼?有沒有在php.ini中使MySQL工作?這是我用phpbrew編譯時缺少的參數嗎?任何建議表示讚賞,我真的想得到這個工作。

回答

2

我想通了。事實證明,我的PHP腳本中的mysql主機變量被設置爲「localhost」。明確地將其設置爲「127.0.0.1」做了訣竅。不知道爲什麼localhost不解決,但whatevs。有用! XD

2

檢查配置文件中的mysql套接字路徑,它可能與其他版本的php不同。