红帽9搭建LAMP
-
安装Apache
2.安装数据库服务
3.安装php
(1)使用IP访问/phpinfo.php
4.安装phpMyAdmin
(1)数据库端口改为学号后五位
(2)登录phpmyadmin
5.SSH增加一个端口10022,fttp增加两个端口10080和8080
(1)修改防火墙规则用端口登录myadmin(只允许10080端口访问myadmin)
什么是LAMP?
LAMP 是一种常用于 web 开发的软件堆栈的缩写,它代表了 Linux(操作系统)、Apache(HTTP 服务器)、MySQL(数据库管理系统)和 PHP(编程语言)。这种组合因其高效、开源和免费的特点而广受欢迎,常用于搭建动态网站和 web 应用程序。
下面是 LAMP 堆栈中每个组件的简要说明:
Linux:Linux 是一个开源的操作系统,广泛应用于服务器环境。它提供了稳定、高效和安全的运行环境,是 web 服务器的基础。
Apache:Apache 是一个开源的 HTTP 服务器,用于处理 web 请求并返回 web 页面。它提供了丰富的功能和模块,支持各种 web 技术和标准。
MySQL:MySQL 是一个开源的关系型数据库管理系统,用于存储和管理网站的数据。它提供了高效的数据存储和查询功能,是 web 应用程序中不可或缺的部分。
PHP:PHP 是一种通用的脚本语言,尤其适合 web 开发。它可以嵌入到 HTML 中,用于生成动态页面和与数据库进行交互。PHP 的易用性和强大的功能使其成为 web 开发的流行选择。
LAMP 堆栈的流行部分归功于其开源和免费的特点,这使得用户可以轻松地获取、使用和定制这些软件。此外,LAMP 堆栈中的每个组件都经过了广泛的测试和验证,具有高度的稳定性和可靠性。
在搭建 LAMP 堆栈时,用户需要分别安装和配置这些组件。具体的安装和配置方法因 Linux 发行版和版本的不同而有所差异。一般来说,用户可以通过包管理器(如 apt、yum 等)来安装这些软件,并通过配置文件来设置它们的行为和参数。
总之,LAMP 是一种强大的 web 开发工具集,它提供了稳定、高效和可靠的运行环境,是搭建动态网站和 web 应用程序的常用选择。
环境准备
(ip为10.0.0.99的虚拟机为主机,然后分别克隆两台ip为10.0.0.119的客户机和ip为10.0.0.219的测试机;主机需安装Apache和PHP,客户机需安装Mysql,且三台虚拟机都能进行远程连接即开启SSH服务)
主机名及IP
主机名 | IP地址 |
wwg2(主机) | 10.0.0.99 |
wwg2(客户机) | 10.0.0.119 |
wwg2(测试机) | 10.0.0.219 |
安装Apache(主机内进行ip为10.0.0.99)
Apache:开放源码的网页服务器,跨平台、安全、流行,支持众多网站运行。
输入命令“yum install http”安装Apache,complete表示安装成功。
yum install http
安装成功后启动Apache,查看Apache是否为开启状态。running表示启动成功。启动成功后,输人命令行:systemctl enable httpd设置apache服务开机自启。
systemctl enable httpd
安装数据库服务(客户机内进行ip为10.0.0.119)
输入命令行:yum install mariadb-server mariadb安装mariadb(MariaDB是MySQL的开源分支,提供高性能、高可靠性,兼容MySQL且易于迁移。),安装完成后启动数据库服务。
yum install mariadb-server mariadb
启动成功后,输入命令“mysql_secure_installation”设置数据库密码。
还没密码直接回车,输入两次yH后设置数据库密码,用于后续登录。
mysql_secure_installation
选择是否删除匿名用户账户。
选择是否禁用远程登录。
选择是否删除测试数据库。
输入y重新加载权限表,保存更改。
完成设置后查看mariadb状态,running为服务开启。
输入命令行:systemctl enable mariadb设置mariadb开机自启。
systemctl enable mariadb
安装PHP(主机内进行ip为10.0.0.99)
PHP是开源的服务器端脚本语言,适用于Web开发,简单易学且功能强大。
输入命令行:yum install php安装php
输入命令行:yum install php-mysqli安装mysqli
yum install php
yum install php-mysqli
安装完毕后,重新启动Apache服务。
输入命令行:vim /var/www/html/phpinfo.php将以下代码复制到新创建的文件中保存并退出。关闭防火墙和守护进程。
vim /var/www/html/phpinfo.php
在测试机(ip为10.0.0.219)的浏览器内输入主机ip:10.0.0.99/phpinfo.php
成功安装便会出现以下界面。
安装phpMyAdmin(主机内进行ip为10.0.0.99)
phpMyAdmin是MySQL的Web管理工具,界面直观,易于管理数据库。
输入命令行:yum install php-mbstring php-xml -y安装依赖包。
yum install php-mbstring php-xml -y
安装完成后重启Apache和php-ftp服务。
重启后切换cd /var/www/html切换到网页目录,下载phpmyadmin安装包。Wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
Wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
下载完成后输入命令行:mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1 解压文件。解压完成后重启Apache和php-fpm服务。
mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
切换到测试机(ip为10.0.0.119)
输入命令行: vim /etc/my.cnf.d/mariadb-server.cnf修改数据库端口文件,修改端口为学号后五位30317。重启mariadb服务后输入命令“netstat -lntp”查看端口是否修改成功。
vim /etc/my.cnf.d/mariadb-server.cnf
输入命令行:mysql -u root -p 创建用户及密码CREATE USER ‘root'@ ‘10.0.0.99’ IDENTIFIED BY ‘123456';#此处为主机ip
GRANT ALL PRIVILEGES ON *.* TO ‘root’@ ‘%’ IDENTIFIED BY ‘123456' WITH GRANT OPTION;
flush privileges;(刷新使之生效)
SELECT user,host FROM mysql.user ;(查看所创建用户)
完成后exit退出
输入命令行:mysql -u root -p 创建用户及密码CREATE USER ‘root'@ ‘10.0.0.99’ IDENTIFIED BY ‘123456';#此处为主机ip
GRANT ALL PRIVILEGES ON *.* TO ‘root’@ ‘%’ IDENTIFIED BY ‘123456' WITH GRANT OPTION;
flush privileges;(刷新使之生效)
SELECT user,host FROM mysql.user ;(查看所创建用户)
完成后exit退出
退出后需输入命令“systemctl restart mariadb”重启数据库。
systemctl restart mariadb
修改成功后回到到主机(ip为10.0.0.99),从/var/www/html目录切换到phpMyAdmin目录,查看当前命令下的文件输入命令 cp config.sample.inc.php config.inc.php 文件config.sample.inc.php 复制到文件config.inc.php
cp config.sample.inc.php config.inc.php
编辑config.inc.php文件
关闭防火墙和守护进程后重启apache和php-fpm服务。
在测试机(ip为10.0.0.219)的浏览器内输入主机ip:10.0.0.99/phpMyAdmin/index.php登录phpmyadmin用户密码为数据库所创用户及密码。成功登录phpmyadmin。
SSH增加一个端口10022,fttp增加两个端口10080和8080
编辑/etc/ssh/sshd_config文件,在ssh中增加10022端口,重启ssh服务后查看是否成功增加10022端口。
编辑vi /etc/httpd/conf/httpd.conf文件在http中增加10080和8080的端口,重启http服务后查看是否成功增加10080和8080的端口。
开启防火墙,查看防火墙状态后输入命令行:sysystemctl firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload
firewall-cmd --zone=public --add-service=http --permanent
这个命令在public区域(zone)中永久添加http服务。这意味着,当firewalld启动时,或者你重新加载防火墙规则时,它会允许http(通常是80端口)的流量通过。
--zone=public 指定了要配置的区域,public是默认的区域。
--add-service=http 告诉firewalld要添加http服务。
--permanent 表示这是一个永久性的更改,但注意,它不会立即生效,除非你重新加载或重启firewalld。
firewall-cmd --zone=public --add-service=https --permanent
这个命令与上一个类似,但它添加的是https服务(通常是443端口)。
这意味着防火墙将允许https的流量通过。
firewall-cmd --reload
这个命令重新加载firewalld的配置。这意味着,任何你之前用--permanent标志做的更改现在都会生效。
重新加载与重启firewalld不同。重启会中断所有当前的连接,而重新加载则不会。
开启防火墙,查看防火墙状态后输入命令行:sysystemctl firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload
firewall-cmd --zone=public --add-service=http --permanent
这个命令在public区域(zone)中永久添加http服务。这意味着,当firewalld启动时,或者你重新加载防火墙规则时,它会允许http(通常是80端口)的流量通过。
--zone=public 指定了要配置的区域,public是默认的区域。
--add-service=http 告诉firewalld要添加http服务。
--permanent 表示这是一个永久性的更改,但注意,它不会立即生效,除非你重新加载或重启firewalld。
firewall-cmd --zone=public --add-service=https --permanent
这个命令与上一个类似,但它添加的是https服务(通常是443端口)。
这意味着防火墙将允许https的流量通过。
firewall-cmd --reload
这个命令重新加载firewalld的配置。这意味着,任何你之前用--permanent标志做的更改现在都会生效。
重新加载与重启firewalld不同。重启会中断所有当前的连接,而重新加载则不会。
出现三个success后即操作成功。
输入命令行:firewall-cmd --zone=public --add-port=10080/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --add-port=10080/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
在 public 区域中永久添加一个 TCP 端口规则,允许流量通过 TCP 协议的 10080 和8080的端口。重新加载防火墙配置后查看监听的端口发现为8080和10080还有80(本来就存在)
Firefox搜索界面。在地址栏输入about:config并回车。警告页面会告诉您修改这些设置可能会有风险,点击“我接受风险!”按钮继续。在搜索框中输入network.security.ports.banned.override。选择“切换”设置,输入10080到其值字段中。重启Firefox浏览器。10.0.0.99:10080/phpMyAdmin/index.php发现成功登录到myadmin。
此时三个端口都可进入phpmyadmin
v
此时打开主机(ip为10.0.99),输入命令行:firewall-cmd --zone=public --remove-port=8080/tcp --permanent永久移除对TCP端口8080的访问权限。重新加载防火墙配置后查看可访问防火墙的端口发现只有80和10080的端口了,此时再次打开火狐浏览器发现8080端口发现该端口已不可访问phpmyadmin。
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
或者
在客户机(ip为10.0.0.119)中输入命令行: firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.99" port protocol="tcp" port="30317" accept允许从 IP 地址 10.0.0.99 发送的 TCP 流量(目标端口为 30317)通过防火墙。'后重启防火墙
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.99" port protocol="tcp" port="30317" accept
输入命令行:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.219" port protocol="tcp" port="10080" accept'允许从 IP 地址 10.0.0.219 发送的 TCP 流量(目标端口为 10080)通过防火墙。
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.219" port protocol="tcp" port="10080" accept
输入命令行:firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.219" port protocol="tcp" port="80" reject'在 public 区域中,拒绝来自 IP 地址 10.0.0.219 的 TCP 流量到端口 80。重启防火墙后输入命令“ sudo firewall-cmd --zone=public --list-rich-rules查询 Firewalld 中 public 区域的所有富规则(rich rules)。
”
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.219" port protocol="tcp" port="80" reject'
sudo firewall-cmd --zone=public --list-rich-rules
打开测试机(ip为10.0.0.219)输入10.0.0.99:80/phpMyAdmin/index.php发现找不到网页,可知在 public 区域中,拒绝来自 IP 地址 10.0.0.219 的 TCP 流量到端口 80,80端口不允许访问防火墙。
通过本次实验,我能够掌握在Linux系统中搭建LAMP环境的基本步骤和要点。同时,我也了解到Web应用的基本架构和工作原理,以及如何在Linux系统中进行基本的服务器管理和配置。在实验过程中遇到的问题和解决方法也将成为我宝贵的经验,有助于我在未来的Web开发工作中更加得心应手。
在搭建LAMP环境时,需要注意以下几点:
确保系统的安全性:在安装和配置过程中,要注意设置合理的安全策略,如防火墙规则、数据库用户权限等,以防止恶意攻击和数据泄露。
选择合适的版本和配置:在选择Linux发行版、Apache服务器、MySQL数据库和PHP解释器的版本时,要根据实际需求和项目要求来选择。同时,也要根据实际需求来配置这些组件的参数和选项。
备份重要数据:在搭建和测试过程中,要定期备份重要的数据和配置文件,以防止意外丢失或损坏。
持续学习和更新:Web开发是一个不断发展的领域,新的技术和工具不断涌现。因此,作为Web开发者,要保持持续学习和更新的态度,不断提高自己的技能和能力。