我目前有一个运行MySQL和PHP的网站,这一切都在运行。我已经尝试安装WAMPServer以便能够在我自己的计算机上工作,但是我一直在尝试使网站正常工作时遇到问题。
HTML和PHP文件正常工作(转到http://localhost/index.php等)。但有些页面显示“此网页不可用”(在Chrome中)或“Internet Explorer无法显示此网页”,这导致我认为服务器存在错误,因为当页面不存在时,它通常情况是“哎呀!这个链接似乎已被打破”或IE的标准404页面。
我网站中的每个页面都有一个include()调用来设置一个类的实例来处理所有数据库事务。此类在其构造函数中打开与数据库的连接。我发现注释掉构造函数的内容将允许页面加载,虽然这可以理解地导致页面中的错误。
这是包含文件的内容:
class dbAccess {
private $db;
function __construct() {
$this->db = mysql_connect("localhost","root","") or die ("Connection for database not found.");
mysql_select_db("dbName", $this->db) or die ("Database not selected");
}
...
}
作为对此处发生的事情的说明。我试图在我的网站上使用数据库,而不是本地机器。 dbName,user和password的实际值在我将它们插入我的数据库软件(Navicat Lite)并在网站的最终版本上正常工作时起作用,因此我认为问题不在于这些值本身,而在于使用Apache或Wamp进行一些设置。
这是我的Apache错误日志的摘录,用于登录网站的一次尝试:
[Wed Apr 14 15:32:54 2010] [notice] Parent: child process exited with status 255 -- Restarting.
[Wed Apr 14 15:32:54 2010] [notice] Apache/2.2.11 (Win32) PHP/5.3.0 configured -- resuming normal operations
[Wed Apr 14 15:32:54 2010] [notice] Server built: Dec 10 2008 00:10:06
[Wed Apr 14 15:32:54 2010] [notice] Parent: Created child process 1756
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Child process is running
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Acquired the start mutex.
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Starting 64 worker threads.
[Wed Apr 14 15:32:55 2010] [notice] Child 1756: Starting thread to listen on port 80.
我尝试在线搜索解决方案,但一直无法找到任何帮助。如果您需要任何进一步的信息来帮助解决此问题,请随时提出要求。
(还有一点,我在这台电脑上甚至没有Skype,所以我看不出它是一个问题,因为这个冲突似乎是任何Wamp问题的默认响应。)
[编辑:已从错误日志中删除条目,因为它已作为无关问题解决] [编辑:通过我的主机文档,我发现除了80和443(用于HTTP和HTTPS)之外的所有端口都被阻止,这意味着他们不允许外部连接,就像我在这里尝试做的那样。我已将其更改为本地数据库,但我仍然收到相同的错误。问题仍然存在。]
答案 0 :(得分:2)
我也遇到过这个问题。我的解决方案是将mysql_connect方法从其类中移出并直接调用它。
答案 1 :(得分:0)
让我们绕过apache一会儿。在目录< wamp> /bin/php/php5.3.0中有一个实现cli sapi(命令行版本)的php.exe。
将文件test.php放在
目录中<?php
if ( !extension_loaded('mysql') ) {
die('the mysql extension is not present');
}
echo 'phpversion=', phpversion(), "\n"; flush();
echo 'client_info=', mysql_get_client_info(), "\n"; flush();
$mysql = mysql_connect('localhost', 'root', '') or die(mysql_error());
echo "seems to be working\n"; flush();
echo 'server_info=', mysql_get_server_info($mysql), "\n"; flush();
作为内容。然后打开命令shell,“转到”目录
c:
cd c:\wamp\bin\php\php5.3.0
并运行
php.exe -f test.php
应打印类似
的内容phpversion=5.3.2
client_info=mysqlnd 5.0.7-dev - 091210 - $Revision: 294543 $
seems to be working
server_info=5.1.37
(虽然版本会因你的情况而有所不同)