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

本文大概分为此几部分:

一、基础命令更新;

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

三、LNMP安装(30分钟);

四、WordPress搭建(30分钟);

五、开启https\https2.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数据库。(我知道你们十有八九都是写wordpress\wordpress\wordpress,或者直接复制我的命令改也不改,不是不行,只是你们要确定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 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开启https\https2.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

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

CentOS下搭建LNMP+WordPress+http2.0教程的更多相关文章

  1. Centos下安装配置WordPress与nginx教程

    感谢大佬:https://www.howtoing.com/how-to-install-wordpress-with-nginx-on-centos-6-2 WordPress是一个免费和开源网站和 ...

  2. CentOS下搭建LAMP环境详解

    前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发. •LAMP: Linux + Apache + PHP + Mysql. •系统: CentOS ...

  3. Centos下搭建 nginx+uwsgi+python

    python做web应用最麻烦的还是配置服务器了,此话不假,光中间件就有好几种选择,fastcgi.wsgi.uwsgi,难 免让人眼花缭乱. 而听说uwsgi的效率是fastcgi和wsgi的10倍 ...

  4. Ubuntu下搭建Hyperledger Fabric v1.0环境

      多次尝试才正常启动了Fabric,如遇到各种莫名错误,请参考如下一步步严格安装,特别用户权限需要注意. 一.安装Ubuntu16 虚拟机或双系统,虚拟机有VirtualBox或者VMware,Ub ...

  5. 在CentOS下搭建Android 开发环境

    在CentOS下搭建Android 开发环境 目录 1.环境搭建 1.1.JDK安装 1.2.Eclipse安装 1.3.ADT安装 1.4.Android SDK安装 1.5.Android NDK ...

  6. centos下搭建python双版本环境

    目录 centos下搭建python双版本环境 一.安装python3 1.理清自带python位置 2.更新用于下载编译python3的相关包 3.安装pip 4.用pip安装wget 5.用wge ...

  7. Centos下搭建LAMP+PHP

    Centos下搭建LAMP+PHP LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写: Linux,操作系统 Apache,网页服务器 MariaDB或MySQL,数据库管 ...

  8. Centos下搭建DNS域名解析服务器

    Centos下搭建DNS域名解析服务器 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域 ...

  9. CentOS下搭建wordpress全流程

    突然,想搭建一个个人博客,所以就在网上搜了搜相关内容,好多人推荐wordpress,那么就打算光荣地采用wordpress了.以下是安装过程中遇到的所有的坑,现在总结如下,希望给安装wordpress ...

随机推荐

  1. Python 使用 UTF-8 编码(转)

    Python 使用 UTF-8 编码(转) 原文出处:http://blog.chenlb.com/2010/01/python-use-utf-8.html 一般我喜欢用 utf-8 编码,在 py ...

  2. Vue基础及脚手架环境搭建

    From:http://www.jianshu.com/p/dc5057e7ad0d 一.vue基础 “Vue2.0”跟俺一起全面入坑 01 “Vue2.0”跟俺一起全面入坑 02 “Vue2.0”跟 ...

  3. 在Ubuntu下安装mongodb

    一. 在Ubuntu下最傻瓜的步骤(以下都在root用户下进行操作): 1.运行"apt-get install mongo" 如果遇到找不到安装包的话运行"apt-ge ...

  4. Vmware虚拟机三种网络模式详解(转)

    原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 我怕链 ...

  5. Brackets - 前端编辑器推荐

    Brackets是一款基于web(html+css+js)开发的web前端编辑器.它有许多普通编辑器难以实现的功能,是web前端开发者的神器. 戳我去下载 其功能如下: 1.快速编辑 将光标定在颜色上 ...

  6. Ubuntu下键盘输入错乱问题,输入双引号输出的是@符号,输入#号输出的是未知语言的字符

    装完搜狗后,键盘开始出现混乱,切换到英文输入法,输入双引号输出的是@符号,输入#号输出的是未知语言的字符. 网上有的说在 system - keyboard - Input Source 下看看是否是 ...

  7. sdut Mountain Subsequences 2013年山东省第四届ACM大学生程序设计竞赛

    Mountain Subsequences 题目描述 Coco is a beautiful ACMer girl living in a very beautiful mountain. There ...

  8. CCNA2.0笔记_路由分类

    直连路由:当在路由器上配置了接口的IP地址,并且接口状态为up的时候,路由表中就出现直连路由项 静态路由:静态路由是由管理员手工配置的,是单向的. 默认路由:当路由器在路由表中找不到目标网络的路由条目 ...

  9. [转]c++ 为什么要将基类的析构函数声明为Virtual?

    http://www.cnblogs.com/alephsoul-alephsoul/archive/2012/10/12/2721410.html

  10. Jquery学习笔记(7)--京东导航菜单

    主要是几个模块的浮动和定位不好处理,另外还缺少右侧导航,及幻灯片. <!DOCTYPE html> <html lang="en"> <head> ...