本实验在上一节的基础上,在AWS上使用CentOS镜像部署LNMP应用,其中MySQL使用RDS。
本次实验架构图
本次实验架构图如下:
1. 实验准备
应用代码文件放在S3存储上,地址如下:https://garytemp.s3.ap-northeast-1.amazonaws.com/wordpress-6.1.1-zh_CN.zip
2. 部署JumpServer
更新软件
sudo apt update -y
安装必要软件
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils -y
安装桌面程序
sudo apt install ubuntu-desktop -y
安装xrdp
sudo apt install xrdp -y
配置xrdp
sudo vi /etc/xrdp/xrdp.ini
#add
exec startxfce4
##
重启xrdp
sudo systemctl restart xrdp
创建xrdp用户
groupadd garyadmin
useradd -m -g garyadmin gary
passwd gary
echo "%garyadmin ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/garyadmin
登录RDP
3. 部署APP
3.1 部署Nginx
登录APP虚拟机,切换到root模式
sudo su -
创建 nginx.repo
文件
cat > /etc/yum.repos.d/nginx.repo <<EOF
[nginx]
name = nginx repo
baseurl = https://nginx.org/packages/mainline/centos/7/\$basearch/
gpgcheck = 0
enabled = 1
EOF
执行以下命令,安装nginx
yum install -y nginx
启动nginx
systemctl enable nginx
systemctl start nginx
验证nginx
3.2 部署PHP
依次执行以下命令,更新yum中PHP的软件源
rpm -Uvh https://mirrors.cloud.tencent.com/epel/epel-release-latest-7.noarch.rpm
yum -y install mod_php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-mysqlnd php72w-fpm.x86_64
安装PHP 7.2
yum -y install mod_php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-mysqlnd php72w-fpm.x86_64
启动PHP
systemctl start php-fpm
systemctl enable php-fpm
3.3 配置Ngnix支持PHP
创建PHP根目录
mkdir -p /data/www
修改/etc/nginx/conf.d/default.conf
更改如下内容
root /data/www;
location / {
#root /usr/share/nginx/html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
include fastcgi_params;
}
重启PHP
systemctl restart nginx
创建php测试页面
cat > /data/www/index.php <<EOF
<?php
phpinfo();
?>
EOF
关闭SELinux
setenforce 0
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
验证PHP访问,在Jumpserver上。
4. 验证访问
编写访问数据库连接
vi /data/www/index.php
-------------------------------------------
<?php
$servername = "demo-mysql.ctkiu6095otx.ap-northeast-1.rds.amazonaws.com";
$username = "testuser";
$password = "12345678";
try {
$conn = new PDO("mysql:host=$servername;port=3306", $username, $password);
echo "mysql数据库连接成功!!!<br>";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
<?php
echo "mysqli方式连接mysql数据库:";
$a=mysqli_connect("$servername","$username","$password");
if($a){echo "数据库连接成功!!!";}else{echo "数据库连接失败!!!";}
?>
<?php
phpinfo();
?>
访问ALB:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YyUV3oVO-1681698333267)(null)]
这说明LNMP架构验证成功了,本实验结束。
本例参考以下2篇文章: