zoukankan      html  css  js  c++  java
  • CentOS下搭建LNMP+WordPress+http2.0教程

    此文是本人CentOS下搭建WordPress的一些笔记,环境搭建时间:201804;将看过的几篇文章总结下来,形成一条龙长文、不用大家再找来找去。

    本文大概分为此几部分:

    一、基础命令更新;

    二、服务器加速(非必选)(10分钟);

    三、LNMP安装(30分钟);

    四、WordPress搭建(30分钟);

    五、开启httpshttps2.0(15分钟);

    六、http跳转https(10分钟);

    七、“噢,没有这个文件”;

     

    什么是lnmp?就是Linux、Nginx、MySql、PHP,装好这些就能为你的应用(WordPress)提供部署环境。这些在lnmp.org上面都能找到官方教程。当然还有lamp、lnmpa等,a代表Apache。如果我无写明具体路径的,说明命令是哪里都能执行。现在开始一条龙教程。

    一、基础命令更新:

    yum -y install wget lrzsz screen gcc glibc-devel iptables iptables-services

    screen:这个命令新手可能比较陌生,解释一下。screen可以在终端断开连接的情况下,不终止服务器的服务运行。lnmp需要安装十几至几十分钟,过程中很容易断网的。

    lrzsz:针对secureCRT客户端,实现轻便的文件上下传功能。

     

    二、服务器加速(非必选):

    其实就是serverSpeeder安装教程。如果已经安装过,就可以跳过。没装过的也可以先把WordPress装好,对网速觉得不满意再回来搞这部分。

    1、先更换内核:

    centos6: kernel-2.6.32-504.3.3.el6

    rpm -ivh http://xz.wn789.com/CentOSkernel/kernel-firmware-2.6.32-504.3.3.el6.noarch.rpm

    rpm -ivh http://xz.wn789.com/CentOSkernel/kernel-2.6.32-504.3.3.el6.x86_64.rpm --force

    centos7: kernel-3.10.0-229.1.2.el7.x86_64

    rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force

    rpm -ivh https://buildlogs.centos.org/c7.1511.00/kernel/20151119220809/3.10.0-327.el7.x86_64/kernel-3.10.0-327.el7.x86_64.rpm --force

    2、安装完成后,需要重启才能生效:

    shutdown -r now

    3、安装服务:

    cd  /home/down  (下载目录,根据你习惯而定)
    wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash
    chmod +x serverspeeder-all.sh
    ./serverspeeder-all.sh

     

    三、LNMP安装:

    完整教程请查看https://lnmp.org/install.html 

    不过既然写文章了,当然要总结一下:

    1、启动screen(必须):

    screen -S lnmp  (大写S)

    如果网络掉线,可以重新连接,再执行 screen -r lnmp 就会看到你的lnmp安装进程

    2、进入个人下载目录:

    cd  /home/down  (下载目录,根据你习惯而定)

    3、下载LNMP并启动安装脚本:

    wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp

    如果你的服务器内存有1G以上,你可以选择MYSQL5.6或以上、PHP7或以上。 反之,如果你必须安装MYSQL5.6或以上、PHP7或以上,你的服务器必须有1G以上内存。

    如无特别要求,一直按Enter键,直到开始安装即可。默认安装对机器要求只需128M~512M。

    4、安装完成:

    如果看到这个界面,表示安装成功,按ctrl+c退出此界面。

     

    四、WordPress搭建 

    这个环节比较多命令,修改文件比较多,首次操作需要半小时左右。先简单说下,这里要做的事是创建Nginx--WordPress--MySQL的整条链接。

    1、创建mysql连接:

    登录mysql:

    mysql -u root -p

    >输入密码

    输入的时候密码不会显示,这个密码就是你安装lnmp时候设置的密码。如果你是一路enter(回车)下来,默认就是root/root。

    创建数据库:

    CREATE DATABASE wordpress_db;

    创建MySQL用户:

    CREATE USER wordpress_user@localhost;

    设置密码:

    SET PASSWORD FOR wordpress_user@localhost=PASSWORD("password");

    配置权限:

    GRANT ALL PRIVILEGES ON wordpress_db.* TO wordpress_user@localhost IDENTIFIED BY 'password';

    刷新权限

    FLUSH PRIVILEGES;

    记下你创建的WordPress数据库名,数据库用户,用户密码,后面用于写入到WordPress的conf文件中。WordPress就能通过配置文件连接上mysql数据库。(我知道你们十有八九都是写wordpresswordpresswordpress,或者直接复制我的命令改也不改,不是不行,只是你们要确定mysql远程连接是关闭,具体方法这里不展开,不然小心数据库被黑)

     2.下载WordPress

    官方地址是:https://cn.wordpress.org

    进入个人下载目录:

    cd /home/down

    下载WordPress压缩包:

    wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

    解压:

    tar -zxvf wordpress-4.9.4-zh_CN.tar.gz

    此时解压出来的文件夹只是我们用来备份用的。原则上不改动里面的内容。

    然后将WordPress复制到运行目录,这里才是以后修改文件的地方。当然你也可以复制到别的路径中:

    cp -r ./wordpress/* /var/www/

    默认配置文件只给了模板,我们要把模板复制出来:

    cp /var/www/wp-config-sample.php /var/www/wp-config.php

    修改目录权限

    chown -R www:www /var/www

    设置wp-config.php文件(重要

    vi /var/www/wp-config.php

    按照如下修改: 

    // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
    /** WordPress数据库的名称 */
    define('DB_NAME', 'wordpress_db');

    /** MySQL数据库用户名 */
    define('DB_USER', 'wordpress_user');

    /** MySQL数据库密码 */
    define('DB_PASSWORD', 'password');

    /** MySQL主机 */
    define('DB_HOST', 'localhost');

     约在20行左右,将刚才记下的WordPress数据库名,数据库用户,用户密码往这里填。然后记下这个/var/www,下一步需要用到。

    (vi怎么用没必要解释了吧。。。)

    3.配置Nginx

    lnmp搭建的Nginx主目录位于/usr/local/nginx中,配置文件在其下conf/文件夹中

    vi /usr/local/nginx/conf/nginx.conf

    按照如下修改:

    server
    {
    #需要监听的端口
    listen 80 default_server;

    #这里输入服务器的域名或者ip
    #server_name 192.168.1.100;
    server_name domain.com;

    index index.html index.htm index.php;

    #这里输入WordPress主目录
    root /var/www;

    ……

    }

     

    约60行左右,配置好监听端口(80)、服务器地址(ip或域名)、WordPress主目录(/var/www)。

    重启Nginx:

    service nginx restart

    几秒后就可以通过 ip/wp-admin 或者 domain.com/wp-admin 访问你的WordPress初始化页面。

     

    至此,WordPress搭建完成,但手工部署的WordPress有几个大坑。大家可以先玩两天,然后再回来修改几个坑。

    ------从这部分开始属于应该属于进阶技能,太基础的命令不会说。直奔重点和踩过的坑了-----

    五、使用Let's Encrypt开启httpshttps2.0

     

    Let's Encrypt 是一个免费的SSL机构,acme.sh 是一款用于签发 Let's Encrypt 证书的脚本。

    项目地址:https://github.com/nanqinlang-script/acme

    具体教程:https://sometimesnaive.org/article/61

    获取脚本:

    wget https://raw.githubusercontent.com/nanqinlang-script/acme/master/acme_2.0.sh

    运行:

    bash acme_2.0.sh

    使用说明

    ①输入你的域名(如yourdomain.com)

    ②选择要生成证书的类型。输入数字 0(生成 RSA 类型) 或 1(生成 ECC 类型)。若未选择则默认生成 RSA 类型

    ③用 DNS 方式验证域名所有权:添加脚本中显示的 绿色字体的 TXT 记录,添加完成后稍等下(等个五分钟应该够了),回车继续

    ④SSL 证书文件生成至 /home/your-domain_rsa 或 /home/your-domain_ecc 路径下

    执行后会生成如下文件:

    ca.cer:中间证书

    yourdomain.key:证书密钥

    yourdomain.cer:站点证书

    fullchain.cer:站点证书+中间证书

    坑1:运行脚本后会生成一串txt,暂停在此。然后去你的域名管理商那里,按照脚本提示添加记录。最好严格按照这个步骤做,我第一次没弄好,后面出了一些莫名其妙的问题,重新做多几次会提示你申请次数过多(貌似限制5、6次/3小时)。

    坑2:cer、key文件我是确定拉了下来,但 /home/your-domain_rsa 这个文件夹生成失败,解决方法:删除 acme_2.0.sh 最后两行 rm -rf 命令,然后自己建立 /home/your-domain_rsa,自己把cer、key文件拷进去(前提是你很确定生成的cer、key文件没问题)。

    坑3:用这个脚本生成的证书是cer文件,用其他方法可能生成crt文件。如果你在其他教程看到crt,其实用法还是一样,两个文件相当于一个xls、一个xlsx。

    nginx.conf配置:(加上后面几行ssl开头的语句,加在access_log前后、server节点之内)

    server
    {
    listen 443 ssl http2;

    server_name yourdomain.com;

    ssl on;
    ssl_certificate /home/yourdomain.com_rsa/yourdomain.com.cer;
    ssl_certificate_key /home/yourdomain.com_rsa/yourdomain.com.key;

    access_log /home/wwwlogs/access.log;
    }

    六、http跳转https

     这个不难,一开始没做过会以为是在域名服务商设置跳转的,其实还是用Nginx做内部重定向而已。

    server
    {
    listen 80 default_server;
    server_name yourdomain.com;
    rewrite ^(.*)$ https://yourdomain.com permanent;
    }

    server
    {
    listen 443 ssl http2;

    server_name yourdomain.com;

    }

    七、“噢,没有这个文件”

     用这一套流程下来的WordPress默认禁止文件夹扫描权限。主要体现在两个方面:

    1、WordPress后台--外观--编辑,提示“噢,没有这个文件”

     2、没有下载过的历史主题

    修复方法:

    转自:http://www.heminjie.com/wordpress/2149.html

    1、用ssh登陆服务器,找到php.ini(lnmp默认的php配置文件在/usr/local/php/etc/目录下)

    2、用vi命令编辑php.ini

    vi /usr/local/php/etc/php.ini

    3、查找scandir,大概在385行左右,找到后删除scandir,(注意后面的逗号也要一起删除哦~)最后wq!保存。

    4、重启php或者整个lnmp服务使配置生效,再刷新下wp后台主题编辑页面,已经OK了~

     php重启命令:service php-fpm restart

    lnmp重启命令:lnmp restart

    暂时写完,后续有新发现再补充……

  • 相关阅读:
    POJ 1325 Machine Schedule(待整理)
    URAL 1109 Conference
    结构体排序初始化最傻最傻的错误
    Radar Installation
    关于Eclipse中插件的安装和文件导出
    贪心算法概述
    今年暑假不AC(水题)
    100197C
    100722C
    树状数组
  • 原文地址:https://www.cnblogs.com/medsonk/p/8888558.html
Copyright © 2011-2022 走看看