如何使用MySQL HeatWave设置LAMP Stack——第3/5部分

介绍

这是一系列博客中的第三篇,详细介绍了如何在Oracle云中设置和使用利用MySQL HeatWave的LAMP堆栈。

  • 第1部分将通过详细说明LAMP堆栈是什么以及Oracle云中可用的部署选项来设置场景。它还将阐述本系列博客将构建的LAMP stack的架构愿景。

  • 第2部分将在Oracle云中构建基础设施(网络、应用服务器、数据库服务器)。

  • 第3部分将安装和配置剩余的LAMP stack软件。

  • 第4部分将安装其他软件以帮助开发web应用程序。

  • 第5部分将考虑如何使堆栈更具可伸缩性、可用性和安全性。

完成本博客中任务的谓词

您需要完成本系列博客的第2部分,并收集以下信息(如第2部分的摘要和后续步骤所述):

  • 应用程序服务器的公共IP地址

  • Linux用户帐户名称(在应用程序服务器上)

  • MySQL数据库服务实例的私有IP地址

  • 数据库管理用户的名称和密码

数据库连接-安装MySQL Shell

虽然不是LAMP堆栈本身的一部分,但您需要一个MySQL客户端,以便能够上传和更改数据库模式。可以使用的MySQL客户端包括:传统MySQL客户端;MySQL外壳;MySQL工作台以及phpMyAdmin。在这个阶段,这些客户端中效率最高的将是MySQL Shell。

步骤1:连接到应用程序服务器

下面假设应用服务器的公共IP为140.238.70.172

PS C:\Users\swdavey> ssh -i .ssh\app.key opc@140.238.70.172
[opc@app ~]$

如果您看到类似的消息,请使用:systemctl enable–now cockpit激活web控制台。套接字,然后忽略它。Cockpit是一个红帽工具,允许您通过web远程管理服务器。不需要完成本系列博客。

步骤2:安装MySQL shell

默认情况下,opc可以通过运行sudo来提升其权限。这将需要安装大多数软件并进行系统范围的配置更改(例如,主机防火墙)。

[opc@app ~]$ sudo dnf -y install mysql-shell
[opc@app ~]$

步骤3:连接到MySQL数据库服务实例

在下面的代码中,我们使用MySQL Shell(命令mysqlsh)连接到MySQL数据库服务实例,该实例的私有IP地址为10.0.1.66。用户帐户为admin。连接后,将执行基本测试(显示数据库),然后关闭会话(使用\q)。

[opc@app ~]$ mysqlsh --uri admin@10.0.1.66 --sql
Please provide the password for 'admin@10.0.1.66': *********
SQL > SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.0007 sec)
[opc@app ~]$ \q
Bye!
[opc@app ~]$

注意:在上面的示例中,为了清晰起见,SQL提示符被缩写,从MySQL 10.0.1.66:33060+ssl SQL>到SQL>

Web服务器:安装和测试Apache

步骤1:安装Apache并配置systemd来管理它

对于Red Hat操作系统(Oracle Linux是其变体),Apache HTTP Web服务器包是httpd。就其本身而言,它将只为使用http的页面提供服务。要使用https,还需要安装插件模块mod_ssl。

httpd包被配置为由systemd管理,但是,在第一个实例中,您必须显式启用并启动它。

[opc@app ~]$ sudo dnf -y install httpd mod_ssl
[opc@app ~]$ sudo systemctl enable --now httpd
[opc@app ~]$ httpd -v
Server version: Apache/2.4.37 (Oracle Linux)
Server built: Jun 22 2022 14:35:49
[opc@app ~]$

步骤2:配置主机的防火墙

在使用Apache之前,需要配置主机的防火墙。使用防火墙命令打开http和https端口,然后重新启动(重新加载)防火墙。检查端口是否打开。

[opc@app ~]$ sudo firewall-cmd --zone=public --permanent --add-port=80/tcp
[opc@app ~]$ sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
[opc@app ~]$ sudo firewall-cmd --reload
[opc@app ~]$ sudo firewall-cmd --list-ports
80/tcp 443/tcp
[opc@app ~]$

步骤3:测试Apache

在浏览器中,输入URL http://(提示:确保指定了http协议;浏览器通常希望自动将您的输入更正为https)。您应该看到一个类似于下面所示的页面:

步骤4:用您自己的主页替换Apache欢迎页面

默认的Apache欢迎页面只是临时的,应该用您自己的内容替换。为了遵守欢迎页面给网站管理员的信息,/etc/httpd/conf.d/welcome中的所有行。conf页面应该被注释掉。在下面的示例中,这是使用操作系统的流编辑实用程序sed完成的。完成后,应重新启动Apache,以避免缓存在内存中的配置文件出现任何问题。最后,一个html文件,索引。html,需要创建并写入文档根目录/var/www/html。

[opc@app ~]$ sudo sed -i 's/^/#/' /etc/httpd/conf.d/welcome.conf
[opc@app ~]$ sudo systemctl restart httpd
[opc@app ~]$ sudo -s
[root@app opc]# cat << EOF >> /var/www/html/index.html
<html>
<body>
<h1>Hello World!</h1>
</body>
</html>
EOF
[root@app opc]# exit
[opc@app ~]$

现在,当在浏览器中重新加载主页(http:/<public ip>)时,您将看到:

安装和测试PHP

步骤1:安装PHP并使其可用于Apache

要在红帽变体操作系统(如Oracle Linux)上安装PHP 8.1,我们需要安装remi存储库,然后在安装所需软件包之前启用8.1发行版。注意,我们必须重新启动Apache才能让Apache启动PHP。

安装和测试PHP

步骤1:安装PHP并使其可用于Apache

要在红帽变体操作系统(如Oracle Linux)上安装PHP 8.1,我们需要安装remi存储库,然后在安装所需软件包之前启用8.1发行版。注意,我们必须重新启动Apache才能让Apache启动PHP。

[opc@app ~]$ sudo dnf -y install dnf-utils https://rpms.remirepo.net/enterprise/remi-release-8.rpm
[opc@app ~]$ sudo dnf -y module enable php:remi-8.1
[opc@app ~]$ sudo dnf -y install php-{fpm,common,mysqlnd,cli}
[opc@app ~]$ sudo systemctl restart httpd
[opc@app ~]$ php -v
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
[opc@app ~]$

步骤2:使用Apache测试PHP

要使用Apache测试PHP,需要一个名为info的小文件。php将创建并安装在文档根目录中:

[opc@app ~]$ sudo -s
[root@app opc]# cat << EOF >> /var/www/html/info.php
<?php
phpinfo();
?>
EOF
[root@app opc]# exit
[opc@app ~]$

在浏览器中输入URL:http:///info。您应该看到一个类似于以下内容的页面:

此页面显示有关服务器的大量信息。因此,应仅用于测试目的,之后应将其移除:

[opc@app ~]$ sudo rm -f /var/www/html/info.php
[opc@app ~]$

更好的用户管理

到目前为止,文档根用户的工作已经完成。这是一种相当幼稚的方法,通过滥用和恶意使用带来风险。理想情况下,应为web管理创建一个单独的组,并且只应将负责web管理的用户分配给该组。

创建组并为其分配用户后,可以相应地更改文档根的所有权和权限。也就是说,所有用户和进程都可以从文档根目录中读取,但只有根目录和web管理员组中的用户可以向其写入。

下面的命令详细说明了如何实现这一点。请注意,opc用户成为webadmin组的成员。

[opc@app ~]$ sudo groupadd webadmin
[opc@app ~]$ sudo usermod -a -G webadmin opc
[opc@app ~]$ sudo chown root:webadmin /var/www/html
[opc@app ~]$ sudo chmod -R 2775 /var/www/html
[opc@app ~]$

请注意,当前opc用户的会话将不允许opc用户写入文档根目录,因为它不会随更改而更新。因此,opc用户需要注销,然后重新登录。

总结和下一步

现在,您已经构建了一个完整的LAMP stack,并证明了每个单独的组件都是可访问和工作的。在本系列的下一篇博客中,我们将使用堆栈开发安全应用程序。

原文标题:How to Setup a LAMP Stack with MySQL HeatWave – Part 3/5
原文作者:Stuart Davey
原文链接:https://blogs.oracle.com/mysql/post/how-to-setup-a-lamp-stack-with-mysql-heatwave-part3


免责声明:

1、本站资源由自动抓取工具收集整理于网络。

2、本站不承担由于内容的合法性及真实性所引起的一切争议和法律责任。

3、电子书、小说等仅供网友预览使用,书籍版权归作者或出版社所有。

4、如作者、出版社认为资源涉及侵权,请联系本站,本站将在收到通知书后尽快删除您认为侵权的作品。

5、如果您喜欢本资源,请您支持作者,购买正版内容。

6、资源失效,请下方留言,欢迎分享资源链接

文章评论

0条评论