zoukankan      html  css  js  c++  java
  • 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 

    确认是否安装:

    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 

    确认是否安装:

    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”即可,非常简单

    确认是否安装:


    查看安装的php拓展

     1 [root@localhost ~]# php -m
     2 [PHP Modules]
     3 bz2
     4 calendar
     5 Core
     6 ctype
     7 curl
     8 date
     9 dom
    10 exif
    11 fileinfo
    12 filter
    13 ftp
    14 gd
    15 gettext
    16 gmp
    17 hash
    18 iconv
    19 igbinary
    20 json
    21 libxml
    22 mbstring
    23 memcached
    24 mysqli
    25 mysqlnd
    26 openssl
    27 pcntl
    28 pcre
    29 PDO
    30 pdo_mysql
    31 pdo_sqlite
    32 Phar
    33 posix
    34 readline
    35 redis
    36 Reflection
    37 session
    38 shmop
    39 SimpleXML
    40 sockets
    41 SPL
    42 sqlite3
    43 standard
    44 sysvmsg
    45 sysvsem
    46 sysvshm
    47 tokenizer
    48 wddx
    49 xml
    50 xmlreader
    51 xmlwriter
    52 xsl
    53 Zend OPcache
    54 zip
    55 zlib
    56 
    57 [Zend Modules]
    58 Zend OPcache
    View Code

    至此,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结尾的文件即为网站的配置文件。

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

    每一个网站目录都需要一个”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文件的内容:

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

    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 ,即

     

    网站源码,即上文的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 12
    -rw-r--r--. 1 root  root   494 Aug 13  2019 50x.html
    -rw-r--r--. 1 root  root   612 Aug 13  2019 index.html
    drwxr-xr-x. 5 nginx nginx 4096 Jul 29 10:00 wordpress

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

    注意几个要修改的地方,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 
    2019-08-02T19:27:52.679467Z 1 [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 2 Server version: 5.7.27 Copyright (c) 2000, 2019, 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, 0 rows affected, 1 warning (0.00 sec)

    创建用户wordpress_user:

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

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

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

    重新启动nginx、mysql、php-fpm

    systemctl restart nginx    
    systemctl restart mysqld
    systemctl restart php-fpm

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

    systemctl stop firewalld
    setenforce 0

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

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

    点击“提交”,

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

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

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

    至此,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配置文件。

  • 相关阅读:
    mysql分表那些事
    java根据经纬度计算距离
    java Calendar类的使用
    mysql中DATETIME、DATE和TIMESTAMP的区别
    java设计模式
    dubbo教程
    Java算法
    随机产生字符串
    js根据类名获取元素的底层原理
    元素样式的获取
  • 原文地址:https://www.cnblogs.com/focus-g/p/11371118.html
Copyright © 2011-2022 走看看