先解释下,什么是LNMP,LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
部署LNMP动态网站,实现以下目标:
安装LNMP平台相关软件
配置Nginx实现动静分离
配置数据库,创建账户与密码
上线Wordpress代码
使用Wordpress后台管理界面,调整Wordpress版式
实验拓扑如图-30所示,做具体实验前请先配置好环境。
2.3 步骤
实现此案例需要按照如下步骤进行。
安装部署LNMP软件
备注:mariadb(数据库客户端软件)、mariadb-server(数据库服务器软件)、mariadb-devel(其他客户端软件的依赖包)、php(解释器)、php-fpm(进程管理器服务)、php-mysql(PHP的数据库扩展包。
1)安装软件包
[root@centos7 ~]# yum -y install gcc openssl-devel pcre-devel
[root@centos7 ~]# useradd -s /sbin/nologin nginx
[root@centos7 ~]# tar -xvf nginx-1.12.2.tar.gz
[root@centos7 ~]# cd nginx-1.12.2
[root@centos7 nginx-1.12.2]# ./configure \
--user=nginx --group=nginx \
--with-http_ssl_module \
--with-http_stub_status_module
[root@centos7 nginx-1.12.2]# make && make install
[root@centos7 ~]# yum -y install mariadb mariadb-server mariadb-devel
[root@centos7 ~]# yum -y install php php-mysql php-fpm
2)启动服务(nginx、mariadb、php-fpm)
[root@centos7 ~]# /usr/local/nginx/sbin/nginx #启动Nginx服务
[root@centos7 ~]# echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
[root@centos7 ~]# chmod +x /etc/rc.local
[root@centos7 ~]# ss -utnlp | grep :80 #查看端口信息
[root@centos7 ~]# systemctl start mariadb #启动mariadb服务器
[root@centos7 ~]# systemctl enable mariadb
[root@centos7 ~]# systemctl start php-fpm #启动php-fpm服务
[root@centos7 ~]# systemctl enable php-fpm
附加知识:systemd!!!
源码安装的软件默认无法使用systemd管理,如果需要使用systemd管理源码安装的软件需要手动编写服务的service文件(编写是可以参考其他服务的模板文件)。以下是nginx服务最终编辑好的模板。
Service文件存储路径为/usr/lib/system/system/目录。
[root@centos7 ~]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The Nginx HTTP Server
#描述信息
After=network.target remote-fs.target nss-lookup.target
#指定启动nginx之前需要其他的其他服务,如network.target等
[Service]
Type=forking
#Type为服务的类型,仅启动一个主进程的服务为simple,需要启动若干子进程的服务为forking
ExecStart=/usr/local/nginx/sbin/nginx
#设置执行systemctl start nginx后需要启动的具体命令.
ExecReload=/usr/local/nginx/sbin/nginx -s reload
#设置执行systemctl reload nginx后需要执行的具体命令.
ExecStop=/bin/kill -s QUIT ${MAINPID}
#设置执行systemctl stop nginx后需要执行的具体命令.
[Install]
WantedBy=multi-user.target
3)修改Nginx配置文件,实现动静分离
修改配置文件,通过两个location实现动静分离,一个location匹配动态页面,一个loation匹配其他所有页面。
注意修改默认首页为index.php!
[root@centos7 ~]# vim /usr/local/nginx/conf/nginx.conf
...省略部分配置文件内容...
location / {
root html;
index index.php index.html index.htm;
}
...省略部分配置文件内容...
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
...省略部分配置文件内容...
[root@centos7 ~]# /usr/local/nginx/sbin/nginx -s reload #重新加载配置
4)配置数据库账户与权限
为网站提前创建一个数据库、添加账户并设置该账户有数据库访问权限。
[root@centos7 ~]# mysql
MariaDB [(none)]> create database wordpress character set utf8mb4;
MariaDB [(none)]> grant all on wordpress.* to wordpress@'localhost' identified by 'wordpress';
MariaDB [(none)]> grant all on wordpress.* to wordpress@'192.168.2.11' identified by 'wordpress';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
提示:在mysql和mariadb中%代表匹配所有,这里是授权wordpress用户可以从任意主机连接数据库服务器,生产环境建议仅允许特定的若干主机访问数据库服务器。
上线wordpress代码
1)上线PHP动态网站代码
[root@centos7 ~]# yum -y install unzip
[root@centos7 ~]# unzip wordpress.zip
[root@centos7 ~]# cd wordpress
[root@centos7 wordpress]# tar -xf wordpress-5.0.3-zh_CN.tar.gz
[root@centos7 wordpress]# cp -r wordpress/* /usr/local/nginx/html/
[root@centos7 wordpress]# chown -R apache.apache /usr/local/nginx/html/
提示
:动态网站运行过程中,php脚本需要对网站目录有读写权限,而php-fpm默认启动用户为apache。
2)初始化网站配置(使用客户端访问web服务器IP)
[root@client ~]# firefox http://192.168.2.11/
第一次访问服务器会自动进入config配置页面,效果如图-31所示。
开发人员在写代码的时候并不知道未来数据库服务器的IP、端口、数据库名称、账户等信息,该配置页面主要的作用就是动态配置数据库信息,根据前面步骤配置的数据库信息填空即可,效果如图-32所示。
图-32
点击提交即可完成数据库的初始化工作,php动态脚本会自动在wordpress数据库中创建若干数据表,后期网站的数据都会写入对并的数据表中。效果如图-33所示。
图-33
第一次使用Wordpress需要给你的网站设置基本信息,如网站标题、网站管理员账户与密码等信息,配置完成后点击安装wordpress即可,如图-34所示。
网站后台管理
1)访问192.168.2.11服务器,进入并熟悉后台管理界面
通常情况下,开发人员会开发一个后台管理界面,当代码上线后,普通用户就可以管理和配置网站页面(需要使用网站的超级管理员身份才可以进入后台界面)。
[root@client ~]# firefox http://192.168.2.11
访问首页后点击如图-35所示的登陆菜单,输入账户和密码进入后台管理界面。
或者直接在地址栏中输入后台管理界面的具体URL。
[root@client ~]# firefox http://192.168.2.11/wp-login.php
输入管理员用户名和密码,效果如图-36所示。登陆后台管理界面效果如图-37所示。
图-37
2**)修改网站主题**
Wordpress主题会影响网站的整体外观,我们可以使用默认自带的若干主题。
后台修改网站主题的菜单为<外观>–<主题>,使用默认主题,点击启用即可,如图-38所示。
如果需要更多更新的主题,则可以去官网下载更多新的主题,默认下载的主题格式为zip压缩包。
官方网站主题链接:(https://cn.wordpress.org/themes/browse/popular/)。
将主题下载到服务器本地后,可以在后台管理界面添加主题,<外观>–<主题>–<添加>–<上传主题>–<浏览>–<现在安装>,如图-39所示。
图-39
部署新主题的另一种方法是,直接将下载的zip主题包拷贝到wordpress代码的特定目录,如/usr/local/nginx/html/wp-content/themes/目录,然后使用unzip解压主题即可,效果如图-40所示。
3)修改网站小工具
小工具是首页中的各种常用功能菜单,可以添加和删除。
首先可以删除一些不需要的小工具,如最近文章、最近评论等,如图-41所示。
Right、Legt、Header代表的是小工具的位置,使用鼠标拖动小工具可以移动位置,如图-42所示。
可以通过小工具为网站添加导航功能,使用鼠标将导航菜单拖动到合适的位置即可,默认没有导航菜单,需要自定义创建,如图-43所示。
图-43
创建导航菜单后,可以继续创建页面,并将页面添加到导航菜单中。<页面>–<新建页面>即可添加新的页面,如图-44和图-45所示。新的页面内容可以是段落、图像、列表、引语等(每个人根据自己的需要自由发挥)。
新的页面添加完成后,可以将其添加到菜单中使用,如图-46所示。访问网站首页即可查看导航菜单的效果,如图-47所示。
图-47
4)扩展其他问题
其他有关wordpress的使用方法与技巧,可以参考官方网站的文档资料,文档链接:https://codex.wordpress.org/zh-cn:Main_Page。
附加知识(常见面试题)
1)描述raid 0、1、5的特点和优点?
答:Raid0条带卷,可以高效读写,硬盘空间利用率100%,raid1是复制卷可以实现数据的高可靠读写,硬盘空间利率50%,raid5兼得以上两种优点,硬盘空间利用率N-1,仅可用损坏一块硬盘。
2)将目录/opt/bjca3打包备份排除/opt/bjca3/logs目录,传递到远程主机192.168.1.8的/backup目录下?
答:使用–exclude选项在打包时可用排除特定的目录,但是要注意,使用tar 的–exclude 排除打包的时候,不能加“/”,否则还是会把logs目录以及其下的文件打包进去。
错误写法:
tar -czvf bjca3.tar.gz --exclude=/opt/bjca3/logs/ /opt/bjca3
正确写法:
tar -czvf bjca3.tar.gz --exclude=/opt/bjca3/logs /opt/bjca3
3) 如何远程查看Linux服务192.168.1.7运行了多少时间?
答:ssh [email protected] uptime
4)虚拟机常用有几种网络模式?请简述其工作原理或你个人的理解?
答:有桥接模式、隔离模式、NAT模式、路由模式,如图-48所示。
桥接模式:Guest与Host连接到同一个交换机上;通过桥接物理网卡,相当于直连到Host所在网络。
隔离模式:允许Guest访问同一虚拟交换机上的其他Guest;但是不能访问Host所在的外部网络。
NAT模式(默认):将Guest虚拟机的默认网关指向Host物理机的virtbr0接口的IP地址;Guest共享真机的网络连接,以地址转换的方式访问外网。
路由模式:由Host物理机充当路由器,开启转发;需要额外设置外网与Guest虚拟机之间互访的路由条目,Guest以路由转发的方式访问外网(需要在真机配置iptables规则)。
5)在11月份内,每天的早上6点到12点中,每隔2小时执行一次 /usr/bin/httpd.sh,怎么实现?
答:
0 6-12/2 * 11 * /usr/bin/httpd.sh
6)如何查看当前系统是否有监听6666端口?
答:
netstat -untlp | grep 6666或者ss -nutlp | grep 6666
7) 如何显示CPU占用率最高的进程?
答:
top,输入大写的P
8)用什么命令可以查看上一次服务器启动时间、上一次谁登陆过服务器?
答:
last(历史登陆记录),uptime(系统累计运行的时间),who -b(上次启动系统的时间)