centos7 yum搭建lnmp环境及配置wordpress超详细教程

时间:2023-03-10 01:42:11
centos7 yum搭建lnmp环境及配置wordpress超详细教程

yum安装lnmp环境是最方便,最快捷的一种方法。源码编译安装需要花费大量的人类时间,当然源码编译可以个性化配置一些其它功能。目前来说,yum安装基本满足我们搭建web服务器的需求。

本文是我根据近期学习的内容加上我自己的理解,整理出来的从yum搭建lnmp环境到网站配置的超详细的教程。如有错误的地方请指出,不胜感激!

lnmp环境分为4部分,linux、nginx、mysql和php。

软件安装

linux系统

采用vm虚拟机最小化安装centos7.6,目前最新的centos系统。

nginx安装

配置nginx源

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装nginx-1.16版本

yum install -y nginx

确认是否安装:

centos7 yum搭建lnmp环境及配置wordpress超详细教程

yum install nginx,会默认创建nginx:nginx,组和账户。

文件默认位置:

  二进制文件在/usr/sbin/nginx
  配置文件夹在/etc/nginx/
  log文件夹在/var/log/nginx
yum安装会自动创建/usr/lib/systemd/system/nginx.service,可以用systemctl 启动停止。

mysql安装

配置mysql源

rpm -ivh  http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

安装mysql5.7

yum -y install mysql-community-server

确认是否安装:

centos7 yum搭建lnmp环境及配置wordpress超详细教程

php安装

配置php源

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

安装php7.0

yum install -y php70w-common php70w-fpm php70w-opcache php70w-gd php70w-mysqlnd php70w-mbstring php70w-pecl-redis php70w-pecl-memcached php70w-devel 

上面该命令即可安装拓展:

php-api, php-bz2, php-calendar, php-ctype, php-curl, php-date, php-exif, php-fileinfo, php-filter, php-ftp, php-gettext, php-gmp, php-hash, php-iconv, php-json, php-libxml, php-openssl, php-pcre, php-pecl-Fileinfo, php-pecl-phar, php-pecl-zip, php-reflection, php-session, php-shmop, php-simplexml, php-sockets, php-spl, php-tokenizer, php-zend-abi, php-zip, php-zlib

如果要加装其它php拓展(如xml),直接”yum install php70w-xml”即可,非常简单

确认是否安装:

centos7 yum搭建lnmp环境及配置wordpress超详细教程
查看安装的php拓展

 [root@localhost ~]# php -m
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
json
libxml
mbstring
memcached
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib [Zend Modules]
Zend OPcache

至此,nginx、mysql、php安装完成。下一步,配置。

软件配置及wordpress安装

假设我们要搭建一个博客网站,wordpress。

nginx配置

首先看一下nginx配置文件夹

[root@localhost ~]# tree /etc/nginx
/etc/nginx
├── conf.d
│   └── default.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── modules -> ../../usr/lib64/nginx/modules
├── nginx.conf
├── scgi_params
├── uwsgi_params
└── win-utf

再看一下nginx配置文件nginx.conf,其包含了conf.d文件夹内所有后缀是conf的配置文件。其实conf.d文件夹中以conf结尾的文件即为网站的配置文件。

centos7 yum搭建lnmp环境及配置wordpress超详细教程

查看conf.d/default.conf默认配置文件。

centos7 yum搭建lnmp环境及配置wordpress超详细教程

每一个网站目录都需要一个”server“来引导。server_name为要访问的网址(即域名,后面建立wordpress配置会详细讲解),root即为网站的默认目录,index为索引。

下面我们来重建一个客户端浏览器与web服务器交互的过程,来理解这些配置的作用。

浏览器里面输入“localhost”(即server_name,可以用ip地址代替),浏览器会默认访问其80端口,恰好web服务器nginx监听的就是80端口(配置中的listen   80),这时候nginx会找到网站的默认目录root,即/usr/share/nginx/html,然后寻找该目录下的index索引文件,即index.html、index.htm,我们来看一下/usr/share/nginx/html文件夹和index.html文件的内容:

centos7 yum搭建lnmp环境及配置wordpress超详细教程

centos7 yum搭建lnmp环境及配置wordpress超详细教程

index.html是一个html语言编写的文件,可以在网页上显示出来,启动nginx, systemctl start nginx ,访问localhost(或者ip),即可显示出来index.html文件中的内容

centos7 yum搭建lnmp环境及配置wordpress超详细教程

ok,整个过程再捋一下:

客户端浏览器访问web服务器80端口,nginx监听到80端口有访问,根据访问的地址(域名)找到网站的默认目录(上文是/usr/share/nginx/html),然后访问index定义的索引文件index.html,最后nginx将index.html文件的内容返回给浏览器,显示出来。

以上就是一个简单的web服务器工作的过程,如果不嫌麻烦,完全可以编写一个个的html文件来当做个人博客,访问按文件名访问即可。

php配置

但单纯地访问静态的html网页实现的功能太少了,所以,当当当当,php出场了!用php语言来编写网页。nginx收到用户请求后,访问网站所在目录,看到其索引文件是php结尾的,index.php,然后将其转交给php处理,php处理后返回给nginx,nginx再返回给用户。

从wordpress官网上下载源码,然后解压,查看其文件:

[root@localhost ~]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz
[root@localhost ~]# tar xf latest-zh_CN.tar.gz
[root@localhost ~]# ls wordpress/
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

即该网站源码的索引是index.php。

第一节安装过程我们单独安装了nginx与php,它们根本就不认识,怎么交互?所以需要将nginx与php程序关联起来,即改动default.conf文件中的有关fastcgi的项,把注释去掉,然后把 /script 改成 $document_root ,即

centos7 yum搭建lnmp环境及配置wordpress超详细教程

网站源码,即上文的wordpress文件夹,放在任何位置都可以,但必须配置好权限,让nginx所在的用户组有读写权限。为了方便,我们将其放在/usr/share/html/目录下,并且更改其用户为nginx

[root@localhost ~]# mv wordpress/ /usr/share/nginx/html/
[root@localhost ~]# cd /usr/share/nginx/html
[root@localhost html]# chown -R nginx:nginx wordpress/
[root@localhost html]# ll
total
-rw-r--r--. root root Aug 50x.html
-rw-r--r--. root root Aug index.html
drwxr-xr-x. nginx nginx Jul : wordpress

接下来配置网站的nginx配置文件。假设我们注册的网站域名为domain.com,进入/etc/nginx/conf.d/文件夹,新建domain.com.conf文件(名称随意,但后缀必须为conf,为了方便区分使用“域名”+“.conf"),修改内容如下(可以直接复制default.conf,然后修改):

centos7 yum搭建lnmp环境及配置wordpress超详细教程

注意几个要修改的地方,server_name改为你注册的域名(域名要解析到服务器的ip,一台vps服务器上可以有多个网站,不同网站就是用server_name来区分的),root即网站根目录,定位到上文我们复制到的地址,index里添加index.php(wordpress目录里只有index.php,没有index.html),还有下方的nginx与fastcgi关联。

至此,网站的配置文件完成。下一步,配置mysql。

mysql配置

为什么需要数据库?因为数据太多,查找、修改等都是麻烦事,所以我们需要一个管理数据的软件,即数据库。mysql是一个关系型数据库管理系统。

我们今天的主角wordpress同样也是需要数据库的,接下来我们用mysql创建一个数据库。创建完,我们肯定需要访问,访问的话需要用户权限,我们还需要创建一个用户(尽量不要用mysql的root用户去访问,root的权限太大了)。

首先启动mysql,

systemctl start mysqld

使用yum安装完mysql之后,第一次会生成一个随机密码,在/var/log/mysqld.log中,可以用该密码登入

[root@localhost ~]# grep password /var/log/mysqld.log
--02T19::.679467Z [Note] A temporary password is generated for root@localhost: Fu0fT!4b,4,b

然后登录mysql,输入上方的密码(密码不会显示出来),回车

[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7. Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

修改root密码:

mysql> set password for root@localhost = password('Mysql./root123');
Query OK, rows affected, warning (0.00 sec)

创建用户wordpress_user:

mysql> CREATE USER 'wordpress_user'@'host' IDENTIFIED BY 'Mysql./user123';
Query OK, rows affected (0.00 sec)

创建数据库wordpress,并且将其所有权赋给用户wordpress_user:

mysql> create database wordpress;
Query OK, row affected (0.00 sec) mysql> grant all privileges on wordpress.* to "wordpress_user"@"localhost" identified by "Mysql./user123";
Query OK, rows affected, warning (0.00 sec) mysql> flush privileges;
Query OK, rows affected (0.00 sec)

重新启动nginx、mysql、php-fpm

systemctl restart nginx
systemctl restart mysqld
systemctl restart php-fpm

为避免出现其它问题,先关闭防火墙和selinux,后续再进行配置:

systemctl stop firewalld
setenforce

在浏览器中输入 domain.com (这是域名domain.com要换成你自己的域名,和上方conf配置中一致),即出现wordpress初始化界面:

centos7 yum搭建lnmp环境及配置wordpress超详细教程

点击“现在就开始!”,填入上面mysql创建的用户名和数据库:

centos7 yum搭建lnmp环境及配置wordpress超详细教程

点击“提交”,

centos7 yum搭建lnmp环境及配置wordpress超详细教程

报错是因为,之前我们设置网站文件夹wordpress的用户组为 nginx:nginx ,而yum安装php的默认用户组为 apache:apache ,查看php-fpm配置文件 vim /etc/php-fpm.d/ww.conf ,可以看到:

centos7 yum搭建lnmp环境及配置wordpress超详细教程

将apache改为nginx,保存退出,重新启动php-fpm, systemctl restart php-fpm ,即可正常进入下一步,

centos7 yum搭建lnmp环境及配置wordpress超详细教程

输入“站点标题”、“用户名”、“密码”、“电子邮件”,即可安装。安装完成,即可登录后台管理界面:

centos7 yum搭建lnmp环境及配置wordpress超详细教程

至此,mysql配置完成,wordpress博客网站配置完成!

总结:

使用yum安装nginx、mysql、php,方便快捷,实测在1c/1g虚拟机上安装只需5分钟!

单独安装完nginx、php软件后,需要配置nginx关联php。

配置wordpress网站,网站源码(即根目录)可以放置在任何位置,只要在nginx的conf配置文件里定位到就可以。nginx的主要配置文件是 nginx.conf ,它会包含(include)conf.d文件夹下面所有后缀是”.conf"的配置文件,本质上是包含描述网站具体配置的server { } 代码。

目前所有web服务器lnmp,lamp等,其安装方式,源码编译安装、yum安装、一键脚本安装、面板安装等,具体实现原理即上面讲述的两点:

  1、配置nginx(或lamp)关联php;

  2、配置网站的conf配置文件。