我已经设置了phpbrew,包括安装所有requirements并使用以下命令成功编译了php-5.6.11:
sudo phpbrew --debug install php-5.6.11 +default+mysql+pdo+debug +apxs2 -- --with-mysql-sock=/var/run/mysqld/mysqld.soc
我可以使用下面的phpbrewswitch脚本在php版本之间切换,我在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版本并告诉apache使用.so文件来获取所请求的版本,然后重新启动apache。 (所有这些都在一个命令中,可以很容易地切换回来,然后再推出!)
但是,在本地php 5.6.11安装和phpbrew 5.6.11安装之间切换会导致mysql停止连接。 phpinfo在两个版本上运行良好并显示相关信息,仅供参考。我错过了什么? php.ini中有什么东西可以让mysql工作吗?这是一个我用phpbrew编译时缺少的参数吗?任何建议表示赞赏,我真的很想让这个工作。
答案 0 :(得分:2)
我明白了。事实证明,我的php脚本中的mysql主机变量设置为“localhost”。明确地将其设置为“127.0.0.1”就可以了。不确定为什么localhost没有解决但是whatevs。有用! XD
答案 1 :(得分:2)
检查配置文件中的mysql套接字路径,它可能与其他版本的php不同。