私有云基础架构
基础配置
使用 VMWare Workstation 创建三台 2 CPU、8G内存、100 GB硬盘 的虚拟机
主机 | IP | 安装服务 |
web01 | 192.168.184.110 | Apache、PHP |
database | 192.168.184.111 | MariaDB |
web02 | 192.168.184.112 | Apache、PHP |
由于 openEuler 22.09 系统已经停止维护了,所以我们需要修改 yum 源为官方 Archive 的 yum 源
打开 /etc/yum.repos.d/openEuler.repo 文件,将下面所有涉及到 http://repo.openeuler.org/ 的部分改成 https://archives.openeuler.openatom.cn/
在三台机器上
[root@controller ~]# sed -i 's|http://repo.openeuler.org/|https://archives.openeuler.openatom.cn/|g' /etc/yum.repos.d/openEuler.repo |
# 然后更新 yum 源
[root@controller ~]# dnf update |
关闭防火墙等
在三台机器上
# 关闭防火墙
[root@web01 ~]# systemctl disable --now firewalld
# 关闭 SELinux
[root@web01 ~]# vi /etc/selinux/config
# 修改以下内容
SELINUX=disabled
修改hosts
在三台机器上
[root@web01 ~]# cat >> /etc/hosts << EOF
192.168.184.110 web01
192.168.184.111 database
192.168.184.112 web02
EOF
此时最好重启一下机器,以便应用刚才关闭的 SELinux
安装数据库
数据库需要安装在 Controller 节点,这里我们选用 MariaDB 作为我们的数据库
首先安装 MariaDB
[root@controller ~]# dnf install mysql-config mariadb mariadb-server python3-PyMySQL -y
新增配置文件 /etc/my.cnf.d/openstack.cnf 内容如下所示
[root@controller ~]# vi /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.184.110
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
然后启动服务器
[root@controller ~]# systemctl start mariadb
然后初始化数据库
[root@controller ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
# 这里输入密码,由于我们是初始化MariaDB,直接回车就行
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
# 这里根据提示输入N
Switch to unix_socket authentication [Y/n] n
... skipping.
You already have your root account protected, so you can safely answer 'n'.
# 输入Y,修改密码
Change the root password? [Y/n] y
# 这里输入两次密码
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
# 输入Y,删除匿名用户
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
# 输入Y,关闭root远程登录权限
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
# 输入Y,删除test数据库
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
# 输入Y,重载配置
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
然后我们来验证一下
[root@controller ~]# mysql -uroot -p
# 输入密码
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.5.16-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)]>
1传统架构下的应用部署
-
-
安装Apache服务
-
首先安装服务
[root@web01 ~]# dnf install -y httpd
[root@web01 ~]# dnf install -y php php-cli php-common php-fpm
然后启动服务
[root@web01 ~]# systemctl enable --now httpd
查看版本
[root@web01 ~]# apachectl -v
Server version: Apache/2.4.51 (Unix)
Server built: Sep 7 2022 00:00:00
到浏览器输入http://192.168.184.110/地址进行Apache访问测试
-
-
安装PHP服务
-
首先安装PHP及其模块
[root@web01 ~]# dnf -y install php php-common php-cli php-gd php-pdo php-devel php-xml php-mysqlnd
然后编写测试界面文件
[root@web01 ~]# vi /var/www/html/php-test.php
<?php
phpinfo();
?>
重启Apache服务,并到浏览器中访问 http://192.168.184.110/php-test.php
[root@web01 ~]# systemctl restart httpd
-
-
安装配置数据库
-
首先安装MariaDB服务
[root@web01 ~]# dnf -y install mariadb mariadb-server
[root@web01 ~]# systemctl enable --now mariadb.service
由于我们上面已经初始化完数据库了,这里就不初始化了
然后创建数据库
[root@web01 ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.16-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)]> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* to root@'%' IDENTIFIED BY '000000';
Query OK, 0 rows affected (0.047 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> exit;
Bye
-
-
安装WordPress
-
下载 wordpress-6.7.1-zh_CN.zip 到根目录
[root@web01 ~]# wget https://cn.wordpress.org/wordpress-6.7.2-zh_CN.tar.gz
然后解压到Apache网页文件夹里
[root@web01 ~]# tar -zxf wordpress-6.7.2-zh_CN.tar.gz -C /var/www/html/
对解压出来的wordpress文件夹赋予权限
设置http根目录/var/www/的所有组为apache
[root@web01 ~]# chown -R :apache /var/www/
设置http根目录/var/www的所有者为apache
[root@web01 ~]# chown -R apache /var/www/
设置http根目录/var/www的组下的所有用户具有读写权限
[root@web01 ~]# chmod -R 775 /var/www/
[root@web01 ~]# systemctl restart httpd
在浏览器中访问http://192.168.184.110/wordpress/界面查看
接下来,输入数据库相关配置信息即可完成数据库连接
数据库连接成功后,单击“运行安装程序”继续安装
自定义站点相关的表单,例如登录用户名及密码等
至此,WordPress部署成功
2集群架构下的应用部署
-
- 安装MariaDB服务
首先,在database节点安装MariaDB服务
[root@database ~]# dnf -y install mariadb mariadb-server
[root@database ~]# systemctl enable --now mariadb.service
然后初始化数据库
[root@database ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
# 这里输入密码,由于我们是初始化MariaDB,直接回车就行
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
# 这里根据提示输入N
Switch to unix_socket authentication [Y/n] n
... skipping.
You already have your root account protected, so you can safely answer 'n'.
# 输入Y,修改密码
Change the root password? [Y/n] y
# 这里输入两次密码
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
# 输入Y,删除匿名用户
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
# 输入Y,关闭root远程登录权限
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
# 输入Y,删除test数据库
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
# 输入Y,重载配置
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
然后授权并创建数据库
[root@database ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.16-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)]> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* to root@'%' IDENTIFIED BY '000000';
Query OK, 0 rows affected (0.047 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> exit
Bye
-
- 安装Apache服务
在Web 02节点进行如下操作
首先安装Apache
[root@web02 ~]# dnf install -y httpd
[root@web02 ~]# dnf install -y php php-cli php-common php-fpm
然后启动服务
[root@web02 ~]# systemctl enable --now httpd
查看版本
[root@web02 ~]# apachectl -v
Server version: Apache/2.4.51 (Unix)
Server built: Sep 7 2022 00:00:00
2.3 安装PHP服务
在Web 02节点进行如下操作
首先安装PHP服务
[root@web02 ~]# dnf -y install php php-common php-cli php-gd php-pdo php-devel php-xml php-mysqlnd php-mysqli
然后编写测试界面文件
[root@web01 ~]# vi /var/www/html/php-test.php
<?php
phpinfo();
?>
重启Apache服务,并到浏览器中访问 http://192.168.184.112/php-test.php
[root@web01 ~]# systemctl restart httpd
-
- 安装WordPress
Web 01节点
下载 wordpress-6.7.1-zh_CN.zip 到根目录
[root@web01 ~]# wget https://cn.wordpress.org/wordpress-6.7.2-zh_CN.tar.gz
然后解压到Apache网页文件夹里
[root@web01 ~]# tar -zxf wordpress-6.7.2-zh_CN.tar.gz -C /var/www/html/
对解压出来的wordpress文件夹赋予权限
设置http根目录/var/www/的所有组为apache
[root@web01 ~]# chown -R :apache /var/www/
设置http根目录/var/www的所有者为apache
[root@web01 ~]# chown -R apache /var/www/
设置http根目录/var/www的组下的所有用户具有读写权限
[root@web01 ~]# chmod -R 775 /var/www/
[root@web01 ~]# systemctl restart httpd
在浏览器中访问http://192.168.184.110/wordpress/界面查看
接下来,输入数据库相关配置信息即可完成数据库连接
数据库主机填写database节点的IP: 192.168.184.111
数据库连接成功后,单击“运行安装程序”继续安装
自定义站点相关的表单,例如登录用户名及密码等
至此,WordPress部署成功
Web 02节点
下载 wordpress-6.7.2zh_CN.zip 到根目录
[root@web01 ~]# wget https://cn.wordpress.org/wordpress-6.7.2-zh_CN.tar.gz
然后解压到Apache网页文件夹里
[root@web02 ~]# dnf install -y tar
[root@web01 ~]# tar -zxf wordpress-6.7.2-zh_CN.tar.gz -C /var/www/html/
对解压出来的wordpress文件夹赋予权限
设置http根目录/var/www/的所有组为apache
[root@web01 ~]# chown -R :apache /var/www/
设置http根目录/var/www的所有者为apache
[root@web01 ~]# chown -R apache /var/www/
设置http根目录/var/www的组下的所有用户具有读写权限
[root@web01 ~]# chmod -R 775 /var/www/
[root@web01 ~]# systemctl restart httpd
在浏览器中访问http://192.168.184.112/wordpress/界面查看
这里的数据库主机也是和Web01节点一样,都是填写database的IP: 192.168.184.111
然后会提示已经安装过WordPress了,这说明Web02节点已经连接上了database节点的MariaDB数据库
Web02节点验证成功,直接单击“登录”便可以正常访问站点
即使把Web01节点的Apache服务关闭,Web02节点的WordPress仍然正常工作
[root@web01 ~]# systemctl stop httpd
2.4 Database节点验证
在database节点,登录MariaDB数据库,查看数据库列表信息
[root@database ~]# mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 43 Server version: 10.5.16-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)]> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | wordpress | +--------------------+ 4 rows in set (0.000 sec) MariaDB [(none)]> USE wordpress; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [wordpress]> SELECT * FROM wp_users; +----+------------+------------------------------------+---------------+-------------------+----------------------------------+---------------------+---------------------+-------------+--------------+ | ID | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key | user_status | display_name | +----+------------+------------------------------------+---------------+-------------------+----------------------------------+---------------------+---------------------+-------------+--------------+ | 1 | admin | $P$B9CXb1jGD1hWsdcP63t1cYQNjZSnQN. | admin | 2215916850@qq.com | http://192.168.184.110/wordpress | 2025-03-03 06:08:27 | | 0 | admin | +----+------------+------------------------------------+---------------+-------------------+----------------------------------+---------------------+---------------------+-------------+--------------+ 1 row in set (0.000 sec) MariaDB [wordpress]> exit; Bye [root@database ~]# |