前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
“LAMP” 栈是一组开源软件,通常一起安装在服务器上,以便托管动态网站和 Web 应用程序。这个术语是一个首字母缩略词,代表着 Linux 操作系统,Apache Web 服务器。网站数据通常存储在 MySQL 数据库中,并且动态内容由 PHP 处理。
在大多数 Linux 系统上,您可以通过从系统的默认软件包管理存储库下载 mysql-server
软件包来安装 MySQL。然而,在 CentOS 7 上,mysql-server
软件包实际上会安装 MariaDB,这是 MySQL 关系数据库管理系统的一个社区开发的分支,可以作为 MySQL 的替代品。因此,本教程将概述如何在 CentOS 7 服务器上安装由 Linux、Apache、MariaDB 和 PHP 组成的 LAMP 栈。
先决条件
在开始本指南之前,您应该在服务器上设置一个单独的非根用户帐户。您可以按照我们的 CentOS 7 初始服务器设置教程来学习如何做到这一点。
步骤 1 — 安装 Apache Web 服务器
Apache 是一个流行的开源 Web 服务器,用于向访问者显示网页。您可以配置它来提供 PHP 页面。
使用 CentOS 的软件包管理器 yum
安装 Apache。软件包管理器允许您从 CentOS 维护的存储库安装大多数软件。
在终端中输入以下命令以安装 httpd
Apache 软件包:
sudo yum install httpd
在提示时,输入 Y
确认安装 Apache。
安装完成后,使用以下命令启动 Apache 服务器:
sudo systemctl start httpd
您可以通过在 Web 浏览器中输入您的公共 IP 地址或域名来测试服务器是否正在运行。
如果您没有将域名指向服务器或不知道服务器的公共 IP 地址,可以通过运行以下命令来查找:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
这将打印出几个不同的地址。您可以在 Web 浏览器中尝试每个地址。
另一种方法是使用外部工具告诉您服务器的 IP 地址。您可以通过使用以下命令询问特定服务器来获取您的 IP 地址:
curl http://icanhazip.com
无论您选择哪种方法,都可以在 Web 浏览器中输入您的 IP 地址来验证服务器是否正在运行。
http://your_server_IP_address
您将看到默认的 CentOS 7 Apache 欢迎页面:
!CentOS 7 Apache’s default web server status landing page after initial installation.
您可以使用以下命令启用 Apache 开机启动:
sudo systemctl enable httpd.service
步骤 2 — 安装 MySQL(MariaDB)
在您的 Web 服务器运行时,您可以安装 MariaDB。它将组织并提供对数据库的访问,以便您的站点可以存储信息。
要安装 MariaDB 软件包,请运行:
sudo yum install mariadb-server
安装完成后,启动 MariaDB:
sudo systemctl start mariadb
您可以使用以下命令启用 MariaDB 开机启动:
sudo systemctl enable mariadb.service
为了提高数据库服务器的安全性,建议运行一个预先安装在 MariaDB 中的安全脚本。此脚本将删除一些不安全的默认设置,并锁定对数据库系统的访问。
通过运行以下命令启动交互式脚本:
sudo mysql_secure_installation
此脚本将引导您完成一系列提示,您可以在其中对 MariaDB 设置进行一些更改。第一个提示将要求您输入当前的 数据库 root 密码。这不应与 系统 root 用户混淆。数据库 root 用户是具有对数据库系统的完全权限的管理用户。因为您刚刚安装了 MariaDB,并且没有进行任何配置更改,所以此密码将为空。在提示处按 ENTER
键。
接下来的提示会问您是否要设置 数据库 root 密码。输入 N
然后按 ENTER
键。
然后,您可以按 Y
,然后按 ENTER
键,接受所有后续问题的默认值。这将删除匿名用户和测试数据库,禁用远程 root 登录,并加载这些新规则,以便服务器立即遵守您所做的更改。
完成后,通过输入以下命令登录到 MariaDB 控制台:
sudo mysql
这将以管理员数据库用户 root 的身份将您连接到 MariaDB 服务器:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
为了提高安全性,最好为每个数据库设置专用用户帐户,并为其设置较少的权限。如果您计划在服务器上托管多个数据库,这一点尤为重要。
为了演示这样的设置,创建一个名为 example_database
的数据库和一个名为 example_user 的用户。您可以用不同的值替换这些名称。
从 MariaDB 控制台运行以下命令来创建一个新数据库:
CREATE DATABASE example_database;
您可以创建一个新用户,并授予他们对您刚刚创建的自定义数据库的完全权限。以下命令将此用户的密码定义为 password
,但您应该用安全密码替换此值:
GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
此命令为 example_user 用户授予对 example_database
数据库的完全权限,同时防止此用户在服务器上创建或修改其他数据库。
使用 FLUSH
语句重新加载并保存您刚刚授予 example_user 的权限:
FLUSH PRIVILEGES;
退出 MariaDB shell:
exit
您可以通过使用上面创建的 example_user 凭据再次登录到 MariaDB 控制台来测试新用户是否具有适当的权限:
mysql -u example_user -p
请注意此命令中的 -p
标志,它将提示您输入创建 example_user 用户时选择的密码。登录到 MariaDB 控制台后,使用以下语句确认您是否可以访问 example_database
数据库:
SHOW DATABASES;
您的 example_database
应该在输出中列出:
+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)
要退出 MariaDB shell,请键入:
exit
您的数据库系统已设置好,可以继续安装 PHP。
步骤 3 — 安装 PHP
您已经安装了 Apache 用于提供内容和 MariaDB 用于存储和管理数据。PHP 将处理代码以向用户显示动态内容。除了 php
包之外,您还需要 php-mysql
,这是一个允许 PHP 与基于 MySQL 的数据库通信的 PHP 模块。核心 PHP 包将自动安装为依赖项。
使用以下命令使用 yum
安装 php
和 php-mysql
包:
sudo yum install php php-mysql
重新启动 Apache web 服务器以启用您安装的 PHP 模块:
sudo systemctl restart httpd.service
您的服务器现在已配置了 LAMP 栈应用程序所需的所有组件。下一步是测试您的配置,以确保一切都能和谐地工作。
步骤 4 — 在 Apache Web 服务器上测试 PHP
CentOS 7 上默认的 Apache 安装将创建位于 /var/www/html
的文档根目录。您无需更改 Apache 的默认设置即可使 PHP 在您的 Web 服务器内正常工作。
但是,您可以进行调整以更改 Apache 文档根目录文件的默认权限设置。这样,您就可以使用常规系统用户在该目录中创建和修改文件,而无需在每个命令前加上 sudo
前缀。
以下命令将更改默认 Apache 文档根目录的所有权为名为 sammy
的用户和组,因此请确保将此命令中的突出显示的用户名和组替换为反映您系统用户名和组:
sudo chown -R sammy.sammy /var/www/html/
您可以创建一个 PHP 测试文件以确保 Web 服务器按预期工作。使用您喜欢的文本编辑器创建此文件。以下示例使用 CentOS 7 中默认的 vi
文本编辑器。
在 var/www/html
目录下创建一个名为 info.php
的 PHP 文件:
vi /var/www/html/info.php
这将在 /var/www/html
目录下打开一个空白的 PHP 文件。按 I
键进入 INSERT
模式在 vi
编辑器中。这允许您在文本编辑器中输入和进行更改。输入以下 PHP 代码:
<?php phpinfo(); ?>
此 PHP 代码显示有关服务器上运行的 PHP 环境的信息。完成对此文件的更改后,按 ESC
键退出 vi
中的 INSERT
模式。键入 :x
– 分号和小写字母 x – 保存并关闭文件。
您可以通过访问您服务器的公共 IP 地址,后跟 /info.php
,来测试您的 Web 服务器是否正确显示 PHP 内容:
http://your_server_IP_address/info.php
浏览器将显示类似以下内容的网页:
!CentOS 7 默认 PHP 信息网页包含有关当前 PHP 配置的信息
此页面为您提供有关服务器的信息,从 PHP 的角度来看。这对于调试和确保您的设置被正确应用非常有用。在检查有关 PHP 服务器的相关信息后,最好删除此文件,因为它包含有关您的 PHP 环境和您的 CentOS 服务器的敏感信息。
您可以使用 rm
删除此文件:
rm /var/www/html/info.php
如果以后需要访问信息,您可以随时重新创建此页面。接下来,您可以使用 PHP 测试数据库连接。
步骤 5 – 使用 PHP 测试数据库连接(可选)
您可以通过创建一个带有一些测试数据的测试表来测试 PHP 是否连接到 MariaDB 并执行数据库查询。您可以从 PHP 脚本查询其内容。
首先,使用您在本指南的第 2 步中创建的数据库用户连接到 MariaDB 控制台:
mysql -u example_user -p
从 MariaDB 控制台运行以下语句,在您的 example_database
中创建一个名为 todo_list
的表:
CREATE TABLE example_database.todo_list (
item_id INT AUTO_INCREMENT,
content VARCHAR(255),
PRIMARY KEY(item_id)
);
每次编辑后,MariaDB 控制台都会通知您有关表的更改。
Query OK, 0 rows affected (0.00 sec)
在测试表中插入一些内容。您可以重复下一个命令几次,使用不同的值来填充您的测试表:
INSERT INTO example_database.todo_list (content) VALUES ("My first important item");
要确认数据已成功保存到您的表中,请运行:
SELECT * FROM example_database.todo_list;
以下是输出的示例:
+---------+--------------------------+
| item_id | content |
+---------+--------------------------+
| 1 | My first important item |
| 2 | My second important item |
| 3 | My third important item |
| 4 | and this one more thing |
+---------+--------------------------+
4 rows in set (0.000 sec)
确认您的测试表中有有效数据后,您可以退出 MariaDB 控制台:
exit
现在,您可以创建将连接到 MariaDB 并查询您的内容的 PHP 脚本。使用您喜欢的编辑器在自定义 Web 根目录中创建一个新的 PHP 文件。此示例使用 vi
:
vi /var/www/html/todo_list.php
通过在 vi
文本编辑器中按 I
键,添加以下内容,记得用您自己的用户名和密码替换 example_user
和 password
:
<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";
try {
$db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
echo "<h2>TODO</h2><ol>";
foreach($db->query("SELECT content FROM $table") as $row) {
echo "<li>" . $row['content'] . "</li>";
}
echo "</ol>";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
编辑完成后,按 ESC
键退出 vi
,然后输入 :x
保存并关闭文件。
现在,您可以通过访问您服务器的主机名或公共 IP 地址,后跟 /todo_list.php
,在您的 Web 浏览器中访问此页面:
http://server_host_or_IP/todo_list.php
以下是网页的示例,显示了您插入到 MariaDB 测试表中的内容:
!PHP 网页输出示例,显示了插入到 MariaDB 测试表中的数据
结论
在本指南中,您已经建立了一个灵活的基础,用于向访问者提供 PHP 网站和应用程序,使用 Apache 作为 Web 服务器。您已经设置了 Apache 来处理 PHP 请求,并设置了 MariaDB 数据库来存储您网站的数据。