1. 搭建运行环境
1.1 挂载光盘
[root@redhat200 ~]# mount /dev/sr0 /mnt
1.2 配置仓库
# 查看仓库列表
[root@redhat200 ~]# dnf repolist# 进入到仓库目录
[root@redhat200 ~]# cd /etc/yum.repos.d/
# 编辑仓库文件
[root@redhat200 yum.repos.d]# vim base.repo
# 查看仓库内容
[root@redhat200 yum.repos.d]# cat base.repo # 生成缓存
[root@redhat200 yum.repos.d]# dnf makecache
仓库内容:
[base]
name=base
baseurl=/mnt/BaseOS
gpgcheck=0
[app]
name=app
baseurl=/mnt/AppStream
gpgcheck=0
1.3 安装PHP服务
[root@redhat200 yum.repos.d]# dnf -y install php*
1.4 安装Apache
# 安装 apache 软件,其实就是安装 httpd 服务
[root@redhat200 yum.repos.d]# dnf -y install httpd
# 启动服务
[root@redhat200 yum.repos.d]# systemctl start httpd
# 查看 80 端口是否已经启动
[root@redhat200 yum.repos.d]# ss -lntup | grep 80
# 进入http服务的目录下
[root@redhat200 html]# cd /var/www/html# 编写index.php页面
[root@redhat200 html]# echo "hello php" > index.php
1.5 放行服务和端口
# 查看防火墙信息
[root@redhat200 html]# firewall-cmd --list-all# 将 http 服务加入到防火墙列表中
[root@redhat200 html]# firewall-cmd --permanent --add-service=http# 将80端口加入到防火墙列表中
[root@redhat200 html]# firewall-cmd --permanent --add-port=80/tcp# 重新加载防火墙,让上面的配置生效
[root@redhat200 html]# firewall-cmd --reload# 查看防火墙列表信息
[root@redhat200 html]# firewall-cmd --list-all
1.6 运行测试
打开浏览器,输入 http:ip 可以看到页面内容则表示配置成功
2. PHP基础
2.1 基本语法
一个 php 文件,它的编写格式为
<?php 内容
?>
[root@redhat200 html]# cat index.php
<hmtl>
<head>
<meta char="utf-8"/>
<title>php</title>
</head>
<body>
<?phpecho "hello php";
?>
</body>
</html>
2.2 注释
- 单选注释:// 注释内容
- 多行注释: /* 注释内容 */
2.3 变量
在 PHP 中定义变量需要使用 $变量名
来声明。
<?php$a=5;$b=10;$c = $a + $b;echo $c;
?>
2.5 if语句
语法格式:
if (条件) {执行语句;
}else if (条件) {执行语句;
}else {执行语句;
}
2.6 switch语句
语法格式:
switch(表达式) {
case 情况1:执行语句;break;
case 情况2:执行语句;break;
case 情况3:执行语句;break;
default:执行语句;break;
}
2.7 for循环
语法格式:
for (初始值; 条件; 增量) {要执行的代码;
}
2.8 while循环
语法格式:
while (条件){要执行的代码;
}
2.9 数组
在 PHP 中定义数组需要使用 array() 函数来声明,在这个函数中定义数组中的元素。
$数组名称 = array(元素1,元素2,....,元素n);
使用示例:
<?php
$arr = array(1,2,3,4,5);
echo $arr[0] . ", " . $arr[1] . ", " . $arr[2] . "<br>";
for($i=0; $i<count($arr); $i++) {echo $arr[$i] . "<br>";
}
echo "-----------------<br>";
?>
2.10 函数
语法格式:
function functionName($fname) {要执行的代码;
}
使用示例:定义一个函数,用户计算给定参数的阶乘
<?php
$i=5;
function factorial($num) {if ($num == 1)return 1;elsereturn $num*factorial($num-1);
}
echo factorial($i);
?>
2.11 对象
声明一个类的语法格式:
<?php
class phpClass {var $var1;var $var2 = "constant string";function myfunc ($arg1, $arg2) {[..]}[..]
}
?>
注意:调用类的方法也需要使用 -> 来进行调用
例如,我们声明一个 Site 类,在这个类别定义 url 和 title 属性,并定义一些给属性设置的方法以及获取这些属性值的方法。
<?php
class Site {/* 成员变量 */var $url;var $title;/* 成员函数 */function setUrl($par){$this->url = $par;}function getUrl(){echo $this->url . PHP_EOL;}function setTitle($par){$this->title = $par;}function getTitle(){echo $this->title . PHP_EOL;}
}
$site = new Site();$site->setUrl("http://www.baidu.com");
$site->setTitle("baidu");echo $site->getUrl();
echo $site->getTitle();
?>
2. 表单
PHP 中的 $_GET 和 $_POST 变量用于检索表单中的信息,比如用户输入。
2.1 GET请求
1)编写一个链接,在这个链接上我们传一个 id 参数,然后获取这个参数
<html>
<head>
<meta charset="utf-8"/>
<title>aaa</title>
</head>
<body>
<a href="get.php?id=<?php echo $_GET["id"]; ?>">click me<?php echo $_GET["id"]; ?></a>
</body>
</html>
2)使用时,我们在浏览器的地址栏中输入 http://IP/get.php?id=100
2.2 POST请求
1)编写一个表单页面 index.php
<html>
<head>
<meta charset="utf-8"/>
<title>form</title>
</head>
<body>
<form action="handle.php" method="post">
account: <input type="text" name="account" placeholder="please input your account"/><br>
password: <input type="password" name="password" placeholder="please input your password"/><br>
<input type="submit" value="login"/>
<input type="reset" value="cancel"/>
</form>
</body>
</html>
2)编写接收表单数据的处理程序 handle.php
<?php
$account = $_POST["account"];
$password = $_POST["password"];
if ("admin" == $account && "123" == $password) {echo "login success";
} else {echo "account error or password error";
}
?>
3. 安装数据库
以 mariadb 数据库为例演示安装
# 安装数据库
[root@redhat200 html]# dnf -y install mariadb mariadb-server# 启动数据库
[root@redhat200 html]# systemctl start mariadb# 查看端口号
[root@redhat200 html]# ss -lntup | grep 3306 # 登录数据库
[root@redhat200 html]# mysql -uroot -p
Enter password: #直接回车,不要输入密码,默认为空密码# 修改root用户的密码
MariaDB [(none)]> alter user 'root'@'localhost' identified by '123456';# 退出数据库
MariaDB [(none)]> exit;# 重新使用用户名 root 和密码 123456 来登录数据库
[root@redhat200 html]# mysql -uroot -p123456
4. PHP+MYSQL
4.1 编写添加页面
[root@redhat200 html]# vim add.php
[root@redhat200 html]# cat add.php
<html>
<head>
<meta charset="utf-8"/>
<title>add user</title>
</head>
<body>
<center><h1>添加用户</h1></center>
<form action="addUser.php" method="post">
姓名: <input type="text" name="name" placeholder="请输入姓名"/><br>
年龄: <input type="text" name="age" placeholder="请输入年龄"/><br>
<input type="submit" value="添加"/>
<input type="reset" value="取消"/>
</form>
</body>
</html>
4.2 编写处理添加功能
<?php
$name = $_POST["name"];
$age = $_POST["age"];
/*
mysqli函数的参数说明:
第一个参数是连接数据库的 IP 地址,当然也可以加端口号, 如果端口号为 3306,可以不用写
第二个参数是连接数据库的用户名
第三个参数是连接数据库的密码
第四个参数是要操作的数据库名称
*/
$conn = new mysqli("localhost", "root", "123456", "openlab");
if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);
}
$sql = "insert into t_user(name, age) values('".$name."', $age)";
if ($conn->query($sql) == TRUE) {echo "add user $name success";
} else {echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>