我得出的结论是,我的 PHP 安装和 MySQL 安装无法兼容;我正在制作第一个使用 MySQL 作为内容的网页,但经过两天、手册页、在线文档和数十个教程,我就是无法让 PHP/MySQL 部分工作。我有一个已建立的家庭 Web 服务器(我是唯一的管理员/用户),运行 Apache 并托管我的网页。我安装了 MySQL,并且能够通过终端创建和查询数据库。我安装了 PHP,并且可以使用 echo 将文本打印到文档中。但是,当我使用 MySQL 时,一切都变了……
我有一个页面,其中包含初始化内容。包含几段硬编码的 HTML,然后是用于访问 MySQL 的 PHP 代码。当我第一次加载该页面时,结果只是一个空白页。我注释掉了 PHP 部分并重新加载以确认纯 HTML 仍然有效,结果确实如此。因此,PHP 的某些部分阻止了页面的任何部分加载。
为了开始排除代码故障,我把所有 PHP 代码都注释掉了,除了以下用于服务器连接的代码,该代码改编自几个不同的教程:
<?
echo("<p>PHP is working</p>");
$ses = mysql_connect("localhost","username","password");
if(!$ses){
echo("<p>Connection to content server failed.</p>");
exit();
}
echo("<p>Database Connected</p>");
?>
加载页面时,除了“PHP 正在运行”的段落外,还会加载开头的 HTML,但不会显示失败或成功消息。我从代码中删除了 If 结构 - 这样只剩下两个 echo 和 mysql_connect - 并得到了相同的结果。
mysql_connect 功能似乎导致服务器在运行时停止加载代码,但我不知道该如何修复它。记录如下:我已修改 php.ini 文件以包含“connection = msql.so”行,并且我使用的是 MySQL 5.5、Apache 2.2.22、PHP 5.3.10、Ubuntu 12.04。此外,我的路由器和调制解调器都已配置为将端口 3306 转发到服务器 - 虽然我不认为这有什么必要 - 并且我的 MySQL 用户名和密码已经过三重检查,并且与我在终端中成功使用的用户名和密码相同。
我错过了什么?
答案1
一切看起来都很好,所以我认为你的安装并不完整。为了让 mysql 和 php 进行通信,你需要安装以下软件包php5-mysql
:
sudo apt-get install php5-mysql
答案2
安装php5-mysql
包并使用mysqli_connect而不是 mysql_connect
答案3
sudo apt-get install php5-mysql
从 中找到 Tomcat-version /etc/init.d/
。应该有一个名为 tomcat7 的文件,因此 7 是版本
sudo service tomcat7 stop
sudo service tomcat7 start
有时重启机器有助于解决其他问题。重启后,不要忘记运行:
sudo service tomcat7 start