此文是本人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. (一)Lucene——基本概念介绍

    1. Lucene是什么 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakart ...

  2. nginx location静态文件配置

    进入nginx安装目录的conf目录下,修改nginx.conf文件,在一个server{}中添加 一个location 部分配置代码如下 root@ubuntu:/usr/local/nginx/c ...

  3. PHP 导出 CSV 文件用 Excel 打开出现中文乱码

    本篇文章由:http://xinpure.com/php-export-csv-file-opened-by-excel-appear-garbled/ 乱码情况 写了一段导出 CSV 文件的代码,可 ...

  4. Azure Storage Blob 属性设置

    概述 在使用SDK做Blob对象属性的获取或设置时,如果只是直接使用get或set方法,是无法成功获取或设置blob对象的属性.主要是因为在获取对象时,对象的属性默认并未被填充到对象,这就需要执行额外 ...

  5. jquery easyUi columns日期格式化

    jquery easyUi  columns日期格式化 方法一 Date.prototype.format = function (format) { var o = { "M+" ...

  6. 跨浏览器的CORS

    function createCORSRequest(method, url){ var xhr = new XMLHttpRequest(); if("withCredentials&qu ...

  7. git团队协作流程

    创建项目,在github上增加一个repository,在要提交的工程目录下打开git bash,执行git init 命令,用于初始化,可使用git status 查看git状态,然后使用git a ...

  8. ios 微信开发

    首先依照对应的文档获得对应的key - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NS ...

  9. Current thread must be set to single thread apartment (STA) mode before OLE,当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。

    Add the STAThreadAttribute attribute on the Main method. This attribute is required if your program ...

  10. mysql init_connect

    init_connect 服务器为每个连接的客户端执行的字符串.字符串由一个或多个SQL语句组成.要想指定多个语句,用分号间隔开.例如,每个客户端开始时默认启用autocommit模式.没有全局服务器 ...