部署后拒绝PHP访问 - 登录

时间:2013-04-04 15:49:05

标签: php mysql phpmyadmin

我一直在本地开发一个简单的站点,现在我已准备好将它部署到我的服务器 - 该站点在本地运行。该站点从MySql数据库读取并部署在Ubuntu服务器上 - 我已经安装了所需的一切。

我页面的内容是:

    include "Connection.php";
    $db_handle = mysql_connect($server, $user_name, $password);
    $db_found = mysql_select_db($database, $db_handle);
    //code continues

Connection.php的内容是:

<?php
  $user_name = "myuser";
$password = "123456";
$database = "results";
$server = "localhost";
?>

使用PhpMyAdmin我创建了“results”数据库,并为其分配了一个名为“myuser”的用户,并拥有所有权限。 当我尝试导航到该网站时,我收到错误:

Access denied for user 'www-data'@'localhost' (using password: NO)

这让我觉得网站没有阅读我的“Connection.php”文件。我是对的,我该如何解决这个问题?我是否需要更改网站文件夹或其他任何内容的权限?

2 个答案:

答案 0 :(得分:0)

使用一些调试......

  1. 尝试使用require()

      

    如果PHP解释器无法包含文件以响应调用   include()或include_once(),生成和执行中的警告   继续没有该文件。其中,未包含文件   由require()或require_once()调用生成致命错误和   执行就在那里停止。

    当脚本连接失败或包含文件时,使脚本抛出错误。

  2. 再次检查用户名和密码。这包括您甚至检查用户是否存在。

答案 1 :(得分:0)

当你没有有效的连接,并尝试数据库查询时,php / mysql将尝试使用运行apache和php的系统用户“www-data”创建连接。

在mysql_connect()中捕获错误并打印mysql_error()消息,这将有所帮助。可能是因为超出了最大连接数。

尝试使用mysql_connect&amp; amp;中的硬编码细节mysql_select_db函数只是为了测试。

同时检查是否包含Connection.php。使用“require”而不是include,以便在文件丢失时抛出错误。