服务器准备日常操作
安装LNMP1.4
安装PHP缓存加速类扩展,降低VPS压力和提高WordPress速度
添加域名
安装ftp服务器
上面步骤新建数据库的时候选了n的话这里需要手动新建数据库
安装WordPress
进入域名此时显示wp安装界面
CDN加速
Https SSL
Vps配置优化
主题
邮件问题SMTP无法发出收到邮件的问题
备份搬家
    文件备份
    数据库备份
    WordPress迁移 / 搬家
    使用wordpress自带工具备份内容

    • -

      服务器准备日常操作

      此处可以先参考


      更新内核开启BBR

      wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

      更新系统

      apt-get update
      apt-get upgrade

      更改时区

      cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

      安装LNMP1.4

      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.5
      输入数据库密码
      安装InnoDB引擎
      装php7.1
      装Jemalloc内存优化
      安装完毕后访问ip会出现lnmp预置页面

      安装PHP缓存加速类扩展,降低VPS压力和提高WordPress速度

      cd /root/lnmp1.4

      安装Opcache

      ./addons.sh install opcache

      安装Memcached

      ./addons.sh install Memcached

      选2回车
      以上两个安装成功都会显示installed successfully, enjoy it字样

      添加域名

      lnmp vhost add

      输入域名(如youngzijian.cn)
      输入多个域名(如www.youngzijian.cn)
      是否开启日志记录,可开可不开
      数据库名保持一致,y(n的话后面手动创建数据库)
      添加ssl证书(此处和下文Https SSL有关)
      1是用自己的证书(我在cloudfare申请了ssl,新建个youngzijian.cn,pem和youngzijian.cn.key,把服务商给的ssl码分别填写进两个文件然后在此步骤的时候填写两个文件的绝对路径)
      2是用预置的服务商
      此步骤可跳过或准备好了在走1

      安装ftp服务器

      cd /root/lnmp1.4

      安装Ftp服务器

      ./pureftpd.sh
      lnmp ftp add

      输入用户名和密码和访问路径以/开头(如/root/)
      然后显示成功,这时需要给目录授权

      chown www:www -R /目录路径/

      想要修改授权路径

      lnmp ftp edit

      上面步骤新建数据库的时候选了n的话这里需要手动新建数据库

      mysql -u root -p

      输入密码以登陆
      创建

      CREATE DATABASE wordpress;

      创建用户

      CREATE USER wordpress@localhost;

      设置密码

      SET PASSWORD FOR wordpress@localhost=PASSWORD("your password");

      配置权限

      GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'your password';

      刷新权限配置

      FLUSH PRIVILEGES;

      推出mysql

      Quit

      安装WordPress

      进入域名目录

      cd /home/wwwroot/youngzijian.cn

      下载最新的wordpress包

      wget http://wordpress.org/latest.tar.gz

      (这里也可以打开https://cn.wordpress.org/下载然后传到vps)

      tar -xzvf latest.tar.gz

      将解压出来的wordpress文件夹内全部文件移动到当前的域名目录下

      mv wordpress/* .

      可以选择删掉空文件夹wordpress及源程序

      rm -rf wordpress
      rm -rf latest.tar.gz

      为避免因权限的问题导致安装出错,比如wp-config.php无法创建、需要提供FTP用户密码以及主题和插件不能更新等,建议赋予网站根目录文件的可写权限

      chmod -R 755 /home/wwwroot
      chown -R www /home/wwwroot

      (此处我没操作成功显示Operation not permitted所以直接下一步了)
      LNMP安装包默认禁用了 scandir 函数,这会导致WordPress后台看不到安装的主题,以及当前主题总显示 “有新的翻译可用” 的提醒。所以,需要开启此函数

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

      然后查找 scandir 函数,在disable行里,删掉即可然后重启lnmp

      lnmp restart

      进入域名此时显示wp安装界面

      数据库名wordpress(自己设置的)
      用户名wordpress(自己设置的)
      密码*
      数据库主机localhost(默认)
      表前缀wp_(默认)
      提交

      CDN加速

      这里我选择的是cloudflare的证书,提供了15年的免费ssl
      首先,去官网注册一个账号:https://www.cloudflare.com
      q
      点击网站右上角的Add Site,输入你的域名:
      使用免费版本
      修改DNS记录
      他会自动扫扫描如图
      w
      点添加纪录把有和没有www都加上,云朵是彩色的有箭头穿过的是加速了的
      (下方两个NS地址是加速服务器,一会验证会对比到)
      全部设置好后,去你的域名服务商那里修改域名服务器(Nameservers),指向cloudflare的域名服务器就可以了:
      e
      图中说的很清楚,比如我就是到腾讯云的域名管理直接点域名进入基本信息,把DNS改成lodflare提供的两个
      r
      等待DNS服务器生效最高可能需要24-48小时但是基本很快就能生效
      检查CDN是否生效
      修改完域名服务器后,稍等个20来分钟,检查是否成功将站点转移到Cloudflare全球节点上。
      1.刷新本地DNS
      cmd运行ipconfig /flushdns
      2.查看域名服务器
      cmd运行nslookup -> set types=ns -> 输入你的域名。
      3.ping自己的域名
      ping自己的域名,查看对应的ip地址
      t

      Https SSL

      https://zhangzifan.com/wordpress-ssl-link.html
      https://www.logcg.com/archives/961.html
      https://www.seoimo.com/lamp-ssl/
      在cloudflare点crypto
      y
      可以看到Cloudflare的免费https证书提供了4个层级,Off就是关闭https,Flexible就是http与https都可以访问,Full就是如果证书出了问题,会通过http请求继续访问,不会报错,而Full(strict)在https证书出问题的时候,因为全部时https连接,会直接报错。很明显,如果要全站做https,这里选择Full(strict)模式
      选择Create Certificate:
      u
      之后就可以看到安装证书的界面
      i
      这里rsa可以换成最新的技术,忘记名称了可以都查一下
      下面是两个域名,时间选15年好了
      之后你就可以得到一个origin certificate和一个private key
      在服务器上一个位置如root下新建文件

      vi youngzijian.cn.pem

      复制证书的那一串包括---部分然后保存

      Vi youngzijian.cn.key

      复制key的一大串保存
      Lnmp添加域名的时候已经指向过SSL了,这里单独操作一下

      lnmp ssl add

      务必确保输入的域名和网站路径不要出错
      输入域名(xxx.com)
      输入多域名(www.xxx.com)
      选1添加自己的证书和密钥
      填写要求的证书和key的绝对路径如/root/youngzijian.cn.pem
      等待执行完成会出现成功字样
      登录和后台强制开启 SSL,可以通过修改 wp-config.php 文件,直接在文件末尾加入以下两行代码:

      define('FORCE_SSL_LOGIN', true);
      define('FORCE_SSL_ADMIN', true);

      进入wp后台点设置,在两个url上加s并点页面下的保存
      a
      此时浏览器打开https://youngzijian.cn应该可以看到绿色得锁头并有https加密了
      不管有没有都继续操作下面的步骤
      进cloudflare的crypto点下面的两个开关
      s
      d
      至此,手机电脑应该打开页面都是绿色https了
      如果不行尝试给防火墙开443端口
      因为HTTPS访问要走443端口,所以,需要在防火墙里将其开启:

      iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

      https://www.ssllabs.com/ssltest/可以用来测试服务器的ssl分数,应该是A

      Vps配置优化

      优化php.ini配置

      vi /usr/local/php/etc/php.ini
      max_execution_time = 300
      memory_limit = 64M或128M

      (这两个应该是默认了不改即可)

添加Swap交换分区
此方法只适用于虚拟化技术为KVM和Xen的VPS,OpenVZ不支持添加Swap交换分区
暂略在参考网页中有

删除mysql-bin.0000*日志文件
LNMP一键安装包默认开启了日志记录,这样就会在 /usr/local/mysql/var/ 目录下面生成大量 mysql-bin.0000* 类似的文件,大小甚至达到几个G所以,我们需要做下调整,禁止保留日志记录以防止占用太多空间。
于是,编辑 /etc/my.cnf 文件:

vi /etc/my.cnf

找到以下两行代码,在前面添加 #,彻底禁用MySQL日志:

#log-bin=mysql-bin
#binlog_format=mixed

保存退出,重启一下MySQL

/etc/init.d/mysql restart

主题

解压资源

unzip mytheme.zip

WordPress的主题是放在wp-content下的themes下面的,locate一下theme文件夹的位置

mv /root/hestia /home/wwwroot/youngzijian.cn/wp-content/themes

这里使用filezilla直接用之前开的ftp服务器传会很好
这时在主题界面已经可以看到新主题了
赋予权限(不用也可以)

chown -R www-data:www-data /home/wwwroot/youngzijian.cn/wp-content/themes/hesita

邮件问题SMTP无法发出收到邮件的问题

这里必须记录一下,折腾好几天,hesita自带的pirate forms和其他邮件插件都无法发出收到邮件,从最初各种改配置文件到后来怀疑邮箱被墙,都快放弃了,我有意无意在淘宝上找了个卖家问了一下,他说服务器商多半封25端口,果真是这样,vultr服务器默认封25端口防止垃圾邮件,遂给客服发了工单申请解封内容如下
f
就这样解封了,后端什么都不用动,重启一下就ok了,如此大坑

备份搬家

(最简单可以用snapshot这里介绍常规方法)
主要涉及两部分:文件备份和数据库备份

文件备份

为了方便管理,我们先建立一个文件夹专门存放备份数据,比如 /home/backup/

mkdir /home/backup

压缩整站并移动到 /home/backup/ 文件夹下:

cd /home/wwwroot
tar -zcf youngzijian.cn-180425.tar.gz youngzijian.cn
mv youngzijian.cn-180425.tar.gz /home/backup

好了,整站已经打包备份完成。接下来,开始备份数据库

数据库备份

首先,打开 /home/backup/ 文件夹,我们需要将数据库备份在这里:

cd /home/backup
lnmp database list

输入 root 数据库密码即可查看当前数据库列表
这里我添加一点,需要新建一个空数据库用来导入
选择需要备份网站的对应数据库,以选定 wordpress 为例:

mysqldump -uroot -p wordpress > wordpress-180425.sql

再次输入数据库密码,即可完成数据库备份
可键入命令 ls 查看当前目录下已经存在了备份好的文件。
此时,可以用通过 FTP 下载到本地保存,也可上传到别的 VPS 上备份保存。

WordPress迁移 / 搬家

某些情况下,我们可能需要进行网站迁移,从一个VPS搬家到另一个VPS上。如果是没有开通 SSH 功能的虚拟主机,搬家起来可能会比较麻烦,来来回回的下载和上传。但是,在VPS上操作则相对简单的多。
前提,先在目标新vps上搭建环境lnmp,版本尽量和以前一致

mysql -uroot -p
create database wordpress;
quit

假设新VPS的IP为 8.8.8.8,SSH端口为 22,则打开备份目录,选择需要的文件备份和数据库备份上传:

cd /home/backup
ls
scp -P 22 youngzijian.cn-180425.tar.gz [email protected]:/home/backup
scp -P 22 wordpress-180425.sql [email protected]:/home/backup

回车后,按要求输入新的VPS登陆密码。
接下来,SSH登入新的VPS。然后解压或替换网站域名目录:

cp /home/backup/xxx.tar.gz /home/wwwroot
cd /home/wwwroot
tar -zxfxxx.tar.gz
rm -rfxxx.tar.gz

搬家后解压的文件可能存在权限的问题,建议赋予网站根目录文件的可写权限

chmod -R 755 /home/wwwroot/youngzijian.cn
chown -R www /home/wwwroot/youngzijian.cn

之后,导入数据库,仍以wordpress…为例

cd /home/backup
ls
mysql -uroot -p wordpress < wordresxx…...sql

这时已经ok如果ssl出问题则重新设置ssl

使用wordpress自带工具备份内容

这里又发现一个简易方法,但是个人认为不是很方便,丢失设置数据,需要手动重改
具体操作流程如下:
1.进入wordpress后台 -> 工具 -> 导出 -> 所有内容 -> 下载导出文件
z
2.手动记录网站的设置、友情链接、插件设置、主题小工具的设置。建议将各项以前修改过的记录记在一个txt文本中,便于恢复时快速查阅设置。具体工作量并不算太大,只要设置过一次的话,相信不是难事。
3.一切准备就绪后,将域名解析到新的服务器上,并在新的服务器上安装全新的wordpress系统,这里就不用我多说了吧,相信大家都会装=。=
接着将旧网站中的【/wp-content/plugins】、【/wp-content/themes 】、 【/wp-content/uploads】三个目录的文件复制到新wordpress系统的对应目录中。
4.登陆新的wordpress后台,打开 工具 -> 导入 这里会让大家选择导入的方式,我们这里只要选择wordpress即可,如图:
x
点击wordpress后,会提示需要安装插件。插件安装后,会进入导入界;选择之前导出的xml文件,将其上传到服务器中,如图:
c
上传完成后,会提示是否需要修改用户名、修改用户身份,是否需要下载附件。一般情况下,如无特殊需求直接点击提交即可。如图:
v
到这一步,之前备份的数据已经导入完成。
5.数据导入完成后,需要对系统默认产生的一些数据与设置进行清理,比如 “你好,世界”、“示例页面”等内容进行删除。重新调整 主题中的导航菜单,将其修改为之前正常的菜单结构。
6.进入 插件 -> 已安装的插件 将所有插件启用 。然后把之前通过txt文本记录下来的“网站的设置、友情链接、插件设置、主题小工具的设置”等内容进行相应的恢复设置。完成这一步,基本上网站就基本搬家完毕,网站已经可以正常访问。剩下的就是设置301跳转、上传robost文件等特殊操作了。

THE END
最后修改:2022 年 04 月 27 日 21 : 07
本文链接:https://www.j000e.com/linux/buildwordpress.html
版权声明:本文『Ubuntu16.04+LNMP搭建Woredpress』为『Joe』原创。著作权归作者所有。
转载说明:Ubuntu16.04+LNMP搭建Woredpress || Joe's Blog』转载许可类型见文末右下角标识。允许规范转载时,转载文章需注明原文出处及地址。
Last modification:April 27, 2022