在 Rocky Linux 9 上安装 Apache、MariaDB、PHP (LAMP) |在 Rocky Linux 9 上安装 Apache、MariaDB、PHP (LAMP) |在 Rocky Linux 9 上安装 Apache、MariaDB、PHP (LAMP) |在 Rocky Linux 9 上安装 Apache、MariaDB、PHP (LAMP) |
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Rocky Linux 9 上安装 Apache、MariaDB、PHP (LAMP) |

发表 admin at 2025年2月28日
类别
  • 未分类
标签

对于一般的 Web 开发和托管,您需要编程语言、数据库和 Web 服务器。 LAMP 堆栈是开源 Linux 工具的集合,其中包括 Apache、MySQL/MariaDB 和 PHP。这些工具紧密配合,使服务器能够托管和运行现代动态 Web 应用程序。

下面详细阐述了 LAMP 堆栈的组件:

  • Apache:这是一个开源跨平台 Web 服务器,运行着世界上 67% 的网站。该软件由 Apache 软件基金会开发和维护。
  • MariaDB:这是一个由 MySQL 的原始开发人员开发的关系数据库管理系统,并保证保持开源。
  • PHP:这是超文本预处理器的缩写。这是一种开源通用脚本语言,用作 Web 应用程序的后端编程语言。此外,在创建 Web 应用程序时,这种语言还可以与 HTML 一起使用。 PHP 与 JavaScript 等其他语言的主要区别在于,代码在服务器上执行,生成 HTML 脚本并发送给客户端。

LAMP 堆栈如何工作?

Apache Web 服务器接收浏览器的网页请求。如果请求 PHP 文件,则会将请求传递给 PHP,然后 PHP 加载并执行文件中包含的代码。 PHP 还与数据库(MySQL/MariaDB)链接以获取代码中引用的任何数据。

然后,使用 PHP 代码和从数据库获取的数据来生成用于显示网页的 HTML 脚本。 LAMP 堆栈在处理加载时数据不时变化的静态和动态网页时非常有效。

然后 PHP 将这些结果传递回 Apache Web 服务器,然后 Apache Web 服务器将它们发送回浏览器。

在本指南中,我们将在 Rocky Linux 9 上安装和使用 Apache、MariaDB 和 PHP (LAMP)。

#1.在 Rocky Linux 9 上安装 Apache

这里要安装的第一个组件是 Apache Web 服务器。该软件在 Rocky Linux 存储库中作为 httpd 提供。要安装它,请执行命令:

sudo dnf install httpd

依赖树:

Transaction Summary
================================================================================
Install  10 Packages

Total download size: 1.9 M
Installed size: 5.9 M
Is this ok [y/N]: y

安装后,启动并启用该服务:

sudo systemctl enable --now httpd

检查服务的状态:

$ systemctl status httpd
● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2022-07-19 11:29:32 CEST; 10s ago
       Docs: man:httpd.service(8)
   Main PID: 2287 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
      Tasks: 213 (limit: 23441)
     Memory: 35.0M
        CPU: 64ms
     CGroup: /system.slice/httpd.service
             ├─2287 /usr/sbin/httpd -DFOREGROUND
             ├─2288 /usr/sbin/httpd -DFOREGROUND
             ├─2289 /usr/sbin/httpd -DFOREGROUND
             ├─2290 /usr/sbin/httpd -DFOREGROUND
             └─2291 /usr/sbin/httpd -DFOREGROUND

您还可以通过访问浏览器上的默认页面来验证 Apache 是否正在运行。首先,允许 HTTP 流量通过防火墙:

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

使用 URL http://IP_Address 或 http://domain_name 访问网页

#2.在 Rocky Linux 9 上安装 MariaDB

我们需要一个用于网络托管的数据库服务器。这里有两个选项,MySQL 或 MariaDB 数据库。在本指南中,我们将选择 MariaDB 数据库,因为它具有高性能的存储引擎、更快、更安全的复制以及与 MySQL 的兼容性。

Rocky Linux 9 在默认存储库中提供 MariaDB 10。可以使用以下命令安装:

sudo dnf install mariadb-server mariadb

安装后,启动并启用 MariaDB 服务:

sudo systemctl enable --now mariadb

验证服务是否正在运行:

$ systemctl status mariadb
● mariadb.service - MariaDB 10.5 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2022-07-19 11:31:24 CEST; 1s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 3609 ExecStartPre=/usr/libexec/mariadb-check-socket (code=exited, status=0/SUCCESS)
    Process: 3631 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir mariadb.service (code=exited, status=0/SUCCESS)
    Process: 3724 ExecStartPost=/usr/libexec/mariadb-check-upgrade (code=exited, status=0/SUCCESS)
   Main PID: 3711 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 12 (limit: 23441)
     Memory: 70.8M
        CPU: 254ms
     CGroup: /system.slice/mariadb.service
             └─3711 /usr/libexec/mariadbd --basedir=/usr

默认情况下,MariaDB 不安全,这可能会导致漏洞。要保护它,请按如下所示操作:

$ sudo mysql_secure_installation
....
Enter current password for root (enter for none): Just press Enter
......
Switch to unix_socket authentication [Y/n] Y
.....
Change the root password? [Y/n] Y
New password:  New-root-password
Re-enter new password: Re-enter New-root-password
....
Remove anonymous users? [Y/n] Y
....
Disallow root login remotely? [Y/n] Y
.....
Remove test database and access to it? [Y/n] Y
......
Reload privilege tables now? [Y/n] Y
...
Thanks for using MariaDB!

验证是否可以使用创建的密码登录:

$ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.5.13-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.

MariaDB [(none)]> SELECT VERSION();
+-----------------+
| VERSION()       |
+-----------------+
| 10.5.13-MariaDB |
+-----------------+
1 row in set (0.000 sec) 

MariaDB [(none)]> QUIT
Bye

#3。在 Rocky Linux 9 上安装 PHP

Rocky Linux 9 存储库中可用的默认 PHP 版本是 PHP 8.0。此版本包含错误修复和增强功能,包括使用结构化元数据语法、与顺序无关的新命名参数以及改进的即时编译性能。

使用以下命令安装 PHP 8.0 及其依赖项:

sudo dnf install php-{common,gmp,fpm,curl,intl,pdo,mbstring,gd,xml,cli,zip,mysqli}

检查PVH版本:

$ php --version
PHP 8.0.13 (cli) (built: Nov 16 2021 18:07:21) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.13, Copyright (c) Zend Technologies

也可以安装其他 PHP 版本。这可以通过添加 Remi 和 EPEL 存储库来完成:

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm 

添加后,列出可用的 PHP 版本:

$ sudo dnf module list php
Last metadata expiration check: 0:43:34 ago on Tue 19 Jul 2022 01:42:06 PM CEST.
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name            Stream                  Profiles                             Summary                         
php             remi-7.4[e]          common [d], devel, minimal           PHP scripting language          
php             remi-8.0               common [d], devel, minimal           PHP scripting language          
php             remi-8.1               common [d], devel, minimal           PHP scripting language          

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

启用并安装首选版本,例如 PHP 8.1 ,如图所示

sudo dnf module enable php:remi-8.1 -y

现在安装 PHP 及其依赖项:

sudo dnf install php-{common,gmp,fpm,curl,intl,pdo,mbstring,gd,xml,cli,zip,mysqli}

验证安装。

$ php --version
PHP 8.1.8 (cli) (built: Jul  5 2022 21:55:55) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.8, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.8, Copyright (c), by Zend Technologies

#4。在 Rocky Linux 9 上为 Apache 配置 PHP

要配置 PHP,请打开以下文件:

sudo vi /etc/php.ini

在文件中进行所需的设置。例如:

max_execution_time = 300
upload_max_filesize = 100M
post_max_size = 128M
date.timezone = Africa/Nairobi

进行所需的更改后,允许 Apache 加载 PHP 文件:

$ sudo vi /etc/httpd/conf/httpd.conf
# LoadModule foo_module modules/mod_foo.so
AddHandler php-script .php

您还可以使用以下命令创建测试 PHP 文件来检查 PHP 版本:

sudo vi /var/www/html/info.php

将以下行添加到文件中:

<?php
phpinfo();
?>

保存文件并重新启动 Apache 和 PHP-FPM:

sudo systemctl restart php-fpm
sudo systemctl restart httpd

使用 URL http://IP_Address/info.php 访问显示 PHP 参数的页面

删除测试脚本:

sudo rm /var/www/html/info.php

#5。为您的站点创建 Apache 虚拟主机文件

为了能够通过浏览器访问站点,您需要为该站点创建虚拟主机文件。在本指南中,我们将配置 Apache 以提供示例页面,如图所示。

创建虚拟主机文件:

sudo vi /etc/httpd/conf.d/yourdomain.conf

在该文件中,添加以下行:

<VirtualHost *:80>
    ServerName test.example.com
    DocumentRoot /var/www/html/
    ErrorLog /var/log/httpd/error.log
    CustomLog /var/log/httpd/requests.log combined
</VirtualHost>

在指定的文档根目录中创建文件:

sudo vi /var/www/html/index.html

添加以下行:

<html>
  <head>
    <title>This is a test page</title>
  </head>
  <body>
    <h1>LAMP Stack is working perfectly on Rocky Linux 9!</h1>
  </body>
</html>

重新启动阿帕奇:

sudo systemctl restart httpd

现在使用 URL http://IP_address 或 http://domain_name 访问网页

删除测试页:

sudo rm /var/www/html/index.html

#6。托管具有数据库连接的 PHP 应用程序

为了测试 LAMP 堆栈的更好工作,我们将配置 PHP 网站以连接到 MySQL 数据库。使用以下步骤。

首先创建一个数据库。

mysql -u root -p

使用下表创建数据库

CREATE DATABASE db_contact;
USE db_contact;
CREATE TABLE tbl_contact (Id INT,fldName VARCHAR(50), fldEmail VARCHAR(30), fldPhone VARCHAR(15),fldMessage VARCHAR(1000));
EXIT

创建用于连接数据库的 HTML 表单:

sudo mkdir /var/www/html/contacts
sudo vi /var/www/html/contacts/contact.html

将以下行添加到文件中:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Contact Form - PHP/MySQL Demo Code</title>
</head>

<body>
<fieldset>
<legend>Contact Form</legend>
<form name="frmContact" method="post" action="contact.php">
<p>
<label for="Name">Name </label>
<input type="text" name="txtName" id="txtName">
</p>
<p>
<label for="email">Email</label>
<input type="text" name="txtEmail" id="txtEmail">
</p>
<p>
<label for="phone">Phone</label>
<input type="text" name="txtPhone" id="txtPhone">
</p>
<p>
<label for="message">Message</label>
<textarea name="txtMessage" id="txtMessage"></textarea>
</p>
<p>&nbsp;</p>
<p>
<input type="submit" name="Submit" id="Submit" value="Submit">
</p>
</form>
</fieldset>
</body>
</html>

现在创建一个 PHP 脚本来将 HTML 表单中的数据保存到数据库中:

sudo vi /var/www/html/contacts/contact.php

添加以下行:

<?php
// database connection code
// $con = mysqli_connect('localhost', 'database_user', 'database_password','database');

$con = mysqli_connect('localhost', 'root', 'root_password','db_contact');

// get the post records
$txtName = $_POST['txtName'];
$txtEmail = $_POST['txtEmail'];
$txtPhone = $_POST['txtPhone'];
$txtMessage = $_POST['txtMessage'];

// database insert SQL code
$sql = "INSERT INTO `tbl_contact` (`Id`, `fldName`, `fldEmail`, `fldPhone`, `fldMessage`) VALUES ('0', '$txtName', '$txtEmail', '$txtPhone', '$txtMessage')";

// insert in database 
$rs = mysqli_query($con, $sql);

if($rs)
{
	echo "Contact Records Inserted";
}

?>

请记住将 root_password 和db_contact 替换为数据库名称。保存文件后,使用 URL http://domain_name/contacts/contact.html 加载页面

填写表格并提交更改

验证数据是否已添加到数据库:

$ mysql -u root -p
Enter password: 
MariaDB [(none)]> SELECT * FROM  db_contact. tbl_contact;

示例输出:

这就对了!。我们现在可以清理测试:

sudo rm -rf /var/www/html/contacts

推荐阅读书籍:

  • 学习 Web 开发的最佳书籍 - PHP、HTML、CSS、JavaScript 和 jQuery
  • 掌握网页设计的最佳书籍
  • 学习 CSS 和 CSS3 的最佳书籍
  • 学习 HTML 和 HTML5 的最佳书籍
  • 最佳 Apache 和 Nginx 参考书

结束语

这标志着本关于如何在 Rocky Linux 9 上安装 Apache、MariaDB 和 PHP (LAMP) 的指南的结束。我希望这对您很重要。

查看更多:

  • 如何使用 Ansible 为 WordPress 设置 LEMP 堆栈
  • 使用 WordOps 在 Linux 上管理 WordPress 网站
  • 如何在 Ubuntu 上安装 PHP 8.0
©2015-2025 Norria support@alaica.com