讲真,曾经我特别佩服使用服务器(比如VPS)搭建WordPress博客或网站的站长们。
因为,我觉得仅仅在漆黑的屏幕上敲几行代码就能把一个网站玩的风生水起很了不得,感觉有点黑客大神的气派。而那时我才刚刚开始研究独立博客和虚拟主机,还是个只知道使用简单办公软件的上班族。
后来,慢慢的发现许多事情原本并不难,是自己想复杂了。
比如在VPS上搭建WordPress博客,其实根本就不需要你精通什么编程,懂什么系统,你只要掌握一些常用的Linux命令就能DIY。因为在互联网时代,很多东西都是现成的,你只要会搜索,会整合,会学习使用基本就万事OK了。
当然,如果你是个什么都懂的IT男,想必更是极好的。
简言之,这篇文章主要记录了博主放弃虚拟主机后,如何一步步在VPS上安装CentOS7/6系统和LAMP环境进而搭建WordPress博客的。
因为打算当做教程来写,所以会尽量写的详细一点。以下是文章目录,不想听博主唠叨的话可自行略过前面的介绍部分。
#0为什么要用WordPress建站
WordPress是一种使用PHP语言和MySQL数据库开发的个人博客系统,其稳定可靠,易于使用,且是免费开源的。而最让我看重的,是它支持一大波优秀的插件和模板,比如SEO优化、静态缓存和数据备份等。
具体可参看百度文库相关介绍:http://baike.baidu.com/item/WordPress
#1WordPress建站步骤 / 流程
博主在这里简单介绍下WordPress建站的基本步骤和流程,好让大家有个感性的认识:
- 注册一个不错的/你喜欢的域名(首选.com,无论何时)
- 选择一款服务器(比如VPS主机)
- 在VPS上搭建LAMP/LNMP建站环境
- 搭建WordPress博客
- VPS和WordPress相关的优化加速、数据备份以及运营防护等
#2
在回答这个问题之前,让我们先来弄清楚虚拟主机和VPS的区别。
#2.1
虚拟主机(Virtual Hosting)又叫共享主机(Shared Hosting),是使用特殊的软硬件技术,把一台真实的主机分割成多个的逻辑存储单元,每个单元都没有物理实体,但是每一个物理单元都能像真实的物理主机一样在网络上工作,具有共享IP地址(或独立IP地址)以及必要的互联网功能。
通俗一点讲,就是一个出租屋里分了好多床位,租客们共用水、电、卫生间等生活设施。
- 优点:便宜、便捷,自带被褥,拎包即住
- 缺点:居住性能差
#2.2什么是VPS
VPS(Virtual Private Server)即虚拟专用服务器,就是利用虚拟化技术(如KVM、Xen、OpenVZ等)把一台真实的服务器分割成若干虚拟的服务器,具有独立的操作系统及开关机等功能,能自行搭建和配置特定的服务。
通俗的说,就如同买了小区里的一栋楼,空间及设施都是自己的,想怎么装就怎么装。
- 优点:爱咋用咋用,居住性能好
- 缺点:价格较高,需要懂点技术
由上可以看出,究竟是选用虚拟主机还是VPS建站主要看你的使用目的和性能要求。
一般来说,如果你对服务器配置和维护并不太懂,且个人博客的访问量不大(比如日均2000PV以下),虚拟主机(带独立IP最好)是首选,价格通常年付二三百RMB的样子。
但是,如果你和博主一样喜欢折腾,喜欢追求更高性能,同时也想学习一点Linux相关知识,那么可以考虑使用VPS。
实际上有些性能很不错的国外VPS也很便宜,一般月付5美元甚至更少即可。这样算下来,其实并不比虚拟主机贵到哪去。
比如,博主选用的是BandWagonHost/搬瓦工Hostwinds最便宜的一款VPS,美国西海岸洛杉矶西雅图机房,速度大家可以感受下。
至于博客搬家的原因,以及Hostwinds具体购买及WordPress安装过程详见下文。
#3注册域名
考虑到性价比(免费隐私保护)和支付便利(支持支付宝),博主目前在用以下两个域名注册商,在这也推荐给大家。
- NameSilo:https://www.namesilo.com/
- 阿里云(万网):https://wanwang.aliyun.com/domain/
2022年09月01日起,阿里云域名涨价了,.COM 续费 ¥79 每年!(感觉是时候转出去了)
反观NameSilo,价格一直比较稳定,甚至不定期赠送优惠,注册和转移时还能再省点。
#4如何选购高性价比的VPS
坦白说,虽然网上有不少推荐和介绍,比如知乎回答和一些评测博客,但如何选择一款便宜好用且性能不错的VPS还着实让我头疼了一阵。
为什么呢?
网上有些推荐的文章仅仅只是为了推荐而推荐,拿来主义,人云亦云,缺乏实际的使用体验。这就可能导致推荐者对VPS整体的稳定性缺乏深入的评测,而稳定可靠恰恰是一个网站长期发展的重要保障。
尽管128MB甚至更低内存的VPS也可以搭建WordPress建站,但博主并不推荐这样做。因为我们的目的是要做一个省时省力又能长期稳定运行的网站,而不是炫耀VPS优化技术。
于是,在兼顾价格(5美元以下)、速度(ping值200左右)以及稳定性(在线率99.95以上)三个前提下,最终筛选出四个性价比较高的国外VPS:Hostwinds、Vultr、BandwagonHost(搬瓦工)和DigitalOcean(DO)。
但是到底哪个最适合自己呢?感觉还是一头雾水。
纸上得来终觉浅,绝知此事要躬行。于是,就把这几个VPS全部试用了一遍,并通过我能用得到的各种测试,最终选定了Hostwinds(西雅图机房)。
#4.1搬瓦工VPS和VULTR哪个好
②至于搬家的原因,无非两点:价格和性能。搬瓦工目前最便宜的一款年付$49.99,鸡场太多,太容易被墙(需付$8.79更换IP);VULTR能用的基本也要月付$5起步,最大的问题也是鸡场太多,IP被墙的更严重,严重到博主曾开了大半天也没开出一个能用的IP;
③Hostwinds月付$4.99,1GB内存,1TB流量,博主实测的速度比搬瓦工和VULTR好得多(大概是因为国人还没有扎堆),自带 SNAPSHOT 快照备份,可以免费更换被墙IP(方法见下文)。
因此,使用VPS建站,博主建议优先选择Hostwinds西雅图机房。目前正搞活动,首单优惠10%!
#4.2如何购买Hostwinds-VPS
Hostwinds销售的VPS主要分两类:托管型和非托管型。
托管型就是由Hostwinds提供全程运维服务,自己当甩手掌柜。优点是省事省力,缺点是太费钱,真的不划算。
非托管型就是买个裸机VPS,所有程序自己搭建,客服只提供有限的技术支持。优点是自己可以随意DIY,可玩性较强,更重要的是省钱。缺点是绝大部分工作都要自己动手完成。
当然,这里我们要选择非托管型的LINUX系统的VPS(WINDOWS系统的太贵不划算)。
首先打开页面 Unmanaged Linux VPS Hosting ,选择 1GB - $4.99 这款:

然后,注册账户。如果打算用PayPal支付的话,邮箱最好和PayPal账户邮箱一致:

接下来,填写一些个人信息。请尽量如实填写,尤其地址要和本机IP所在地相同。比如你在北京,IP显示地在北京,就不能填地址在上海。所以,请确保关闭了小飞机/代理。

然后,一些必要的选择。确认是非托管型的(Unmanaged),付款周期(年付/季付/月付),机房(西雅图/SEATTLE),系统(CentOS7):

选择是否需要云备份(一般不需要,因为后台自带SnapShot快照备份):

选择付款方式,PayPal或者支付宝:

最后,勾选同意服务条款并确认支付:

付完款大约1-5分钟,会受到VPS开通的邮件,里面有VPS相关信息,比如IP地址、root密码和SSH端口等。
此时,可以到NameSilo或者阿里云提前进行域名解析,进行添加A记录,为接下来的安装WordPress做好准备。

★★★ 温馨提示:(关于IP被墙 / PING不通 / 更换IP)
由于众所周知的原因,国外VPS的IP都有被Q的可能。尽管Hostwinds暂时还未被国人扎堆,但依然有被Q的几率。
如果你运气不佳,买到的VPS的IP被Q了,那么就需要更换一个全新的能正常访问的IP。
所幸,Hostwinds目前提供免费的更换服务。(但愿能一直免费下去)
更换方法:VPS管理后台 -->> Manage IP's -->> Fix ISP Block -->> Confirm

倘若以后不能免费更换了,可选择 “Change Main IP” 的方式(Fix ISP Block 左边)。不过,每更换一次需要支付三美元(对比其他主机商比如搬瓦工来说,其实并不算贵)。
★★★ 温馨提示:(关于订阅付款/预核准付款)
#4.3如何购买搬瓦工VPS
#4.4如何购买VULTR-VPS
接下来,正式进入本文的最重要环节:通过SSH连接VPS搭建LAMP环境,进而安装WordPress博客。
#5SSH连接VPS
SSH(Secure Shell)即安全外壳协议,是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议。我们需要一种SSH工具来连接VPS,个人推荐PuTTY.exe,最好使用英文原版。(注意区分32-bit和64-bit)
下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
下载后免安装,直接打开。填入刚才开通的VPS地址,默认端口22。然后点击Open打开,弹出的新窗口点击左边 “Yes” 。

回到我们刚才收到的邮件,里面有登陆名root和密码,复制密码。在PuTTY界面输入root后回车,单击右键即可输入密码。
登陆成功后,首先需要修改root密码,因为初始密码太复杂不好记,也不一定安全。
# passwd
回车后设置新密码,再回车重新输入。然后界面显示如下,说明密码修改成功。
(密码长度建议20字符以上,字母大小写 + 数字 + 特殊字符)

为防止SSH登录一段时间后自动断开,可更改如下设置以保持SSH长时间在线。
# vi /etc/ssh/sshd_config
将如下两行代码前的 # 去掉,然后做相应修改:(若无此两行代码请在末尾自行添加)
#Compression delayed
ClientAliveInterval 30
ClientAliveCountMax 5
#ShowPatchLevel no
#UseDNS yes
保存,重启SSH即可生效:
# service sshd restart
之后,最好再升级一下系统,以保证获得最新的软件和内核。
# yum -y update
回车,等待升级完成。
开启BBR加速
BBR是Google提出的一个开源的TCP拥塞控制算法,应用于Linux4.9+内核上,对提升网速效果显著。
因此,对于KVM架构的VPS,博主倾向于在正式部署生产环境之前,首先开启BBR。
# yum -y install virt-what
# virt-what
首先,切换到 root 目录:
# cd ~
然后,下载脚本并安装BBR:
# wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
如提示 wget: command not found ,可执行命令 # yum -y install wget 进行安装。
按要求输入 y 后,自动重启VPS。
重新登入后,查看结果:
# sysctl net.ipv4.tcp_available_congestion_control
出现形如以下字样时,说明BBR开启成功。
#6搭建LAMP环境

LAMP指的是Linux(操作系统)、Apache(HTTP服务器),MySQL(数据库软件) 和PHP(有时也是指Perl或Python)的第一个字母,主要用来建立web应用平台。
博主使用的是LNMP一键安装包,具体可参看这里:https://lnmp.org/install.html
首先,创建screen会话:
# screen -S lamp
如提示 screen: command not found ,可执行命令 # yum -y install screen 安装。
如果安装过程中出现异常中断,重新登入VPS后,输入 # screen -r lamp 恢复安装界面。
由于新版本LNMP可一键设置SSL,故推荐优先安装最新版本:
# wget -c http://soft.vpser.net/lnmp/lnmp1.6-full.tar.gz && tar -zxf lnmp1.6-full.tar.gz && cd lnmp1.6-full && ./install.sh lamp# wget -c http://soft.vpser.net/lnmp/lnmp1.5-full.tar.gz && tar -zxf lnmp1.5-full.tar.gz && cd lnmp1.5-full && ./install.sh lamp# wget -c http://soft.vpser.net/lnmp/lnmp1.4-full.tar.gz && tar -zxf lnmp1.4-full.tar.gz && cd lnmp1.4-full && ./install.sh lamp# wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz && tar -zxf lnmp1.3-full.tar.gz && cd lnmp1.3-full && ./install.sh lamp以下安装过程不再赘述,选项一般默认即可,主要设置详见如下(LNMP1.6示意)。
这里设置的数据库ROOT密码务必记牢,下面添加域名时会用到!!
LNMP安装成功之后,如果数据库密码忘记了,可参看这里进行重置。
| LNMP V1.5 for CentOS Linux Server, Written by Licess |
+------------------------------------------------------------------------+
| A tool to auto-compile & install LNMP/LNMPA/LAMP on Linux |
+------------------------------------------------------------------------+
| For more information please visit https://lnmp.org |
+------------------------------------------------------------------------+
You have 10 options for your DataBase install.
1: Install MySQL 5.1.73
2: Install MySQL 5.5.62 (Default)
3: Install MySQL 5.6.44
4: Install MySQL 5.7.26
5: Install MySQL 8.0.13
6: Install MariaDB 5.5.63
7: Install MariaDB 10.0.38
8: Install MariaDB 10.1.40
9: Install MariaDB 10.2.24
10: Install MariaDB 10.3.15
0: DO NOT Install MySQL/MariaDB
Enter your choice (1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or 0): 2
You will install MySQL 5.5.62
===========================
Please setup root password of MySQL.
Please enter: mysqlpasswd
===========================
Do you want to enable or disable the InnoDB Storage Engine?
Default enable,Enter your choice [Y/n]: n
You will disable the InnoDB Storage Engine!
===========================
You have 8 options for your PHP install.
1: Install PHP 5.2.17
2: Install PHP 5.3.29
3: Install PHP 5.4.45
4: Install PHP 5.5.38
5: Install PHP 5.6.40 (Default)
6: Install PHP 7.0.33
7: Install PHP 7.1.29
8: Install PHP 7.2.18 (博主推荐安装 PHP 7)
9: Install PHP 7.3.5
Enter your choice (1, 2, 3, 4, 5, 6, 7 8 or 9): 8
You will install PHP 7.2.18
===========================
You have 3 options for your Memory Allocator install.
1: Don't install Memory Allocator. (Default)
2: Install Jemalloc
3: Install TCMalloc
Enter your choice (1, 2 or 3): 1
You will install not install Memory Allocator.
===========================
Please enter Administrator Email Address: admin@seoimo.com
===========================
Server Administrator Email: admin@seoimo.com
===========================
You have 2 options for your Apache install.
1: Install Apache 2.2.34
2: Install Apache 2.4.39 (Default)
Enter your choice (1 or 2): 2
You will install Apache 2.4.39
Press any key to install...or Press Ctrl+c to cancel
当出现上图中的绿字 "Press any key to install...or Press Ctrl+c to cancel" 后,按回车键确认开始安装。
通常一个小时以内可以安装完成,安装成功后的界面如下图所示(Ctrl+c退出界面):
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Install lnmp takes 41 minutes.
Install lnmp V1.6 completed! enjoy it.
至此,LAMP环境已经在VPS上搭建完成。输入VPS的IP访问,会出现以下界面:

①为了安全,建议将 phpmyadmin 目录重命名为不容易猜到的目录(比如 hereispma , ..):
# cd /home/wwwroot/default
# mv phpmyadmin hereispma②此安装成功页面是IP访问时的默认页面(非域名),建议删除或改名:
# rm -rf index.html 或者
# mv index.html random-name.html③如需要开启IP访问网站域名,请更改IP访问默认路径(此步骤可选,强烈不推荐):
# vi /usr/local/apache/conf/extra/httpd-vhosts.conf将 DocumentRoot “/home/wwwroot/default” 及 Directory “/home/wwwroot/default” 两处中的 “/home/wwwroot/default” 修改为需要IP访问的域名,如 “/home/wwwroot/seoimo.com”。
在安装WordPress之前,建议安装PHP缓存加速类扩展,对降低VPS压力和提高WordPress速度大有裨益。
推荐安装两个:OPcache和Memcached。
首先,需要进入LNMP解压目录 lnmp1.6-full :
# cd /root/lnmp1.6-full
回车,接下来安装Opcache:
# ./addons.sh install opcache
回车,再回车。
当出现 “Opcache installed successfully, enjoy it!” 字样时,即表示安装成功。
接着安装Memcached:
# ./addons.sh install memcached
回车,选择 2 (php-memcached),回车,再回车。
当出现 “Memcached installed successfully, enjoy it!” 字样时,即表示安装成功。
此外,可以删除之前下载的lnmp压缩包,以节省空间:
# rm -rf /root/lnmp1.6-full.tar.gz
接下来,就可以添加域名并搭建WordPress博客了。
#7添加域名 / 虚拟主机
请提前做好域名解析(建议至少提前半个小时),例如:

可直接略过解释说明,查看详细操作步骤。
同时,建议在操作前先开启443端口:CentOS7防火墙中开启相关端口
添加域名:
# lnmp vhost add
回车,提示输入域名:
# seoimo.com
回车,添加多个域名。博主习惯绑定带 www 的域名:
# www.seoimo.com
回车,显示网站目录。默认 /home/wwwroot/seoimo.com 即可。
将 tools.seoimo.com 绑定到网站根目录下的 tools 文件夹,则应输入:
/home/wwwroot/seoimo.com/tools
回车,是否对本域名/网站开启访问记录/日志记录。
博主习惯不单独开起,因为本机上所有访问日志都会记录在 /home/wwwlogs/access_log 文件里。所以,这里可以选择不开起:
# n
会车后,输入站长邮箱。
继续回车,提示数据库名和数据库用户名是否保持一致:
# y
回车,输入 root 用户的数据库密码(不会显示,在#6搭建LAMP环境中设置好的)。
再次回车,输入数据库名,自行设置。例如:
# sjk_seoimo
回车,设置数据库密码。例如:
# sjkmmseoimo
等以后需要时再添加也不迟,下文也有 ftp 添加介绍。
接下来,是否需要开启SSL/HTTPS访问,推荐开启:
# y
这里使用免费的 Let's Encrypt 证书,所以选择 2 。
详细操作步骤如下所示:
Please enter domain(example: www.lnmp.org): seoimo.com
Your domain: seoimo.com
Enter more domain name(example: lnmp.org *.lnmp.org): www.seoimo.com
domain list: www.seoimo.com
Please enter the directory for the domain: seoimo.com
Default directory: /home/wwwroot/seoimo.com:
Virtual Host Directory: /home/wwwroot/seoimo.com
Allow access log? (y/n) n
Disable access log.
Please enter Administrator Email Address: admin@seoimo.com
Server Administrator Email:admin@seoimo.com
Create database and MySQL user with same name (y/n) y
Enter current root password of Database (Password will not shown):
OK, MySQL root password correct.
Enter database name: sjk_seoimo
Your will create a database and MySQL user with same name: sjk_seoimo
Please enter password for mysql user sjk_seoimo: sjkmmseoimo
Your password: sjkmmseoimo
Create ftp account (y/n) n
Add SSL Certificate (y/n) y
1: Use your own SSL Certificate and Key
2: Use Let's Encrypt to create SSL Certificate and Key
Enter 1 or 2: 2
It will be processed automatically.
Press any key to start create virtul host...
Create Virtul Host directory......
set permissions of Virtual Host directory......
Test Apache configure file...
test apache configure... Syntax OK
done
Restart Apache...
restart apache... done
Add database Sucessfully.
--2018-08-05 22:22:37-- https://soft.vpser.net/lib/acme.sh/latest.tar.gz
Resolving soft.vpser.net (soft.vpser.net)... 45.34.93.228, 2600:3c01::f03c:91ff:fe92:1a06
Connecting to soft.vpser.net (soft.vpser.net)|45.34.93.228|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 107645 (105K) [application/octet-stream]
Saving to: ‘latest.tar.gz’
100%[================================================>] 107,645 --.-K/s in 0.02s
2018-08-05 22:22:38 (5.57 MB/s) - ‘latest.tar.gz’ saved [107645/107645]
[Sat Aug 5 22:22:38 CST 2018] It is recommended to install socat first.
[Sat Aug 5 22:22:38 CST 2018] We use socat for standalone server if you use standalone mode.
[Sat Aug 5 22:22:38 CST 2018] If you don't use standalone mode, just ignore this warning.
[Sat Aug 5 22:22:38 CST 2018] Installing to /usr/local/acme.sh
[Sat Aug 5 22:22:38 CST 2018] Installed to /usr/local/acme.sh/acme.sh
[Sat Aug 5 22:22:38 CST 2018] Installing alias to '/root/.bashrc'
[Sat Aug 5 22:22:38 CST 2018] OK, Close and reopen your terminal to start using acme.sh
[Sat Aug 5 22:22:38 CST 2018] Installing alias to '/root/.cshrc'
[Sat Aug 5 22:22:38 CST 2018] Installing alias to '/root/.tcshrc'
[Sat Aug 5 22:22:38 CST 2018] Installing cron job
no crontab for root
no crontab for root
[Sat Aug 5 22:22:38 CST 2018] Good, bash is found, so change the shebang to use bash as preferred.
[Sat Aug 5 22:22:38 CST 2018] OK
Starting create SSL Certificate use Let's Encrypt...
[Sat Aug 5 22:22:39 CST 2018] Registering account
[Sat Aug 5 22:22:40 CST 2018] Registered
[Sat Aug 5 22:22:40 CST 2018] ACCOUNT_THUMBPRINT='oKzGuf4OhgE8SZtXn_3e9mnKUn49QPyPwd54i-asQd8'
[Sat Aug 5 22:22:40 CST 2018] Creating domain key
[Sat Aug 5 22:22:41 CST 2018] The domain key is here: /usr/local/apache/conf/ssl/seoimo.com/seoimo.com.key
[Sat Aug 5 22:22:41 CST 2018] Multi domain='DNS:seoimo.com,DNS:www.seoimo.com'
[Sat Aug 5 22:22:41 CST 2018] Getting domain auth token for each domain
[Sat Aug 5 22:22:41 CST 2018] Getting webroot for domain='seoimo.com'
[Sat Aug 5 22:22:41 CST 2018] Getting new-authz for domain='seoimo.com'
[Sat Aug 5 22:22:41 CST 2018] The new-authz request is ok.
[Sat Aug 5 22:22:42 CST 2018] Getting webroot for domain='www.seoimo.com'
[Sat Aug 5 22:22:42 CST 2018] Getting new-authz for domain='www.seoimo.com'
[Sat Aug 5 22:22:42 CST 2018] The new-authz request is ok.
[Sat Aug 5 22:22:42 CST 2018] Verifying:seoimo.com
[Sat Aug 5 22:22:46 CST 2018] Success
[Sat Aug 5 22:22:46 CST 2018] Verifying:www.seoimo.com
[Sat Aug 5 22:22:49 CST 2018] Success
[Sat Aug 5 22:22:49 CST 2018] Verify finished, start to sign.
[Sat Aug 5 22:22:50 CST 2018] Cert success.
[Sat Aug 5 22:22:50 CST 2018] Your cert is in /usr/local/apache/conf/ssl/seoimo.com/seoimo.com.cer
[Sat Aug 5 22:22:50 CST 2018] Your cert key is in /usr/local/apache/conf/ssl/seoimo.com/seoimo.com.key
[Sat Aug 5 22:22:51 CST 2018] The intermediate CA cert is in /usr/local/apache/conf/ssl/seoimo.com/ca.cer
[Sat Aug 5 22:22:51 CST 2018] And the full chain certs is there: /usr/local/apache/conf/ssl/seoimo.com/fullchain.cer
[Sat Aug 5 22:22:51 CST 2018] Run reload cmd: /etc/init.d/httpd graceful
graceful apache... done
[Sat Aug 5 22:22:51 CST 2018] Reload success
Let's Encrypt SSL Certificate create successfully.
Test Apache configure file...
test apache configure... Syntax OK
done
Restart Apache...
restart apache... done
================================================
Virtualhost infomation:
Your domain: seoimo.com
Home Directory: /home/wwwroot/seoimo.com
Enable log: no
Database username: sjk_seoimo
Database userpassword: sjkmmseoimo
Database Name: sjk_seoimo
Create ftp account: no
Enable SSL: yes
=>Let's Encrypt
================================================
此外,开启SSL/HTTPS访问后,还需要进行以下几点操作:(可等建站完成后再设置)
① - 开启 HSTS;② - 关闭 SNI;③ - HTTP全部301重定向到HTTPS
关于FTP功能
#8安装WordPress程序
以下的步骤想必应该很熟悉,和带Cpanel或DirectAdmin面板安装WordPress过程比较类似。只不过,在面板上操作是可视化的,比较直观。而在这里是通过命令执行的,非可视。只要输入命令时细心点,一般是不会出问题的。
首先,进入添加的域名目录:
# cd /home/wwwroot/seoimo.com
回车。然后浏览器中打开WordPress中文站点,下载最新的程序压缩包:
# wget https://wordpress.org/latest.tar.gz
回车。等待下载完之后,解压压缩包:
# tar -zxvf latest.tar.gz
回车。
接下来,将解压出来的wordpress文件夹内全部文件移动到当前的域名目录下(别忘了后面的.)。
# mv wordpress/* .
回车。然后,可以选择删掉空文件夹wordpress及源程序(可选)。
# rm -rf wordpress latest.tar.gz
回车,搞定。
为避免因权限的问题导致安装出错,比如wp-config.php无法创建、需要提供FTP用户密码以及主题和插件不能更新等,建议赋予网站根目录文件的可写权限。
# chmod -R 755 /home/wwwroot && chown -R www /home/wwwroot
另外,LNMP安装包默认禁用了 scandir 函数,这会导致WordPress后台看不到安装的主题,以及当前主题总显示 “有新的翻译可用” 的提醒。所以,需要开启此函数。
LNMP最新版本已经默认开启了 scandir 函数,所以该步骤可以忽略。
好了,打开博客网址进行最后的安装吧!(记得要提前设置好域名解析)
鉴于评论中不少朋友反馈,以上设置都正确,但到这一步就是打不开网址。
故而,博主建议在此处先重启下lnmp:
安装SSL证书后,建议打开HTTPS开头的网址安装,例如:https://www.seoimo.com/
如已经使用HTTP安装,需要把HTTP替换为HTTPS网址。

至此,在VPS上通过搭建LAMP环境安装WordPress博客已经大功告成了。
接下来,我们来对VPS进行必要的配置优化,以便进一步提高主机性能。
①WordPress 5.X 版本的Gutenberg编辑器用起来别扭的话,可以用插件改回经典版编辑器:
https://wordpress.org/plugins/classic-editor/
②WP-Super-Cache(页面缓存):https://wordpress.org/plugins/wp-super-cache/
③Autoptimize(CSS/JS压缩):https://wordpress.org/plugins/autoptimize/
④ShortPixel(图片压缩):https://wordpress.org/plugins/shortpixel-image-optimiser/
⑤A3-Lazy-Load(图片懒加载):https://wordpress.org/plugins/a3-lazy-load/
⑥Yoast-SEO(SEO优化):https://wordpress.org/plugins/wordpress-seo/
⑦WP-Mail-SMTP(smtp发信):https://wordpress.org/plugins/wp-mail-smtp/
⑧WP-DB-Backup(数据库备份):https://wordpress.org/plugins/wp-db-backup/
⑨MemcacheD-Is-Your-Friend(对象缓存,按上文安装了php-memcached才可以用):
https://wordpress.org/plugins/memcached-is-your-friend/
#9VPS配置优化
关于VPS服务器方面的配置优化绝对是个技术活,如果深入研究的话会比较复杂。博主非技术大牛,在这里仅介绍一下常用的三点:优化php.ini配置、添加swap交换分区和开启Keep-Alive功能 + 优化Httpd配置。
#9.1优化php.ini配置
用vi命令修改 php.ini 文件。
# vi /usr/local/php/etc/php.ini
单击 i 键进入 insert 模式,按 “上下左右” 四个方向键找到并修改以下数值:
此行表示允许单个脚本允许使用的最大内存256M(通常1G内存以下设置256M即可)。
单击 Esc 键退出 insert 模式,输入以下命令保存退出。注意英文状态下输入!
# :wq
回车。然后重启一下LNMP:
# lnmp restart
回车。
#9.2添加Swap交换分区
针对1GB内存以下的VPS,最新版本的LNMP比较智能的自动添加Swap交换区了。
用如下命令查看是否已添加了1GB的Swap,如已添加,此步骤可直接跳过。
当然,如果你觉得自动添加的Swap空间1GB有点大,也可以参考下文进行调整。
#9.3开启Keep-Alive功能 + 优化Httpd配置
开启Keep-Alive功能可使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。可见,对访问静态网页时,开启Keep-Alive是很有用的。
因为在进行WordPress管理方面上的优化时,需要安装静态缓存插件,所以,开启Keep-Alive功能十分必要。
# vi /usr/local/apache/conf/extra/httpd-default.conf
依次修改以下四条:
KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 5
退出,保存:
# :wq
接下来优化 Httpd 配置( prefork 模式下),以降低Apache内存占用。此步骤对小内存VPS(如搬瓦工256MB方案)尤为重要。
# vi /usr/local/apache/conf/extra/httpd-mpm.conf
依次修改如下:(甚至可降低一半,即1、1、2、50、50)

退出,保存:
# :wq
然后,重启httpd服务:
# service httpd restart
#9.4清理VPS日志
这点很重要,尤其是较高访问量的网站!
不清理的话,日志文件越来越大,最后把VPS空间占满后导致停机。
日志主要涉及两个方面:VPS系统日志和Apache访问日志(也包括错误日志)。
可以查看 /var/log/ 及 /home/wwwlogs/ 两个日志目录:
如果发现有几百MB的日志,说明应该清理一下了。
清理的方法并不难,找出VPS中哪些日志是不重要的,然后定期手动或自动清理即可。
博主写了一个Shell小脚本,使用 crontab 命令设置定期(比如每五天)删除这些日志。
执行此脚本需要用到 crontab 定时功能,为避免出错,先检查下是否已经安装:
如提示 -bash: crontab: command not found,说明我们需要安装一下 crontab:
#10删除mysql-bin.0000*日志文件
博主所用的LNMP一键安装包默认开启了日志记录,这样就会在 /usr/local/mysql/var/ 目录下面生成大量 mysql-bin.0000* 类似的文件,大小甚至达到几个G!
所以,我们需要做下调整,禁止保留日志记录以防止占用太多空间。
于是,编辑 /etc/my.cnf 文件:
# vi /etc/my.cnf
找到以下两行代码,在前面添加 #,彻底禁用MySQL日志:
open_files_limit = 65535
#log-bin=mysql-bin
#binlog_format=mixed
server-id = 1
expire_logs_days = 10
保存退出,重启一下MySQL:
# /etc/init.d/mysql restart
#11Linux-VPS安全配置 / 防护措施
博主以为,VPS的安全防护绝对是运行网站的重中之重。防护措施做不好,轻者给后期运行带来无穷无尽的烦恼,重者造成网站瘫痪甚至数据清空,那就真的欲哭无泪了。
好在Linux本身已经足够安全稳定,只要你不泄露关键的登录信息(比如SSH端口和ROOT密码等),通常不会产生重大事故。但即便如此,我们还是应该未雨绸缪,提前做好VPS的安全防护措施。
那么,VPS安全配置究竟该如何做呢?
在这里,博主结合自己建站经验,介绍一下Linux-VPS安防措施里最有效的三个方面:修改SSH端口、阻止SSH暴力破解和防御DDOS攻击。
#11.1修改SSH端口(强烈推荐)
首先,编辑配置文件:
# vi /etc/ssh/sshd_config
找到 #Port 22 这行(默认端口22),把前面的 # 去掉,然后再添加一个新的端口(不超过65535),比如 Port 56789:

保存,重启SSH即可:
# service sshd restart
接下来,在防火墙 /etc/sysconfig/iptables 里开启此端口:
# iptables -A INPUT -p tcp -m tcp --dport 56789 -j ACCEPT
保存并重启防火墙:
# service iptables save
# service iptables restart
或者,也可以编辑 /etc/sysconfig/iptables 文件,复制端口 22 的规则,粘贴在其下另起一行。
按 :wq 保存退出后,重启防火墙。
查看防火墙状态,看看端口是否开启成功:
# service iptables status
现在,使用新的端口连接SSH。
若成功登录,则再次编辑 /etc/ssh/sshd_config,将里面的 Port 22 前加 # 保存后,重启SSH即可。
CentOS7防火墙中开启相关端口:
CentOS7.X中默认的防火墙 firewalld 而非CentOS6.X中的 iptables 。如果你也像博主一样感觉用着很不爽,需要换回 iptables 的,可以参考如下设置。
1、关闭firewall并禁止开启启动:
# service firewalld stop
# systemctl disable firewalld.service
2、安装iptables:
# yum -y install iptables-services
3、修改iptables配置:
# vi /etc/sysconfig/iptables
粘贴如下内容(可按需要自行增删;如已更改SSH端口,下面的22端口那行可以删除):
:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 56789 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j DROP
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 11211 -j DROP
-A INPUT -p udp -m udp --dport 11211 -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
按 :wq 保存退出后,重启iptables,并设置为开机启动:
# service iptables restart
# systemctl enable iptables.service
#11.2阻止SSH暴力破解(可选)
设置高强度密码 + 更改默认SSH的22端口后,已经可以阻止绝大多数的SSH非法请求了。因此,安装DenyHosts这步可以省略。
#11.3防御DDOS攻击(可选)
也许是设置的问题,也许是DDoS-Deflate确实有问题,经过长时间的运行,发现效果并不是很好。无奈,博主自己写了一个简单的防DD/CC的脚本,效果还不错。因此,安装DDoS-Deflate这步也可以省略。
#12MySQL数据库优化
众所周知,LAMP是比较依赖数据库的。尤其是搭建的WordPress博客没进行HTML静态缓存的情况下,对数据库的依赖更加严重。
在我看来,对MySQL数据库的优化是特别重要也是特别困难的一项工作。不仅仅是因为MySQL设置里参数众多,让人看着头疼迷糊,更是因为这些参数没有一个固定的最优组合。参数设置的激进,浪费VPS资源,设置的保守,又可能限制程序的正常运行。
那么,究竟该怎么设置才合理呢?
根据博主的经验,对MySQL众多参数中最重要的以下几点进行合理的优化后,基本可以保证中小流量(比如<5000IP/天)博客的正常访问。
为确保安全,首先备份一下 /etc/my.cnf :
# cp /etc/my.cnf /etc/my.cnf.old
接下来,修改 /etc/my.cnf 中的以下参数:
# vi /etc/my.cnf
max_connections = 100
修改后,保存退出。重启一下MySQL数据库即可:
# /etc/init.d/mysql restart
特别提示:★★★★★
随着博客流量的日益增长,这些设置可能不再适合,需要不断调整,以达到最合理的方案。
那么,如何调整呢?
在这里,博主根据自己的实际经验,提供以下方法。同时,也建议你定期监测调整。
一、连接MySQL数据库:
# mysql -uroot -p
回车,输入数据库密码(root用户)。
出现提示符 mysql> 后,即表示成功进入MySQL数据库中。
二、查看服务器响应的最大连接数(Max_used_connections):
mysql> show global status like 'Max_used_connections';
返回值中,Max_used_connections 表示服务器过去发生的最大连接数。
博主建议:
max_connections / Max_used_connections = 1.5
比值可以大一些,但太小的话可能出现 1040 错误:“MySQL: ERROR 1040: Too many connections”
三、查看key_buffer_size使用情况:
mysql> show global status like 'key_read%';
得到返回值(单位:Byte),索引未命中缓存的概率:
key_cache_miss_rate = Key_reads / Key_read_requests * 100%
博主建议:
key_cache_miss_rate < 0.1% 即可,表示1000个索引读取请求才有一个直接读硬盘;
如果比值过小(比如< 0.01%),则表示 key_buffer_size 分配的过多,可适当减少。
四、查询缓存(query cache)利用率:
mysql> show global status like 'qcache%';
返回值中,Qcache_free_memory 表示缓存中的空闲内存(单位:Byte)
则查询缓存利用率:
x = (query_cache_size - Qcache_free_memory) / query_cache_size * 100%
博主建议:
查询缓存利用率 >80% 时,可适当提高 query_cache_size 数值;
查询缓存利用率 <20% 时,可适当降低 query_cache_size 数值。
五、退出MySQL数据库:
mysql> exit
#13创建VPS快照
为了数据安全,一定要养成定期备份的良好习惯。否则,一旦有个闪失,可真的要一夜回到解放前了。
所幸,Hostwinds提供了SnapShot快照备份功能(收费但非常便宜,博主每天花费大约$0.01),可以通过一键恢复,无缝迁移系统到别的机子或者机房。这实在是太方便了。
操作也很简单:打开某个VPS的管理界面,点击右侧的 "Actions",选择 "Snapshots" ,方框内填入标签即可。

#14WordPress博客的备份和迁移
网站备份的重要性就不需要博主多说了。在Linux系统下,对WordPress进行备份其实并不难。主要涉及两部分:文件备份和数据库备份。
#14.1 文件备份
#14.2 数据库备份
#14.3 WordPress迁移 / 搬家
#14.4 WordPress搬家脚本(参考)
#14.5 备份小技巧
#15写在最后
到这里,关于在月付5美元的便宜VPS上搭建LAMP环境,进而安装WordPress建站并进行主要的优化配置已全部完成。是不是突然觉得豁然开朗?
其实,把网站安装成功只是万里长征开始的第一步,后面还要涉及WordPress内部的优化和加速、内容创建、网站数据备份、安全防护等等,这在以后的文章中会继续和大家分享。
私以为,一个优秀的博客,就像小树苗一样,需要博主长期精心的培育和维护,才能最终长成参天大树。
不过,千万要记得:一定要养成定期WordPress备份的良好习惯!
在安装过程中,如遇到问题或对本文有好的想法或建议,请在下面留言评论。
倘若本文对你有所帮助,欢迎分享传播。举手之劳,也许就能够帮助更多想尝试VPS建站的朋友们少走一些弯路。

























你好博主:
我在进行完成(#8安装WordPress程序)之后
打开我的博客网址,提示:
Forbidden
You don't have permission to access / on this server.
Apache Server at http://www.maobuchi.com Port 80
然后我重启了lnmp,还是一样的提示。
是哪里出了问题呢?
我的VPS是:
vultr里边搭建的CentOS 7服务器
求大神帮忙看下什么问题。
看下你网站目录下是不是空的,正常应该有wordpress的index.php安装首页。
怎么看呢,我是小白,可以把代码发一下吗?
# ls /home/wwwroot/xxx.com
我是按照这篇文章全程进行的,是说我漏了哪部分吗?
我检查了下,可能是这行代码写错了
接下来,将解压出来的wordpress文件夹内全部文件移动到当前的域名目录下(别忘了后面的.)。
# mv wordpress/* .
这里指的后边的,是什么?
是 /home/wwwroot/seoimo.com 这个目录吗?
或者应该怎么编辑才对?
指的是后面的点号 "." ,指的是当前目录。
这个命令的意思是把 wordpress 文件夹下的全部文件转移到当前目录,也就是 /home/wwwroot/xxx.com 你的网站目录。
如果你这步操作错了,文章目录是空的就是不足为奇了,因为根本没移动过来。
好的,我已经建好,但是登录页面提示输入我的数据库连接信息包括:数据库名、用户名、密码、数据库主机、表前缀,这些信息,这些是在哪里得到的?
楼主,我按照你的最新教程进行到关闭firewall时,显示Failed to stop firewalld.service: Unit firewalld.service not loaded.还没开始添加域名,请问这得怎么办?
试试这个:# systemctl stop firewalld && systemctl disable firewalld
博主,您好!
请教下,lamp 下 wordpress网站更换域名应该怎么做?
lamp下站点更换域名
2018-01-27 23:06:22 771次
先进入apache配置目录
[root@cloud]# cd /usr/local/apache/conf/vhost
然后找到自己网站的配置。以将站点域名由www.abc.com修改为www.123.com为例
[root@cloud vhost]# vim http://www.abc.com.conf
ServerAdmin webmaster@example.com
php_admin_value open_basedir "/home/wwwroot/website";
DocumentRoot "/home/wwwroot/website";
ServerName http://www.abc.com
ServerAlias http://www.abc.com
ErrorLog "/home/wwwroot/website-error_log";
CustomLog "/home/wwwroot/website-access_log"; common
;
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
修改配置文件中对应参数即可。(将配置文件中ServerName和ServerAlias后面的域名修改为www.123.com则站点绑定域名修改完成,站点目录路径为/home/wwwroot/website)
修改完成后保存,退出vim,重启apache服务
这个教程好像缺少些什么,您能指点一二吗?谢谢
不建议用这种方法,除非你对lamp特别熟悉,否则很可能某些地方遗漏或者出错。
而且,改完后SSL证书多半还得重新更新。
我的建议是,直接新建新的域名(/home/wwwroot/new.com),然后把旧网站目录(/home/wwwroot/old.com)直接复制到新网站目录(/home/wwwroot/new.com),之后手动或者用命令,修改旧网站目录下(/home/wwwroot/old.com)所有相关文件中旧网址old.com到新网址new.com,主要是静态缓存或者某些主题,里面有些写死的绝对地址要改过来。
最后,去导入数据库,在phpmyadmin里面把old.com域名替换成new.com域名,重启下lamp,大功告成。熟练的话,十几分钟就搞定了。
博主,我装了lnmp之后 index页面都访问不到 输入VPS 的 IP后无法访问
然后如果要重装的话应该怎么做
如果lnmp安装过程中出了错,没法回滚的,只能在VPS后台重新安装CentOS系统,然后重新搭建lnmp环境。
话说大佬,我在好几个关于mysql内存优化的帖子下面都看到你唉。不过我想问一下这个mysql到底怎么优化啊,我的阿里云1G的,开个mysql就占了30%。不知道这个是不是正常水平,因为我总感觉我内存不够用。而且还有关于apache的服务也是,这个服务有时候占到50%多的内存,关键是我才打开了几个页面。我搜了半天也没有找到像样的内容,还请大佬指点指点,谢谢啦!
没有1+1=2这种数字化的优化方案,只能根据各参数的作用,定个方向然后不停的测试。
包括本文定这些参数,是基于512MB内存不停测试得出的。
所有的软件几乎都是越新越占用内存,所以,如果VPS内存小,在保证够用的前提下,尽量不去升级。
否则,尽可能选择高配置的VPS。
最后,新站没什么流量,不要纠结这些细节,应该把精力放在写文章和获取流量上面。
等流量上来了有盈利了,加钱升级服务器配置才是王道。
请问如何给自己的网站添加多个域名呀?
最简单的方式:其他域名在DNS解析的时候,直接跳转到这个域名即可。
是不是通过CNAME类型解析呢?我这样解析,却显示:
Forbidden
You don't have permission to access / on this server.
Apache Server at (新域名) Port 80
请问是不是有问题?应该怎么解析呢?求教大神。
简单点,通过 URL Redirect 网址转发,隐形或者显性均可。
加SSL的时候总是出现如下错误,不知道楼主能不能帮忙解决?
lease enter domain(example: http://www.lnmp.org): gzcarkey.com
Your domain: gzcarkey.com
Enter more domain name(example: lnmp.org *.lnmp.org): http://www.gzcarkey.com
domain list: http://www.gzcarkey.com
Please enter the directory for domain gzcarkey.com: /home/wwwroot/gzcarkey.com
Allow access logs (y/n) n
Disable access log.
Please enter Administrator Email Address: carkeytech@outlook.com
Server Administrator Email:carkeytech@outlook.com
1: Use your own SSL Certificate and Key
2: Use Let's Encrypt to create SSL Certificate and Key
Enter 1 or 2: 2
It will be processed automatically.
/usr/local/acme.sh/acme.sh [found]
Starting create SSL Certificate use Let's Encrypt...
[Tue Jun 25 16:22:39 CST 2019] Multi domain='DNS:gzcarkey.com,DNS:www.gzcarkey.com'
[Tue Jun 25 16:22:39 CST 2019] Getting domain auth token for each domain
[Tue Jun 25 16:22:40 CST 2019] Getting webroot for domain='gzcarkey.com'
[Tue Jun 25 16:22:40 CST 2019] Getting webroot for domain='www.gzcarkey.com'
[Tue Jun 25 16:22:40 CST 2019] Verifying: gzcarkey.com
[Tue Jun 25 16:22:43 CST 2019] Pending
[Tue Jun 25 16:22:46 CST 2019] gzcarkey.com:Verify error:Invalid response from http://www.gzcarkey.com/.well-known/acme-challenge/jVAkhI00ehV3W1YdF0xAIHMKNBDEc4C6LL_qWwzoarc [45.76.75.216]:
[Tue Jun 25 16:22:46 CST 2019] Please check log file for more details: /usr/local/acme.sh/acme.sh.log
Let's Encrypt SSL Certificate create failed!
确保域名解析成功,然后试试更改下权限:
站长大神,vultr的ipv4已经基本都被墙了,只有ipv6还可以用,求教如何用ipv6搭建WordPress和SSR?
万分恳请。
IPv6搭建wordpress貌似只能配合CloudFlare的CDN转换,请自行Google,因为博主也没折腾过。
IPv6离普及还早呢,至少十年内IPv4还是绝对主角。何必苦苦盯着VULTR,何必难为自己。。
vultr建好服务器后去ping一下IP,能ping通的就可以
https://tools.ipip.net/ping.php
这个站点里,吧IP输入,选择中国,其它国家都不要选,然后点“ping”
博主,周日搞了一天。升级lamp1.3 php5.4.45 至 php 7.0.27 。
参照这里做的:https://cloud.tencent.com/developer/article/1141282
1.进入lnmp1.3目录
cd /root/lnmp1.3-full
2.敲入系统自带升级命令
./upgrade.sh phpa
3.输入版本号
7.0.27
15分钟后升级完成,在此之前wordpress的插件全部停掉了。输入后台地址和网址都提示502错误。
网上说是php-fpm没启动。还没用$php-fpm 命令试。搞到现在,搞不动了,要睡觉前咨询下您。
备注:我网站40G,太大了,转移备份没空间,也太麻烦了。想直接在网站上备份网站后升级php。试了几次都不行,真心求教,万分感谢!
补充下,vultr 的 centos7 , 谢谢!
补充问下:wget -c http://soft.vpser.net/lnmp/lnmp1.6-full.tar.gz && tar -zxf lnmp1.6-full.tar.gz && cd lnmp1.6-full && ./upgrade1.3-1.6.sh 这个命令执行出错了。
wget -c http://soft.vpser.net/lnmp/lnmp1.6-full.tar.gz && tar -zxf lnmp1.6-full.tar.gz && cd lnmp1.6-full && ./upgrade1.3-1.6.sh
--2019-06-17 01:34:02-- http://soft.vpser.net/lnmp/lnmp1.6-full.tar.gz
Resolving soft.vpser.net (soft.vpser.net)... 50.93.201.152, 2600:3c01::f03c:91ff:fe92:1a06
Connecting to soft.vpser.net (soft.vpser.net)|50.93.201.152|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 708331465 (676M) [application/octet-stream]
Saving to: ‘lnmp1.6-full.tar.gz’
100%[======================================>] 708,331,465 8.72MB/s in 99s
2019-06-17 01:35:42 (6.82 MB/s) - ‘lnmp1.6-full.tar.gz’ saved [708331465/708331465]
-bash: ./upgrade1.3-1.6.sh: No such file or directory
[root@vultr lnmp1.6-full]# ./upgrade1.3-1.6.sh
-bash: ./upgrade1.3-1.6.sh: No such file or directory
是否必须先升级到1.4,然后1.5,最后1.6呢?
你命令错误了。我备份的VPS上只有1.5版本的,稍后从 l.5升级到1.6 操作下,再回复你。
下载lnmp1.6-full并升级:
然后,会显示:
[Mon Jun 17 13:53:59 CST 2019] Install success!
[Mon Jun 17 13:53:59 CST 2019] Upgrade success!
upgrade lnmp manager complete.
接着升级php:
基于lamp/apache环境,所以输入 5,升级的是 5: Upgrade PHP for LNMPA or LAMP
再输入 7.2.18 ,升级到php7.2.18。
具体明细如下:
2: Upgrade MySQL
3: Upgrade MariaDB
4: Upgrade PHP for LNMP
5: Upgrade PHP for LNMPA or LAMP
6: Upgrade MySQL to MariaDB
7: Upgrade phpMyAdmin
exit: Exit current script
###################################################
Enter your choice (1, 2, 3, 4, 5, 6, 7 or exit): 5
Current PHP Version:5.6.36
You can get version number from http://www.php.net/
Please enter a PHP Version you want: 7.2.18
安装持续五六分钟,然后继续安装扩展:
选择 2 (php-memcached)。
安装好后,进行 #9 - VPS配置优化 中关于PHP的相关设置:
https://www.seoimo.com/wordpress-vps/#vps-optimization
升级MySQL或者phpmyadmin方法相同。
感谢博主花这么多时间帮助处理问题。刚才按照这些处理,所有的升级都没问题,但是最后网页打不开,提示:HTTP ERROR 500 错误。
试着解决:
1、启动 systemctl start php-fpm
提示:Failed to start php-fpm.service: Unit not found.
2、修改 .htaccess 文件 IfModule mod_php5.c> 将这个5.C 改成7.c
结果:无效
3、回头去删除了原来的lnmp1.3 和lnmp1.6的压缩包
结果:无效 php 似乎没有启动
先恢复了,麻烦博主了。看来外国人写的有说是 .htaccess 文件问题的,有说centos7问题的,太复杂了。似乎没看到解决的答案。抱歉麻烦您,睡觉去了。
首先明确下安装的是不是lamp/apache?
php-fpm是lnmp/nginx里面的,apache不用这个启动。
试着安装完成后,重启下lnmp:# lnmp stop && lnmp start
使用 # lnmp restart 也可以,只是可能需要N次 restart ,直到显示所有组件重启成功。
P.S. 组件升级的时候网站其实也是不可访问的,所以折腾这几天,真心不如重新搭建lnmp1.6然后搬家过去。
数据太大(主要就是wwwroot,数据库大了一般也就是几十MB),可以分割打包,比如压缩其中几个文件夹,然后导入到新VPS再解压。
这么大的数据,想必网站应该有盈利的,强烈建议选个空间够大的套餐,以后备份起来方便。
博主最近正在写一个自动备份网站数据和数据库并ftp上传备用VPS的脚本,其中就涉及到压缩后的备份次数。
一般个人博客压缩后也就几百MB到几GB,比如本站压缩后才一百多MB。像你的网站,即便仅保留最近的一次备份,也得八九十GB。
所以,最好保持VPS的可用空间足够大些。
其他地方能省则省,但对于数据备份,千万不要省。
是用的apache,照您的教程做的网站。
# lnmp restart 也用过了,显示apache 和 mysql 关闭和开启 OK
但是lnmp restart 似乎没有php是否重启的显示。
P.S. 组件升级的时候网站其实也是不可访问的==是组件升级完之后去弄的。谢谢博主
这就搞不清楚了,从你反馈的信息来看,以博主目前的水平,只能分析到这了。
也许以后遇到了类似问题,有第一手的信息,可能折腾起来会更容易些。
有新的版本,最好还是全新安装,不要升级,因为升级起来联动的地方可能比较多,改起来会麻烦。
全新安装的都是经过测试好的,通常不会出问题,或者问题要少一些。
感谢博主的指导
想请教下,哪里有便宜的像您之前推荐的搬瓦工类似的60-80G大硬盘的付年费的服务器,我想把网站备份过去。听您说的,看了一下,确实存在风险,现在好多VPS平台都不让国人注册,悲哀。先谢谢博主的热心帮助了。西雅图已经注册了一个,做备份价格似乎有点高。谢谢
您这种情况最适合的可能就只有大容量存储型VPS了,也叫大盘鸡。
空间二三百GB甚至更多,月付一般5刀以内。
但是存储型VPS有个通病,就是除了硬盘大之外,整机性能很一般,主要是CPU和I/O都不高(几十MB/s),RAM也较少,一般256MB-512MB。
仅作为网站备份和其他文件存储的话,可以试试博主自用的这款,256GB硬盘(I/O才三五十MB/s),256MB内存(安装lnmp也够用),OpenVZ构架(网速一般),挂一两个佛系博客也可以。
年付$29.99,黑五曾有过五折促销,可惜没赶上。
平时只用来网站备份和照片/视频储存,偶尔临时上下Google(搜索可以,YTB不行,720P都卡)。直达链接:
https://www.seoimo.com/recommends/hostens-vps-storage/
这个地方好像买不了大盘鸡了。博主
貌似网站出了问题,暂时不能买了。
这个是OpenVZ的,立陶宛的机房,速度一般,存储数据还可以,建站就算了。
除非是真的需要,否则真不建议买这个。
P.S. 网站已恢复(2019-07-10 16:10)
其实如之前我说的,你新建一个VPS全新安装lnmp1.6要方便的多。
VPS之间转移数据也很快,别说40GB,就是400GB,按每秒几十MB的速度,也用不多久的。
感谢博主的回复。我试过了新建一个VPS全新安装lnmp1.6,确实很快。但有几个问题:
1、会造成IP改变。旧IP没被墙,很多新IP全部被墙了,不好用。
2、新装lnmp1.6后,需要导入原网站的压缩包。压缩包40G,压缩要1个多小时,经常断线,而且原VPS没那么多空间放压缩包。
3、新装lnmp1.6后,需要导入原网站的数据库。数据库导入还原无法成功,因为mysql之前的无法兼容到lnmp1.6的新的mysql版本。
1、VULTR的IP都被扒光了,确实是个问题。如果你能开出好用的IP,可以用 scp 命令直接VPS之间文件复制,只是速度太慢,不如压缩后解压高效和安全。
2、同1,只要能开出可用IP的大空间套餐即可。
3、数据导出的是 .sql 格式,不同版本mysql应该都支持的。
P.S. 你这种情况感觉比较危险,因为空间不够,无法进行多重备份。虽然VULTR可以snapshot,但一旦服务器故障或snapshot备份不完全,你自己没有第三方额外的备份,会很麻烦。
谢谢博主的耐心解答。
第3点,数据库.sql格式的,不知道是a、m、p、里面的哪个的问题。反正lnmp1.3的数据库就是导入不了1.5的,之前看别人的帖子说的好像是从哪个版本开始换的的问题。记不清也找不到了,反正就是导入不了。
谢谢博主的提醒,也没办法,现在只能手动多备份几个了。
有时间还是去HOSTWINDS西雅图看看了。
真的折磨人,随便动一下就是一天两天,而且别的事都干不了。
博主加个QQ2532929046,谢谢
我刚才在lnmp1.5基础上,把mysql5.5升级到mysql5.7.26、php5.6升级到php7.2.18,甚至把phpmyadmin也升级到4.9.0.1,一切正常。
所以,请检查下是不是哪里操作出了错。
不怎么用QQ/微信,写博客以来,已经习惯于每天收发邮件。抱歉。
谢谢博主,我晚上乘服务器流量少,再试一下。谢谢!
3、新装lnmp1.6后,需要导入原网站的数据库。数据库导入还原无法成功,因为mysql之前的无法兼容到lnmp1.6的新的mysql版本。
我试过好几次,百度google别人也说要怎么修复一下,这个是最重要的麻烦。
先等等不升级了,谢谢博主的耐心解答
MySQL是向下兼容的,lnmp1.6默认安装的是mysql5.5,如果你的版本是此版本以下的比如5.4,导入应该是不会出问题的。
而反过来,高版本向低版本导入就可能会不兼容。
你可以用这个软件转换下sql再导入试试:
https://my.oschina.net/u/1866821/blog/533916
感谢站长的分享。hostwinds支持putty ssh key,方法比较简单,很方便登录。建议楼主增加相应内容。如方便请回邮件,想加您为好友,不知可否?
的确很方便。看个人喜好了,我比较习惯于密码登入。
博主,您好!
wordpress升级提醒,php版本太低,需要升级php。很多插件也提示故障,请问如何升级php版本。有人说执行:./upgrade.sh php 即可升级,请教下,有别的注意事项吗?是否升级php后会跟mysql和apache有关联性冲突,谢谢。急等您的帮助
建议升级到至少php7.2,本站用的也是这个版本。
在lnmp1.X基础上升级到lnmp1.6,然后升级php7.X,可以参考这里:
https://www.seoimo.com/lamp-ssl/#lnmp1.3-to-lnmp1.4
当然,也可以在lnmp1.X里面升级php版本。
如果有时间,建议最好花点时间重新搭建下最新版lnmp1.6(本文已更新),网站也不用关停,找个别的VPS搭建好环境临时迁移过去(如果是HOSTWINDS或者VULTR,直接新建一个按小时付费的,用完再销毁),等本机搭建好了再搬家回来即可。
熟练的话,一个多小时就搞定了。因为安装lnmp1.6大约要30-50分钟。
升级php没有太多注意的事项,只不过跟php有关的设置需要再重新更改下,上面的参考链接里面有说明。
谢谢博主,我试下
不客气。
刚看了您的文章,没有发现升级到lnmp1.6的教程。
另外,您说的转移网站,我试过的,php版本太低,无法进行数据库的转移。数据库不支持,很麻烦。谢谢
是否php和mysql有版本兼容的问题呢?
站长能帮我处理一下吗?
可以给点钱
确实有兼容性的问题,但在lnmp自带的版本内,相信已经解决了这个问题。
君子爱财,取之有道。举手之劳,不必谈钱。
方便的话,可以把IP地址、root密码、SSH端口和数据库密码发过来,我看能不能直接升级到lnmp1.6版本。
建议提前做好snapshot快照备份,一旦有需要,你可恢复到升级前状态。
账号密码可以临时改下先,直接留言即可,我收到后改掉,不会出现在评论里。
参考内容是之前我从lnmp1.3升级到1.4到操作,升级到1.6操作类似。
我说的转移网站是指网站搬家,数据库导出后再导入,应该不存在因为php版本低无法导入导出的,检查下是不是操作不对。
谢谢楼主的热心解答。我查过是mysql5.45还是哪个版本的前后不兼容。php升级了,mysql就跟着升级,却无法导入数据库
我重新搭建了lnmp1.5,然后手动升级到lnmp1.6,没遇到这个问题。
升级有问题的话,建议你还是备份网站数据,直接搭建lnmp1.6。
直接搭建lnmp1.6,需要更换IP地址,而且域名还要重新解析,会对网站造成影响。手动升级有具体的教程吗?非常感谢,因为数据库导入会有个mysql的版本不兼容数据库无法导入的问题,我忘记是哪个版本了,谢谢博主的耐心教导。
另外,从您这里购买的搬瓦工VPS被封了,SSH无法登陆了,有解决办法吗?
我看到你用的是VULTR,新开一个VPS,然后全新搭建,再解析过去,把旧的这个删除就好了。
只要你能开出可用的IP,其实新建并不难。换个IP对建站影响几乎可以忽略。
应该是通过本站文中介绍的链接购买的搬瓦工,本站不售卖搬瓦工的。
被封了有两个办法,一个付费换IP,八九刀一次;
第二是找个手头能用的VPS,SSH登录后,用 ssh 命令 连接被墙的VPS即可。
命令格式: # ssh -p 端口 root@IP
最近大墙频繁封IP,所以本站才离开搬瓦工和VULTR的,目前所有网站陆续都搬家到HOSTWINDS西雅图了。
博主,给个HOSTWINDS西雅图的优惠码我,想搬去那里算了
不用优惠码啊,目前也没有优惠码。
直接右侧栏点进去就是优惠10%,注意是首次账单。