我的PHP 5.3在我公司使用的旧服务器上工作。 我有我的AWS服务器上的PHP 5.5工作。 这两个服务器都是Ubuntu。 我的应用程序在我的AWS服务器上正常工作。 但是,当我将其迁移到旧的服务器,它停止工作,并不断告诉我有一个数据库连接问题。 现在我多次检查了login是不是一个问题。 错误日志是说PHP Warning: mysqli::mysqli(): [2002] Connection refused 。 我检查了configuration。 这个问题似乎是在我使用mysqli编写应用程序的版本中。
在这个问题和这个页面的步骤之后,我尝试将我的PHP版本升级到5.5。 但是它没有工作,因为info.php页面仍然保持不变。 所以我想也许我只是删除apache2服务器,并通过发出这个命令重新开始: apt-get remove apache2 。
但是,当我这样做后,PHP停止工作。 每当我尝试在浏览器中打开一个PHP文件,它会自动下载它。 现在我有点迷失在我应该去的地方。 我应该尝试完全删除apache2,然后从头开始重新安装它? 我在开始的时候安装了apache2服务器。 服务器很老了。
顺便说一句我检查了apache2 conf设置,并确保以下是正确的:选项索引FollowSymLinks AllowOverride所有要求所有授予
第一步:重新安装Apache。
第二步:看看你的Apache设置,并确保该行
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
指向正确的path( /usr/lib/apache2/modules/libphp5.so对我来说)。
使用find来findPHP模块的位置:
find /usr -name libphp5.so
一般不build议在服务器上安装PPA,因为它们通常提供未经testing(或未经过广泛testing)的代码。 这可能是你的新PHP安装在另一个path上的libs,你的旧PHP仍然在使用,并且让你困惑。
作为一个方面说明,尝试攻击正确的问题。 如果你的PHP在更新之前工作正常,并且在更新之后停止工作,Apache不会是罪魁祸首。 只关注PHP将使解决问题更容易,而不会丢失所有的Apacheconfiguration(我希望在删除它时不要使用清除 )。
我最后解决这个问题的方法是:用这个命令删除LAMP堆栈:
sudo apt-get remove apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 php5-common php5-mysql
然后我用这个命令删除PPA:
sudo add-apt-repository --remove ppa:ondrej/php5
然后我重新安装LAMP堆栈。 之后,我将数据库loginphp文件改为localhost而不是127.0.0.1。 佛拉! 它解决了!