配置数据库

最后,我们将创建一个简单的数据库,其中包含一些示例内容以显示在我们的页面上。

要快速配置 MariaDB,请运行“mysql_secure_installation”并完成这些步骤。
对于我的安装,我对所有内容都回答“是”,这将为数据库设置 root 密码。
有关设置 MariaDB 的更多信息,请参阅我们的安装教程。

完成后,我们将登录 MariaDB,如下所示。
这将提示我们输入刚刚设置的 root 密码。

[jack@onitroad ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.50-MariaDB MariaDB Server
Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

现在我们在 MariaDB 提示符下,我们可以创建我们的数据库。
创建数据库后,我们指定要使用它。

MariaDB [(none)]> create database testing;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use testing;
Database changed

接下来,我们将创建一个表并向其中插入一些数据。

MariaDB [testing]> create table user(firstname VARCHAR(40), lastname VARCHAR(40));
Query OK, 0 rows affected (0.00 sec)
MariaDB [testing]> insert into user (firstname, lastname) values ('john', 'smith');
Query OK, 1 row affected (0.00 sec)
MariaDB [testing]> select * from user;
+-----------+----------+
| firstname | lastname |
+-----------+----------+
| john      | smith    |
+-----------+----------+
1 row in set (0.00 sec)

我们将创建一个新的“演示”帐户,而不是使用我们的 root 帐户,该帐户仅对测试数据库中的用户表具有选择权限,而没有其他权限,因为这是读取数据所需的全部内容。
出于这个简单目的而使用 root 帐户不被认为是一种好的安全做法。

MariaDB [testing]> create user jack@onitroad identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [testing]> grant select on testing.user to jack@onitroad;
Query OK, 0 rows affected (0.00 sec)
MariaDB [testing]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

现在让我们在 PHP 的帮助下将这些信息打印到一个网页上,这就是我们在开始时安装 php-mysql 包的原因,它用于我们可以通过 PHP 访问 MySQL/MariaDB 数据库。

这个 PHP 脚本将从测试数据库中的用户表中加载名字和姓氏的内容,并将它们打印到页面上。

[jack@onitroad ~]# cat /var/www/html/users.php
 <?php
$servername = "localhost";
$username = "demo";
$password = "password";
$dbname = "testing";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT firstname, lastname FROM user";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>

在最后一个示例中,我们现在创建了使用 PHP 脚本从 MariaDB 数据库读取数据的内容,然后通过 Apache 通过 HTTP 提供数据。

如何使用 CentOS 7 Linux 设置 LAMP Web 服务器

虽然 LAMP 传统上代表 Linux、Apache、MySQL 和 PHP,但我们将在这里使用 MariaDB 而不是 MySQL,因为 MariaDB 是 CentOS 7 中的默认设置。
别担心,因为它是 MySQL 的替代品。

启动和启用服务

默认情况下,Apache Web 服务器和 MariaDB 数据库都不会在系统启动时启动,如下所示。

[jack@onitroad ~]# systemctl is-enabled httpd mariadb
disabled
disabled

我们可以启用这些服务,以便它们在系统启动时自动启动,如下所示。

[jack@onitroad ~]# systemctl enable httpd mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[jack@onitroad ~]# systemctl is-enabled httpd mariadb
enabled
enabled

尽管我们的服务现在可以在启动时自动启动,但它们当前并未运行。

[jack@onitroad ~]# systemctl is-active httpd mariadb
inactive
inactive

我们现在将继续启动 Apache 和 MariaDB,确认它们之后正在积极运行。

[jack@onitroad ~]# systemctl start httpd mariadb
[jack@onitroad ~]# systemctl is-active httpd mariadb
active
active

安装 LAMP 包

由于我们已经安装了 CentOS 7 并准备就绪,我们将继续使用 yum 安装 Apache、MariaDB 和 PHP 包,如下所示。

[jack@onitroad ~]# yum install httpd php php-mysql mariadb-server -y

CentOS为apache web服务器配置防火墙

默认情况下,firewalld 在 CentOS 7 中运行并启用,因此对我们的 Web 服务器的外部 HTTP 请求将被自动阻止。
因此,我们将修改 firewalld 以便它接受端口 80 上的 HTTP 请求的入站流量。

首先,我们将 HTTP 服务添加为永久规则,以便它在系统重启后仍然存在,然后我们重新加载 firewalld,以便更改在运行配置中处于活动状态。

[jack@onitroad ~]# firewall-cmd --permanent --add-service=http
success
[jack@onitroad ~]# firewall-cmd --reload
success

现在,如果我们列出通过防火墙接受的服务,我们将看到 http 与 ssh 和 dhcpv6-client 一起列出,默认情况下允许通过。

[jack@onitroad ~]# firewall-cmd --list-services
dhcpv6-client http ssh

我们可以通过将服务器的 IP 地址放入 Web 浏览器进行测试,如果 Apache 能够正确响应请求,我们应该会看到一个默认的 Apache 测试页面。

如果我们不确定 IP 地址是什么,我们可以运行“ip”命令。

创建自定义页面

出于测试目的,我们将在 /var/www/html 目录中创建一个 index.html 页面,然后应该加载该页面,而不是我们之前看到的默认 Apache 页面。

[jack@onitroad ~]# echo "Hello World" > /var/www/html/index.html

Apache 正在为我们的静态内容提供服务,现在让我们检查 PHP 是否正常工作并且能够提供动态内容。

我们将通过创建一个 phpinfo 文件来做到这一点,这只是将有关 PHP 的各种信息输出到页面。

[jack@onitroad ~]# echo "<?php phpinfo(); ?>" > /var/www/html/index.php

打开 http://ip地址/index.php
这证实了 Apache 能够提供动态 PHP 内容。

日期:2020-07-07 20:56:36 来源:oir作者:oir