部署LNMP动态网站

部署LNMP动态网站

先解释下,什么是LNMP,LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

思路

部署LNMP动态网站,实现以下目标:

安装LNMP平台相关软件
配置Nginx实现动静分离
配置数据库,创建账户与密码
上线Wordpress代码
使用Wordpress后台管理界面,调整Wordpress版式
实验拓扑如图-30所示,做具体实验前请先配置好环境。

部署LNMP动态网站_第1张图片
图-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所示。

部署LNMP动态网站_第2张图片
图-31

开发人员在写代码的时候并不知道未来数据库服务器的IP、端口、数据库名称、账户等信息,该配置页面主要的作用就是动态配置数据库信息,根据前面步骤配置的数据库信息填空即可部署LNMP动态网站_第3张图片,效果如图-32所示。

图-32

点击提交即可完成数据库的初始化工作,php动态脚本会自动在wordpress数据库中创建若干数据表,后期网站的数据都会写入对并的数据表中。效果如图-33所示。
部署LNMP动态网站_第4张图片

图-33

第一次使用Wordpress需要给你的网站设置基本信息,如网站标题、网站管理员账户与密码等信息,配置完成后点击安装wordpress即可,如图-34所示。

部署LNMP动态网站_第5张图片
图-34

步骤三:

网站后台管理

1)访问192.168.2.11服务器,进入并熟悉后台管理界面

通常情况下,开发人员会开发一个后台管理界面,当代码上线后,普通用户就可以管理和配置网站页面(需要使用网站的超级管理员身份才可以进入后台界面)。

[root@client ~]# firefox http://192.168.2.11

访问首页后点击如图-35所示的登陆菜单,输入账户和密码进入后台管理界面。

部署LNMP动态网站_第6张图片
图-35

或者直接在地址栏中输入后台管理界面的具体URL。

[root@client ~]# firefox http://192.168.2.11/wp-login.php
输入管理员用户名和密码,效果如图-36所示。登陆后台管理界面效果如图-37所示。

部署LNMP动态网站_第7张图片
图-36
部署LNMP动态网站_第8张图片

图-37

2**)修改网站主题**

Wordpress主题会影响网站的整体外观,我们可以使用默认自带的若干主题。

后台修改网站主题的菜单为<外观>–<主题>,使用默认主题,点击启用即可,如图-38所示。

部署LNMP动态网站_第9张图片
图-38

如果需要更多更新的主题,则可以去官网下载更多新的主题,默认下载的主题格式为zip压缩包。

官方网站主题链接:(https://cn.wordpress.org/themes/browse/popular/)。

将主题下载到服务器本地后,可以在后台管理界面添加主题,<外观>–<主题>–<添加>–<上传主题>–<浏览>–<现在安装>,如图-39所示。
部署LNMP动态网站_第10张图片

图-39

部署新主题的另一种方法是,直接将下载的zip主题包拷贝到wordpress代码的特定目录,如/usr/local/nginx/html/wp-content/themes/目录,然后使用unzip解压主题即可,效果如图-40所示。

在这里插入图片描述
图-40

3)修改网站小工具

小工具是首页中的各种常用功能菜单,可以添加和删除。

首先可以删除一些不需要的小工具,如最近文章、最近评论等,如图-41所示。

部署LNMP动态网站_第11张图片
图-41

Right、Legt、Header代表的是小工具的位置,使用鼠标拖动小工具可以移动位置,如图-42所示。

部署LNMP动态网站_第12张图片
图-42

可以通过小工具为网站添加导航功能,使用鼠标将导航菜单拖动到合适的位置即可,默认没有导航菜单,需要自定义创建,如图-43所示。
部署LNMP动态网站_第13张图片

图-43

创建导航菜单后,可以继续创建页面,并将页面添加到导航菜单中。<页面>–<新建页面>即可添加新的页面,如图-44和图-45所示。新的页面内容可以是段落、图像、列表、引语等(每个人根据自己的需要自由发挥)。

部署LNMP动态网站_第14张图片
图-44

部署LNMP动态网站_第15张图片
图-45

新的页面添加完成后,可以将其添加到菜单中使用,如图-46所示。访问网站首页即可查看导航菜单的效果,如图-47所示。
部署LNMP动态网站_第16张图片

图-46
部署LNMP动态网站_第17张图片

图-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所示。

部署LNMP动态网站_第18张图片
图-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(上次启动系统的时间)

你可能感兴趣的:(集群)