UBUNTU lamp环境下,用php实现一个页面,能连接数据库
第二种动态语言
a.实验环境描述
ubuntu 12.04.5
php version 5.3.10
mysql Ver 14.14
Apache/2.2.22 (Ubuntu)
b.系统架构图
c.相关配置总结
1. 安装Apache2
2. 安装PHP模块
3. 安装Mysql
在前面的实验中,已经安装了Mysql,所以这一步可以跳过。
如果还没安装,则代码是:sudo apt-get install mysql-server
4. 其他模块安装
要想apache能够解析PHP,就需要借助这两个模块来找到php engine。
第三个在php操作mysql数据库时用到:
第四个GD库:
5.基本配置
Ubuntu的apache2配置在/etc/apache2目录下,这个目录下有个apache2.conf文件,这个文件通过包含其他配置文件涵盖了所有的apache2系统配置信息。
(1)进入目录/etc/apache2,打开文件apache2.conf,在apache2.conf中添加下面信息:
(2)pache2的默认目录配置在/etc/apache2/sites-enabled/000default文件中,进入000default文件,找到该文件中的DocumentRoot项, 将/var/www改为你的开发目录,即/home/elrah
(3) 重启apache
(4)测试,在/home/elrah/phptest目录写一个简单的程序如下(test1.php):
<!DOCTYPEhtml>
<html>
<head>
<title>PHP Site</title>
</head>
<body>
<p>
<center>
<?php
echo "Hello,This is myfirst PHP webpage\n";
phpinfo();
?>
</center>
</p>
</body>
</html>
结果显示:
6.代码,连接数据库
在/home/elrah/phptest目录下写一个程序test2.php
在浏览器运行网址localhost/phptest/test2.php
7.成功!!
d.核心代码总结
<!DOCTYPE html>
<html>
<head>
<title>PHP Site</title>
</head>
<body>
<p>
<center>
<?php
echo "<table style='border: solid 1px black;'>";
echo"<tr><th>Id</th><th>name</th><th>class</th></tr>";
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it,self::LEAVES_ONLY);
}
function current() {
return "<tdstyle='width:150px;border:1px solid black;'>" . parent::current()."</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>". "\n";
}
}
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "time";
try {
$conn =new PDO("mysql:host=$servername;dbname=$dbname", $username,$password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt =$conn->prepare("SELECT id, name, class FROM time");
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll()))as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
echo"Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>
</center>
</p>
</body>
</html>