LNMP服务

一、状态模块:

 curl -H Host:status.oldboy.com 172.16.1.7

官网http://nginx.org/en/docs/http/ngx_http_stub_status_module.html#stub_status

1.重启刷新:
[08:46 root@web01 ~]# systemctl reload nginx
[08:46 root@web01 ~]# curl -H Host:status.oldboy.com 172.16.1.7
Active connections: 1 
server accepts handled requests
 22 22 22 
Reading: 0 Writing: 1 Waiting: 0 
[08:46 root@web01 ~]# systemctl restart nginx
[08:46 root@web01 ~]# curl -H Host:status.oldboy.com 172.16.1.7
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0 

※2.状态模块详解

Active connections: 1 
server accepts handled requests
 22 22 22 
Reading: 0 Writing: 1 Waiting: 0 

Active connections: 1 当前的连接数量(已建立连接)

server accepts:22 服务器接收到的请求数量
server handled: 22 服务器接收处理的请求数量
server request:20 用户一共向服务器发出多少请求

Reading:0 当前nginx正在读取的用户请求头的数量
Writing:1 当前nginx正在响应用户请求的数量
Waiting:1 当前等待被nginx处理的 请求数量

image

二、权限控制

allow和deny
简单验证

【简单验证】

安装软件httpd-tools

[09:00 root@web01 /etc/nginx]# rpm -qa httpd-tools
httpd-tools-2.4.6-89.el7.centos.x86_64

2.修改status模块

auth_basic "Auth access Blog Input your Passwd!";
auth_basic_user_file /etc/nginx/htpasswd;

[09:09 root@web01 /etc/nginx]# vim conf.d/status.conf 
server {
        listen 80;
        server_name  status.oldboy.com;
        stub_status;
        access_log off;
        auth_basic "Auth access Blog Input your Passwd!";
        auth_basic_user_file /etc/nginx/htpasswd;

#       allow 172.16.1.0/24;
#       deny all;
}

创建密码文件,修改权限600 属主属组为nginx

[09:14 root@web01 /etc/nginx]# htpasswd -b -c /etc/nginx/htpasswd  oldboy oldboy
[09:15 root@web01 /etc/nginx]# ll htpasswd 
-rw-r--r-- 1 root root 48 Jun  6 09:15 htpasswd 
[09:24 root@web01 /etc/nginx]#  chmod 600 htpasswd 
[09:25 root@web01 /etc/nginx]# chown nginx.nginx htpasswd 
[09:25 root@web01 /etc/nginx]# ll htpasswd 
-rw------- 1 nginx nginx 45 Jun  6 09:19 htpasswd

浏览器查看

输入账号密码都为oldboy:

image.png
image.png

三、Location规则

先看图:

image
image
image.png

常见规则:

image
image

将状态码取出来:

1.第一种方法:

需要将多余的定向到空
curl -I 10.0.0.7 2>/dev/null|awk 'NR==1{print $2}'

[09:55 root@web01 /etc/nginx]# curl -I 10.0.0.7
HTTP/1.1 200 OK
Server: nginx/1.16.0
Date: Thu, 06 Jun 2019 01:55:13 GMT
Content-Type: text/html
Content-Length: 15
Last-Modified: Wed, 05 Jun 2019 01:00:48 GMT
Connection: keep-alive
ETag: "5cf71440-f"
Accept-Ranges: bytes

[09:55 root@web01 /etc/nginx]# curl -I 10.0.0.7|awk 'NR==1{print $2}'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0    15    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
200
[09:55 root@web01 /etc/nginx]# curl -I 10.0.0.7 2>/dev/null|awk 'NR==1{print $2}'
200

2.第二种方法:

curl -sw "%{http_code}\n" -o /dev/null baidu.com

[09:59 root@web01 /etc/nginx]# curl -sw "%{http_code}\n" -o /dev/null baidu.com
200

安装需要的软件包:

rpm压缩包链接: https://pan.baidu.com/s/1jmr-c3i1EUzRtkH9IGEv9Q 提取码: ge4j

yum remove php-mysql-5.4 php php-fpm php-common
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb

yum install -y mariadb-server 

3.配置模块内容:

修改前请备份
return 200 "location ~* .(gif|jpg|jpeg) \n";这一行最后不要加$符号,不识别正则符号。
修改后重启 检查语法

[root@web01 /etc/nginx/conf.d]# cp 01-www.conf 01-www.conf.bak
[root@web01 /etc/nginx/conf.d]# vim 01-www.conf
server {
    listen       80;
    server_name  www.oldboy.com;
    root   html/www;
    location / {
       return 200  "location / \n";
    }
    location = / {
        return 200 "location = \n";
    }
    location /documents/ {
        return 200 "location /documents/ \n";
    }
    location ^~ /images/ {
        return 200 "location ^~ /images/ \n";
    }
    location ~* \.(gif|jpg|jpeg)$ {
        return 200 "location ~* \.(gif|jpg|jpeg) \n";
    }
    access_log off;
}
[10:53 root@web01 /etc/nginx/conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[10:54 root@web01 /etc/nginx/conf.d]# systemctl reload nginx 

4.测试一下

=     精确
^~    不匹配正则
~*    不区分大小写正则匹配
/documents    匹配路径
/      默认

image
[root@web01 /etc/nginx/conf.d]# curl 10.0.0.7
location = 

[root@web01 /etc/nginx/conf.d]# curl 10.0.0.7/
location = 

[root@web01 /etc/nginx/conf.d]# curl 10.0.0.7/oldboy.html
location / 

[root@web01 /etc/nginx/conf.d]# curl 10.0.0.7/documents/alex.txt
location /documents/ 

[root@web01 /etc/nginx/conf.d]# curl 10.0.0.7/lidao/documents/alex.txt
location / 

[root@web01 /etc/nginx/conf.d]# curl 10.0.0.7/oldboy.jpg
location ~* \.(gif|jpg|jpeg) 

#验证/documents与~* 的优先级
[root@web01 /etc/nginx/conf.d]# curl 10.0.0.7/documents/oldboy.jpg
location ~* \.(gif|jpg|jpeg) 

#验证 ~* 与 ^~ 优先级
[root@web01 /etc/nginx/conf.d]# curl 10.0.0.7/images/oldboy.jpg
location ^~ /images/ 


※四、LNMP博客搭建

image
image
image
image.png

1.配置/etc/nginx/conf.d/下的 02-blog.conf 文件

1.提前备份02-blog.conf
2.添加php动态页面
3.重启并检查

[12:01 root@web01 /etc/nginx/conf.d]# cp 02-blog.conf 02-blog.conf.bak
[12:01 root@web01 /etc/nginx/conf.d]# vim 02-blog.conf
server   {
    listen       80;
    server_name  blog.oldboy.com;
    access_log  /var/log/nginx/access_blog.log  main;
    root   /usr/share/nginx/html/blog;
    location / {
    index  index.php index.html index.htm;
    }
   location ~* \.(php|php5)$ {
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
       include        fastcgi_params;
   }

}
[12:07 root@web01 /etc/nginx/conf.d]# systemctl reload nginx
[12:07 root@web01 /etc/nginx/conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

2.配置MySQL

1.提前安装MySQL,重启MySQL的mariadb服务
2.查看进程号ss -lntup |grep mysql
3.查看进程 ps -ef |grep mysql
4.然后执行mysql命令进入

[12:10 root@web01 /etc/nginx/conf.d]# systemctl start mariadb.service 
[12:10 root@web01 /etc/nginx/conf.d]#  ss -lntup |grep mysql 
tcp    LISTEN     0      50        *:3306                  *:*                   users:(("mysqld",pid=8793,fd=13))
[12:10 root@web01 /etc/nginx/conf.d]#  ps -ef |grep mysql 
mysql      8631      1  0 12:09 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql      8793   8631 11 12:09 ?        00:00:02 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root       8883   7472  0 12:10 pts/1    00:00:00 grep --color=auto mysql
[12:10 root@web01 /etc/nginx/conf.d]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.60-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)]> 

image

※①查看系统中所有数据库的命令

show databases;

结尾要加分号

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

MariaDB [(none)]> 

※②查看系统中所有的用户信息

select user,host from mysql.user;
MariaDB [(none)]> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
|      | localhost |
| root | localhost |
|      | web01     |
| root | web01     |
+------+-----------+
6 rows in set (0.00 sec)

MariaDB [(none)]> 

※③创建一个新的数据库wordpress

create database wordpress;

最后为数据库名字

MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| wordpress          |
+--------------------+
5 rows in set (0.00 sec)

MariaDB [(none)]> 

※④创建用户 并给权限,密码,允许谁登录

grant all on wordpress.* to 'wordpress'@'172.16.1.%' identified by '123456';
grant all on wordpress.* to 'wordpress'@'localhost' identified by '123456';

>grant   创建用户并给权限
>all     所有权限
>on      指定的是
>wordpress.*    wordpress数据库的.所有表
>
>'wordpress'@'localhost'     ‘用户名'@'ip.登录' (%==*)
>identified by '123456';      密码是 '123456';

MariaDB [(none)]> grant all on wordpress.* to 'wordpress'@'172.16.1.%' id
Query OK, 0 rows affected (0.04 sec)

MariaDB [(none)]> grant all on wordpress.* to 'wordpress'@'localhost' ide
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> select user,host from mysql.user;
+-----------+------------+
| user      | host       |
+-----------+------------+
| root      | 127.0.0.1  |
| wordpress | 172.16.1.% |
| root      | ::1        |
|           | localhost  |
| root      | localhost  |
| wordpress | localhost  |
|           | web01      |
| root      | web01      |
+-----------+------------+
8 rows in set (0.00 sec)

※⑤ctrl c退出mysql,重新进入新创建的数据库用户

mysql -uwordpress -p

-p后直接输入密码也可以
-u与-p后不能加空格

-u:连接MySQL服务器的用户名
-p:连接MySQL服务器的密码
image
[12:33 root@web01 /etc/nginx/conf.d]# mysql -uwordpress -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.60-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)]> 

3.搭建PHP环境

1.修改/etc/php-fpm.d/www.conf中的user与group为nginx

2.检查 用户与用户组是否为nginx

egrep -n 'user|group' /etc/php-fpm.d/www.conf

3.重启 php-fpm.service 服务

systemctl restart php-fpm.service

4.查看端口号与进程(9000)

ss -lntup|grep 9000
ps -ef |grep php

[12:45 root@web01 /etc/nginx/conf.d]# egrep -n '^user|^group' /etc/php-fpm.d/www.conf
8:user = nginx
10:group = nginx
[12:45 root@web01 /etc/nginx/conf.d]#  systemctl restart php-fpm.service 
[12:45 root@web01 /etc/nginx/conf.d]# ss -lntup|grep 9000
tcp    LISTEN     0      128    127.0.0.1:9000                  *:*                   users:(("php-fpm",pid=9013,fd=9),("php-fpm",pid=9012,fd=9),("php-fpm",pid=9011,fd=9),("php-fpm",pid=9010,fd=9),("php-fpm",pid=9009,fd=9),("php-fpm",pid=9008,fd=7))
[12:45 root@web01 /etc/nginx/conf.d]# ps -ef |grep php 
root       9008      1  1 12:45 ?        00:00:00 php-fpm: master process (/etc/php-fpm.conf)
nginx      9009   9008  0 12:45 ?        00:00:00 php-fpm: pool www
nginx      9010   9008  0 12:45 ?        00:00:00 php-fpm: pool www
nginx      9011   9008  0 12:45 ?        00:00:00 php-fpm: pool www
nginx      9012   9008  0 12:45 ?        00:00:00 php-fpm: pool www
nginx      9013   9008  0 12:45 ?        00:00:00 php-fpm: pool www
root       9017   7472  0 12:45 pts/1    00:00:00 grep --color=auto php

Nginx与PHP之间:

image

5. 切换到blog站点目录下,添加以php结尾的文件

vim info.php
注意php的语法格式

[12:50 root@web01 /etc/nginx/conf.d]# cd /usr/share/nginx/html/blog/
[12:50 root@web01 /usr/share/nginx/html/blog]# vim info.php
<?php
phpinfo();
?>

浏览器查看网页http://10.0.0.7/info.php

image.png

如果访问没有显示出来,主要原因就是Nginx没有将请求抛给PHP,主要去看nginx的配置

首先保证02-blog.conf配置文件是在第一位,把其他的配置模块先压缩或注释掉。

image

第二种就是配置的内容是否有错误,是否生效

image

6.在blog站点目录下创建第二个文件mysi.php

[root@web01 /blog]# vim mysqli.php 
<?php
$servername = "localhost";
$username = "wordpress";
$password = "123456";

// 创建连接
$conn = mysqli_connect($servername, $username, $password);

// 检测连接
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "php连接MySQL数据库成功";
?>

然后用浏览器访问网站

http://10.0.0.7/mysqli.php

image.png

7.搭建wordpress博客

官网:https://cn.wordpress.org/
wordpress开源博客压缩包链接:
https://pan.baidu.com/s/1KOI3FZV8VY22rxD731pp0g 提取码: 7naq

image.png

1.解压后讲wordpress下的所有内容移动到blog站点目录下

image

修改权限blog站点目录的属主属组为nginx

[root@web01 ~]#  chown  -R nginx.nginx /usr/share/nginx/html/blog/
[root@web01 ~]# ll -d /usr/share/nginx/html/blog/
drwxr-xr-x 5 nginx nginx 4096 Jun  6 21:03 /usr/share/nginx/html/blog/

8.浏览器输入网址http://10.0.0.7

image

填写用户名密码

image

输入信息

image

登录账户密码

image.png

9.登录后我们回到虚拟机查看数据库

show tables from wordpress;
已经创建好了数据库中的表

image

10.最后我们的博客就搭建好了,可以进入博客写文章了

博客的内容都放到了数据库里

image.png
image.png

我们可以在数据库中查看一下博客网站的内容

MariaDB [(none)]> select * from wordpress.wp_posts\G
\G让内容对齐

MariaDB [(none)]> select * from wordpress.wp_posts\G

11.鼠标右键复制图片地址然后查看图片地址

image.png

再去虚拟机中查看一下此路径下有什么

有重复的图片是因为自动给裁剪为各种尺寸的图片了

image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容