(k8s-king-king)实战案例——LNMP搭建服务案例

举报
yd_254431385 发表于 2023/11/24 13:43:53 2023/11/24
【摘要】 2.1 案例目标(1)掌握MySQL服务搭建。(2)掌握PHP服务搭建。(3)实现搭建Discuz论坛。(4)配置搭建WordPress博文。2.2 案例准备最小化CentOS 7.5虚拟机一台,桌面化CentOS7.5虚拟机一台。2.3 案例实施(1)配置yum源[root@localhost ~]# hostnamectl set-hostname lnmp[root@localhost...

2.1 案例目标

(1)掌握MySQL服务搭建。

(2)掌握PHP服务搭建。

(3)实现搭建Discuz论坛。

(4)配置搭建WordPress博文。

2.2 案例准备

最小化CentOS 7.5虚拟机一台,桌面化CentOS7.5虚拟机一台。

2.3 案例实施

(1)配置yum源

[root@localhost ~]# hostnamectl set-hostname lnmp
[root@localhost ~]# bash
[root@lnmp ~]# curl -O http://mirrors.douxuedu.com/training/lnmp.tar.gz
[root@lnmp ~]# tar -zxvf lnmp.tar.gz -C /opt/
[root@lnmp ~]# mv /etc/yum.repos.d/* /home/
[root@localhost ~]# cat >> /etc/yum.repos.d/local.repo << EOF
[lnmp]
baseurl=file:///opt/lnmp
gpgcheck=0
enabled=1
name=lnmp
EOF

(2)部署MYSQL服务

① 安装MySQL数据库

在Centos7.5虚拟机的环境下通过yum方式进行安装MySQL服务。

[root@lnmp ~]# yum install mariadb-server -y
......
Complete!

② 实例化数据库

实例化数据库为数据库创建登录密码,由于默认安装完MySQL数据库,服务并未启动,因此需要先进行启动数据库:

[root@lnmp ~]# systemctl start mariadb
[root@lnmp ~]# systemctl enable mariadb
[root@lnmp ~]# mysql_secure_installation
Enter current password for root (enter for none): //按Enter键
Set root password? [Y/n] y
New password:000000 
Re-enter new password:000000
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

(3)部署Nginx服务

在CentOS 7.5虚拟机的环境下通过yum方式进行安装PHP服务。默认yum源中不存在Nginx服务,需要安装扩展插件。

 [root@lnmp ~]# yum install nginx -y
......
Complete!

(4)部署PHP服务

① 安装PHP服务

在CentOS 7.5虚拟机的环境下通过yum方式进行安装PHP服务。

[root@lnmp ~]# yum install php -y
......
Complete!

② 验证是否成功安装PHP服务

在/var/www/html目录下,编辑Index.php文件,添加如下内容。

[root@lnmp ~]# mkdir -p /var/www/html/
[root@lnmp ~]# echo "<?php phpinfo();?>">>/var/www/html/index.php

配置Nginx访问目录为/var/www/html/(添加内容如下图所示,先按i键进行编辑,修改完成后按ESC键输入:wq回车)。

[root@lnmp ~]# vi /etc/nginx/nginx.conf
user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
	    index index.php index.html;    
        server_name  _;
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;
        location / {
		root         /var/www/html;
        }
        location ~ \.php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
                include        fastcgi_params;
        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

截图.jpg

Nginx服务默认不支持PHP文件,需要安装php-fpm服务:

[root@lnmp ~]# yum install php-fpm -y
......
Complete!
[root@lnmp ~]# systemctl restart php-fpm

启动Nginx服务:

[root@lnmp ~]# systemctl start nginx
[root@lnmp ~]# systemctl enable nginx

防火墙开启的情况下默认是未开放80端口,外部将无法进行访问,因此需要开放防火墙的80端口。(线上环境未开启防火墙,忽略此步骤!)

[root@lnmp ~]# firewall-cmd --add-port=80/tcp --permanent
[root@lnmp ~]# firewall-cmd --add-port=80/udp --permanent
[root@lnmp ~]# firewall-cmd --add-service=http –permanent

通过浏览器访问LNMP服务器地址进行验证,如图2-1所示:

图21.png

图2-1 测试LNMP服务器页面

(5)部署Discuz论坛

① 配置LNMP环境

安装PHP连接数据库所需插件:

[root@lnmp ~]# yum install php-mysql php-gd -y
......
Complete!

配置PHP支持时间:

[root@lnmp ~]# echo "cgi.fix_pathinfo=0" >> /etc/php.ini
[root@lnmp ~]# echo 'date.timezone ="Asia/shanghai"' >> /etc/php.ini

配置MySQL支持中文:

[root@lnmp ~]# vi /etc/my.cnf
[mysqld]
character-set-server=utf8

重新启动服务:

[root@lnmp ~]# systemctl restart mariadb php-fpm

② 部署Discuz环境

从网上下载Discuz_X3.2_SC_UTF8.zip压缩包,上传到LNMP服务器。解压压缩包,并将解压后的upload文件下的内容复制到/var/www/html目录下。

[root@lnmp ~]# cd /opt/
[root@lnmp opt]# ls
Discuz_X3.2_SC_UTF8.zip  lnmp  wordpress-zh_CN.zip
[root@lnmp opt]# yum install unzip -y
......
Complete!
[root@lnmp opt]# unzip Discuz_X3.2_SC_UTF8.zip
[root@lnmp opt]# cp -r upload/*  /var/www/html/
cp: overwrite ‘/var/www/html/index.php’? y

切换至第二个节点,通过火狐浏览器访问http://第一个节点地址/install,如图2-2所示:

图22.png

图2-2 访问Discuz

默认情况下,会存在权限问题造成无法安装的问题,如图2-3所示。

图23.png

图2-3 权限问题

此时需要对文件进行权限设置:

[root@lnmp opt]# cd /var/www/html/
[root@lnmp html]# vi privilege.txt 
./config
./data
./data/cache
./data/avatar
./data/plugindata
./data/download
./data/addonmd5
./data/template
./data/threadcache
./data/attachment
./data/attachment/album
./data/attachment/forum
./data/attachment/group
./data/log
./uc_client/data/cache
./uc_server/data/
./uc_server/data/cache
./uc_server/data/avatar
./uc_server/data/backup
./uc_server/data/logs
./uc_server/data/tmp uc_server/data/view
[root@lnmp html]# vi privilege.sh
for i in `cat ./privilege.txt`
do
  chmod 777 $i
done
[root@lnmp html]# chmod 777 privilege.sh
[root@lnmp html]# sh privilege.sh

返回浏览器刷新页面,检查是否存在带有差号现象。如图2-4所示,检查完成后单击“下一步”按钮。

图24.png

图2-4 检查完成

如果前期没有安装过Discuz环境,此处需要选择全新安装Discuz,否则只需要选择仅安装Discuz即可,如图2-5所示。

图25.png

图2-5 Discuz安装向导

配置数据库实现数据存储,为Discuz创建数据库。

[root@lnmp html]# cd
[root@lnmp ~]# mysql -uroot -p000000 -e "create database ultrax character set utf8;"

填写的数据库信息根据个人环境进行设置,管理源密码自行设置,如图2-6所示。

图26.png

图2-6 安装数据库

环境部署完成后,实现后台信息访问,如图2-7所示。

图27.png

图2-7 安装完成

(6)部署WordPress博客

① 安装部署所需插件

部署WordPress环境,默认的插件不能满足环境需求,对应需要安装相应的插件。

[root@lnmp ~]# yum -y install php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel
......
Complete!

② 上传并解压WordPress压缩包

可通过网上进行下载WordPress环境压缩包,并将压缩包上传到LNMP服务器。

[root@lnmp ~]# cd /opt/
[root@lnmp opt]# unzip wordpress-zh_CN.zip

③ 部署WordPress环境

清空/usr/share/nginx/html目录下所有文件、并将解压后的wordpress目录下所有文件拷贝到此目录下。

[root@lnmp opt]# cd
[root@lnmp ~]# rm -rf /usr/share/nginx/html/*
[root@lnmp ~]# cp -r /opt/wordpress/* /usr/share/nginx/html/
[root@lnmp ~]# chmod 777 -R /usr/share/nginx/html/wp-content/

④ 配置Nginx环境

修改Nginx配置文件,添加新端口号和访问目录,实现WordPress环境访问(添加的部分内容如下截图所示)。

[root@lnmp ~]# vi /etc/nginx/nginx.conf
user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        index index.php index.html;
        include /etc/nginx/default.d/*.conf;
        location / {
                root /var/www/html;
        }
        location ~ \.php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
                include        fastcgi_params;

        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
    server {
        listen       8080 default_server;
        listen       [::]:8080 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        index index.php index.html;
        include /etc/nginx/default.d/*.conf;
        location / {
                root /usr/share/nginx/html;
        }
        location ~ \.php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
                include        fastcgi_params;
        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
 [root@lnmp ~]# systemctl restart nginx
 [root@lnmp ~]# systemctl restart php-fpm

截图2.jpg

⑤ 开放8080端口(线上环境未开启防火墙,忽略此步骤!)

默认防火墙开启状态下并未开启8080端口,此处需要将端口开放,否则将造成无法访问。

[root@lnmp ~]# firewall-cmd --add-port=8080/tcp –permanent
[root@lnmp ~]# firewall-cmd --add-port=8080/udp –permanent
[root@lnmp ~]# systemctl restart firewalld

⑥ 创建数据库并设置访问权限

[root@lnmp ~]# mysql -uroot -p000000
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.68-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.00 sec)

MariaDB [(none)]> grant all privileges on *.* to root@localhost identified by '000000' with grant option;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on *.* to root@"%" identified by '000000' with grant option;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit
Bye

⑦ 切换至第二个节点,通过火狐浏览器访问http://第一个节点地址:8080,如图2-8所示:

图28.png

图2-8 访问WordPress网站

⑧ 配置数据库连接

设置数据库名为wordpress,用户为已经创建的wordpress用户,密码为设置wordpress访问权限时的密码,信息确认后单击“提交”按钮,如图2-9所示。

图29.png

图2-9 配置数据库连接

⑨ 编辑wp-config.php配置文件

出现无法自动创建wp-config.php配置文件时可以通过手动创建的方式完成,如图2-10所示。

图210.png

图2-10 编辑wp-config.php配置文件

[root@lnmp ~]# cd /usr/share/nginx/html/
[root@lnmp html]# ls
index.php        wp-admin              wp-content         wp-load.php      wp-signup.php
license.txt      wp-blog-header.php    wp-cron.php        wp-login.php     wp-trackback.php
readme.html      wp-comments-post.php  wp-includes        wp-mail.php      xmlrpc.php
wp-activate.php  wp-config-sample.php  wp-links-opml.php  wp-settings.php
[root@lnmp html]# cp wp-config-sample.php wp-config.php
[root@lnmp html]# vi wp-config.php
<?php
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');

/** MySQL数据库用户名 */
define('DB_USER', 'root');

/** MySQL数据库密码 */
define('DB_PASSWORD', '000000');

/** MySQL主机 */
define('DB_HOST', 'localhost');

/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');

/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');

/**#@+
 * 身份认证密钥与盐。
* 修改为任意独一无二的字串!
 * 或者直接访问{@link https://api.wordpress.org/secret-key/1.1/salt/
 * WordPress.org密钥生成服务}
 * 任何修改都会导致所有cookies失效,所有用户将必须重新登录。
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         '@/&&ILtVtW+J`}}5`sM6MI`agSSr(cN2XLfIRTj!n(n)ywXO7IqR>G*n0!nz:O}~');
define('SECURE_AUTH_KEY',  'YF{FTu2@}iY#+uO;I5eXLx0<p5JvqLaEInhI2;&z=bT7H-g$8|5>y2q^dU[WWZ35');
define('LOGGED_IN_KEY',    '{:@kjkJbr%XtJvB(Xx,$nzl1d{E)nKe5Fk#iWs}#!@[]}|C40J8-WPg@GCuWPaCQ');
define('NONCE_KEY',        '[/3B(Bu~$=K&*8d{-C<DUM4Q:`D2:xQS`#-W41@@M)mIYBHQB<0Mkxo--@~&!9s.');
define('AUTH_SALT',        '}g0>P%(C~9.#^ZW|Hp5LSP/o+Rzcb-u2V!{LVxeSPN_qc+b+ld1<W&<u_#~G;Or@');
define('SECURE_AUTH_SALT', '(c^Gll!}Bg)?HzkNtp9PDX2.1KMax%e&K(rQF%V.O&U~yH.C`~5CgX^czk$)}.R9');
define('LOGGED_IN_SALT',   'G|[%;r!1jUeV_hZec/MU-kyDi-t_k^:NX;9=qH>xPa8oVcKJB=Fc#Vnjy42#^E_h');
define('NONCE_SALT',       'mI@ayq$`IsJYs1~<s}Td:gjVj)2f93|75XS-R?c2IQ-5o<>kX{FNN2NL``M@l2Um');
/**#@-*/
/**
 * WordPress数据表前缀。
 *
 * 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置
 * 不同的数据表前缀。前缀名只能为数字、字母加下划线。
 */
$table_prefix  = 'wp_';
/**
 * 开发者专用:WordPress调试模式。
* 将这个值改为true,WordPress将显示所有用于开发的提示。
 * 强烈建议插件开发者在开发环境中启用WP_DEBUG。
* 要获取其他能用于调试的信息,请访问Codex。
* @link https://codex.wordpress.org/Debugging_in_WordPress
 */
define('WP_DEBUG', false);
/**
 * zh_CN本地化设置:启用ICP备案号显示
* 可在设置→常规中修改。
 * 如需禁用,请移除或注释掉本行。
 */
define('WP_ZH_CN_ICP_NUM', true);
/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */
/** WordPress目录的绝对路径。 */
if ( !defined('ABSPATH') )
        define('ABSPATH', dirname(__FILE__) . '/');
/** 设置WordPress变量和包含文件。 */
require_once(ABSPATH . 'wp-settings.php');

⑩ 实现WordPress页面实例化

实现安装WordPress操作,添加站点标题,并为后台管理创建管理用户并设置密码,默认密码设置的安全度是有一定规则的,对于弱密码需要勾选“确认使用弱密码”复选框,信息设置完成后单击“安装WordPress”按钮实现安装,如图2-11所示。

图211.png

图2-11 安装WordPress

⑪ 登录后台

数据库部署完成后,可通过设置的后端登录用户名和密码登录到后台,如图2-12、图2-13所示。

图212.png

图2-12 WordPress安装成功

图213.png

图2-13 登录后台

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。