Linode VPS+LNMP1.5+WordPress搭建外贸网站

本文写使用的搭建环境与软件是CentOS 7 + LNMP1.5 + WordPress + AVADA主题,根据本文步骤操作,你可以架设出自己的个人外贸网站。本文主要内容如下:

  1. VPS和域名的配置
  2. 安装lnmp包
  3. 部署虚拟主机+安装WordPress
  4. 设置SSL证书

1.VPS和域名的配置

VPS中我选用了Linode VPS的5刀配置的,当然你可以选择其他的VPS也是可以的。但我个人喜欢Linode,毕竟操作简单。至于如何购买Linode,我这里就不说了。如果你真的不懂的话可以参考hunk或者料神的博客。

调过购买教程后,直接配置VPS。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

我选了新加坡地区的。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

Root Password 尽量设置复杂一点,而且必须记下来!记下来!记下来!等下要用到。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

点了Rebuild后等个10几秒初次化。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

初次化后直接点Boot,开启!

一切准备好,拿起你的SSH工具,准备开波。Skr,skr...

2.安装lnmp包

工具:Xshell + Xftp,自行去官网*载下**。*载下**时选择一下你是 home use,即可免费*载下**。

打开xshell点新建。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

输入自己喜欢的名称,主机填刚才vps的IP地址,端口22,间隔45。然后先别急点确定!

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

点击左上角‘用户身份验证’用户名输入root,密码:输入刚才开通配置vps时的密码(就是刚才说记住的那个密码)。然后点确定。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

然后点击链接刚才新建的,在弹框的这里点击“接受并保存”下次链接就不会再弹出来。除非你更改了密码。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

链接后就开始表演真正的技术了...

A.安装Lnmp1.5

LNMP一般来说指的是Linux + Nginx + Mysql + PHP,用这个组合可以快速搭建出轻量级的网站,因此深受喜爱。而LNMP一键安装包(https://lnmp.org/)则是一个集成了安装、配置过程的第三方包,为了快速建站,此处我们选择一键安装包。

此文写作时,LNMP最新的是1.5版本,优化了对SSL的支持,若希望快速完成SSL证书生成+部署到WordPress,使用https协议,建议使用此版本。

CentOS 6.8/ CentOS 7 系统默认未安装 Wget 指令程序,那么执行一下这条命令先安装 wget: (CentOs 系统)

sudo yum -y install wget

首先,运行如下代码,通过wget将压缩包*载下**到本地并解压,并运行install.sh安装。复制下面代码,右键粘贴进Xshell然后回车。

#lnmp1.5安装lnmp包
wget -c http://soft.vpser.net/lnmp/lnmp1.5.tar.gz
tar zxf lnmp1.5.tar.gz
cd lnmp1.5
./install.sh lnmp

安装配置时注意的点:

  • 安装的Mysql版本(直接回车选择默认的5.5.60或者输入2)
  • 设置Mysql的root账户的密码(建议设置刚才VPS的root一样的密码,或重新设置复杂的密码。必须记下来!)
  • 是否开启InnoDB,支持并发与表间引用(直接回车默认开启或输入Y)
  • 安装的PHP版本(选择php7.1.18,我听说PHP7.2现在有BUG。)
  • 是否开启存储分配器(直接回车默认不开启或输入N)

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

接着就是按任意键开始安装了。安装过程需要三十分钟左右。

B.域名解释

趁着安装的时候,我们就去做一下域名DNS的解释。

域名我一般都在namesilo上面购买。这里有个优惠码:030838。购买域名时输入便是。

DNS解释我一般会在cloudflare上做解释,原因是快!5分钟内就解析完成。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

先在namesilo上的nameserver指向cloudflare.然后去DNS设置那边吧之前默认的解释全部删除。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

在cloudflare上添加网址,然后设置NDS解释。做两个A记录:一个是泛解析@,一个是www.都指向刚才的VPS IP地址。

3.部署虚拟主机+安装WordPress

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

等待了大约35分钟,终于安装好!

同时你打开网址会看见这样的显示:

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

验证完毕后,我们就可以删除lnmp安装包存放在本地的网页了,删除后,将不会再出现上面的页面。

cd /home/wwwroot/default
sudo rm *.php *.html *.gif

A.配置虚拟主机

虚拟私有服务器VPS和虚拟主机vhost的区别是什么呢?

一个服务器可以被分为多个虚拟主机,每个虚拟主机存放不同网站的数据。

所以,现在我们要做的是,创建一个虚拟主机,用来存放www.fuenituresourcing.com网站的数据。

我们需要借助lnmp帮我们进行配置:

lnmp vhost add

你需要配置下面的选项,请牢记配置中的数据库名字、账号、密码

  1. 输入域名:www.fuenituresourcing.com (你可以用1级域名,而不使用www. 我习惯使用。)
  2. 是否需要输入更多的域名?:fuenituresourcing.com (若不输入,直接回车,则以后需要自己通过301重定向,把没有www的域名定向到www域名)
  3. 输入存放网站数据的目录(直接回车,默认是/home/wwwroot/www.fuenituresourcing.com)
  4. 是否开启rewrite规则?这里输入y,会问你是什么类型的框架,输入wordpress
  5. 是否允许phpinfo:我选择y(pathinfo的原理就是将index.php/xxxx/xxx类似的网址当做php来执行)
  6. 是否开启数据库日志:虽然日志记录是比较安全、规范的做法,但是会占用大量存储空间,我们的小VPS就不要开启了。
  7. 是否为网站创建数据库,并且创建一个和数据库同名的数据库账号:输入y
  8. 请输出mysql的root密码(这时的密码是不可见的,你直接输入就是,输入正确会说OK。)
  9. 输入想要使用的名字:输入wordpress (你可以输入其他自己喜欢的名字),这样,你的mysql里面名为wordpress的数据库就专门用于存放www.fuenituresourcing.com的网站数据了。你可以通过名为wordpress的账号来管理名为wordpress的数据库。
  10. 输入想要为新账户设置的密码:用来登录上面创建的新账户
  11. 是否使用SSL认证:选择y(我们需要使用https协议,而不是明文传输的http)
  12. 使用自己已有的证书还是使用Let’s Encrypt申请一个:选择2使用Let’s Encrypt申请。
  13. 接着按任意键创建就行了。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

安装成功后,把这一段信息截图或者复制下来,等下安装WordPress要用到。

B.安装WordPress

去*载下**最新版本的 WordPress 程序文件。

cd /home/wwwroot/www.fuenituresourcing.com
wget https://wordpress.org/latest.zip

*载下**完成后,解压文件:

unzip latest.zip

接着在 Xftp 里刷新一下,可以看到已经解压完成。解压出来一个 WordPress 文件夹。

在 Xftp 里双击 WordPress 文件夹,可以看到 WordPress 程序文件都已经成功解压。

接下来,我们要把所有程序文件移动到上一层,保持在 fuenituresourcing.com 目录之下。并把 wordpress这个文件夹删除。

注意,这里要用到移动文件的命令 “mv” 。在 Xshell 上输入:

mv wordpress/* . (注意:星号后有一个空格,一个点) 回车

这样就完成了所有程序文件的移动。至于wordpress这个空文件夹,你可以直接在 Xftp 里面删除了。

这时候,在浏览器输入自己的网址。进入WordPress 最后安装:

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

Let’s go!

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

输入刚才安装虚拟主机的信息!

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

继续下一步!

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

这里的Site Title 可以先随便填,进去后台可以改。用户名,密码是用来登录你的WordPress后台的。

邮箱地址是用来收一些网站的信息。最后的选项请打上勾,先不要给搜索引擎收录。因为是新网站!先把所有的东西建好才去收录。

LinodeVPS+LNMP1.5+WordPress搭建外贸网站

下一步后,就可以进入后台了。WordPress 安装成功!

现在你的个人网站已经正式上线了,但是如果你尝试安装主题或者安装插件,你可能会发现安装失败,并且向你索要ftp信息,但是,我们不需要安装FTP。

安装失败的原因是,WordPress无法在/home/wwwroot/www.fuenituresourcing.com下进行数据目录的创建和删除,因此尝试使用FTP进行数据操作。我们最好避免这类明文协议安装在我们的服务器上。这时我们只要将目录的所有者改为www,并且增加各用户对此目录的操作权限就行了,-R代表递归操作子目录:

chattr -i /home/wwwroot/www.fuenituresourcing.com/.user.ini
chmod -R 755 /home/wwwroot/www.fuenituresourcing.com
chown -R www /home/wwwroot/www.fuenituresourcing.com

搞定,一切正常!Skr,Skr...

4.设置SSL证书

目前,你的个人网站已经实现了基本功能,其他功能可以通过在各种WordPress社区寻找插件来实现了。但是,你的网站目前默认使用的是http明文传输。正如尽量避免ftp一样,我们也应该避免http协议。

如果你输入www.fuenituresourcing.com和https://www.fuenituresourcing.com,你会发现地址栏上一个是不安全的,一个是带锁的,也就是说我们现在同时支持两种协议,那么接下来我们需要将通过http协议进行的访问请求重定向到https协议访问上。如果你的网站不能进行https访问,请先解决它,不要进行以下操作(一般可能是某个依赖库没安装,安装后通过lnmp ssl add重新申请,或搜索手工配置的技术博客,但一般情况下并不会出现)。

A.301重定向进行全站https传输

目前使用较多的代理服务器有Nginx和Apache,我们使用的是Nginx。如果你使用的是Apache,请通过关键词搜索其他方案。

为了配置代理服务器,我们需要知道本机的Nginx安装在何处,通过whereis命令执行:

whereis nginx.conf

你会看到这样的提示:nginx: /usr/bin/nginx /usr/local/nginx

可以看到,目录在/usr/local/nginx,那么我们进入其配置文件:

cd /usr/local/nginx/conf

你会发现目录下有很多.conf文件,这些都是配置信息,那么怎么修改呢?

代理服务器的对一个网站的服务流程可以概述如下:设置一个server,其中设置了监听端口、服务的域名等配置信息,当监听到对应访问时,通过配置信息进行处理。要注意的是,(域名,端口)组合的server应该是独一的,否则会出现冲突。

基于上述理由,我们在添加配置前要先确认,是否已有对应server:若没有,我们可以直接添加;若有,则需要到对应地方修改。用grep命令进行搜索:

grep -r "fuenituresourcing.com" *
ssl/www.fuenituresourcing.com/www.fuenituresourcing.com.csr.conf:subjectAltName=DNS:www.fuenituresourcing.com,DNS:fuenituresourcing.com
ssl/www.fuenituresourcing.com/www.fuenituresourcing.com.conf:Le_Domain=’www.fuenituresourcing.com’
ssl/www.fuenituresourcing.com/www.fuenituresourcing.com.conf:Le_Alt=’fuenituresourcing.com’
ssl/www.fuenituresourcing.com/www.fuenituresourcing.com.conf:Le_Webroot=’/home/wwwroot/www.fuenituresourcing.com’
vhost/www.fuenituresourcing.com.conf: server_name www.fuenituresourcing.com fuenituresourcing.com;
vhost/www.fuenituresourcing.com.conf: root /home/wwwroot/www.fuenituresourcing.com;
vhost/www.fuenituresourcing.com.conf: server_name www.fuenituresourcing.com fuenituresourcing.com;
vhost/www.fuenituresourcing.com.conf: root /home/wwwroot/www.fuenituresourcing.com;
vhost/www.fuenituresourcing.com.conf: ssl_certificate /usr/local/nginx/conf/ssl/www.fuenituresourcing.com/fullchain.cer;
vhost/www.fuenituresourcing.com.conf: ssl_certificate_key /usr/local/nginx/conf/ssl/www.fuenituresourcing.com/www.fuenituresourcing.com.key;

这下我们看到了,vhost/www.fuenituresourcing.com.conf里存在相关server,我们直接进入修改,实现301重定向的模板如下:

server {
 listen 80;
 server_name www.fuenituresourcing.com fuenituresourcing.com;
 return 301 https://www.fuenituresourcing.com$request_uri;
}

在server 段修改。当然你也可以用XFTP把文件*载下**到本地去修改,再重新上传。

这个模板的意思是:对于www.fuenituresourcing.com:80的访问,server的处理方式是直接return 301+ url ,告诉访问者到这个url。80端口是http端口,433是https端口,所以你也可以return www.fuenituresourcing.com:433$request_uri。

通过这个模板,你可以实现多个域名映射到同一域名,设置无www域名到有www域名的映射等。你甚至可以重定向到百度。

或者你可以直接复制我的配置,只要把网址改回自己的:

server
 {
 listen 80;
 #listen [::]:80;
 server_name www.fuenituresourcing.com fuenituresourcing.com;
 return 301 https://www.fuenituresourcing.com$request_uri;
 }	
server
 {
 listen 443 ssl http2;
 #listen [::]:443 ssl http2;
 server_name www.fuenituresourcing.com fuenituresourcing.com;
 index index.html index.htm index.php default.html default.htm default.php;
 root /home/wwwroot/www.fuenituresourcing.com;
 ssl on;
 ssl_certificate /usr/local/nginx/conf/ssl/www.fuenituresourcing.com/fullchain.cer;
 ssl_certificate_key /usr/local/nginx/conf/ssl/www.fuenituresourcing.com/www.fuenituresourcing.com.key;
 ssl_session_timeout 5m;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
 ssl_session_cache builtin:1000 shared:SSL:10m;
 # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
 ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
 include rewrite/wordpress.conf;
 #error_page 404 /404.html;
 # Deny access to PHP files in specific directory
 #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
 include enable-php-pathinfo.conf;
 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
 {
 expires 30d;
 }
 location ~ .*\.(js|css)?$
 {
 expires 12h;
 }
 location ~ /.well-known {
 allow all;
 }
 location ~ /\.
 {
 deny all;
 }
 access_log off;
 }

修改完毕后,我们需要重启Nginx服务使配置生效:

sudo nginx -s reload

当然也可以使用lnmp一键包将NM重启:

lnmp restart

此外,我们还要配置WordPress的相关信息.

  • 通过WordPress后台管理“设置”中“常规”里面把“WordPress地址(URL)”、“站点地址(URL)”两个地址的http修改为https,“设置”中“多媒体”的“文件的完整URL地址”改为https。

B.SSL证书的自动续期

lnmp1.5版以后,安装包使用更便捷的acme.sh进行申请SSL证书,而不是certbot(因为certbot需要的依赖包较多。不过现在也有certbot-auto版,能自动安装所需依赖库)。

需要注意的是,SSL证书具有有效期,我们需要按时续期。Lnmp1.5 使用的acme.sh它是自动80天续期的,不必操作。

至此,一套完整的使用https访问的个人网站就搭建完成了。

C.安装AVADA主题

直接到wordpress后台上传AVADA主题,而且我建议也吧AVADA的子主题也同时安装。

其中安装成功后,必须安装Fusion Core,与Fusion Builder这两个插件。不然AVADA无法使用。

安装完必要插件后,安装子主题并启用。

然后去到AVADA的System Status 看红字情况。这里是要求把PHP Max Input Vars最小调到1500.

我们点击他的建议查看PHP Max Input Vars究竟在哪里改。这里明显可以在php.ini里面修改。

如何查找这个文件?很简单。先去网站目录新建一个123.php的文件。(名字随便改)

然后在文件里面输入以下内容,并保存:

<?php phpinfo(); ?>

然后到浏览器去键入www.fuenituresourcing.com/123.php。这时候在打开的页面按Ctrl+F查找php.ini就可以找到该文件的位置:

这里显示文件在/usr/local/php/etc/php.ini。

你可以用Vi命令去修改,也可以直接把文件*载下**到本地。

我选择*载下**到本地修改后上传。打开文件查找"max_input_vars" 把数值改为3000(大概在代码段400位置),并把前面的分号去掉。

修改完上传,然后重启一下lnmp:

lnmp restart

回到刚才的红字页面,刷新。你会发现已经OK了。