[sta_anchor id=”vps”]1.VPS和域名的配置[/sta_anchor]
VPS中我选用了Linode VPS的5刀配置的,当然你可以选择其他的VPS也是可以的。但我个人喜欢Linode,毕竟操作简单。至于如何购买Linode,我这里就不说了。如果你真的不懂的话可以参考hunk或者料神的博客。
https://www.imhunk.com/linode-faq/
https://www.liaosam.com/linode-vps-intro.html
调过购买教程后,直接配置VPS。
我选了新加坡地区的。
Root Password 尽量设置复杂一点,而且必须记下来!记下来!记下来!等下要用到。
点了Rebuild后等个10几秒初次化。
初次化后直接点Boot,开启!
一切准备好,拿起你的SSH工具,准备开波。Skr,skr…
[sta_anchor id=”lnmp”]2.安装lnmp包[/sta_anchor]
工具:Xshell + Xftp,自行去官网下载。官网地址:www.netsarang.com 下载时选择一下你是 home use,即可免费下载。
打开xshell点新建。
输入自己喜欢的名称,主机填刚才vps的IP地址,端口22,间隔45。然后先别急点确定!
点击左上角‘用户身份验证’用户名输入root,密码:输入刚才开通配置vps时的密码(就是刚才说记住的那个密码)。然后点确定。
然后点击链接刚才新建的,在弹框的这里点击“接受并保存”下次链接就不会再弹出来。除非你更改了密码。
链接后就开始表演真正的技术了…
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)
接着就是按任意键开始安装了。安装过程需要三十分钟左右。
B.域名解释
趁着安装的时候,我们就去做一下域名DNS的解释。
域名我一般都在namesilo上面购买。这里有个优惠码:030838。购买域名时输入便是。
DNS解释我一般会在cloudflare上做解释,原因是快!5分钟内就解析完成。
先在namesilo上的nameserver指向cloudflare.然后去DNS设置那边吧之前默认的解释全部删除。
在cloudflare上添加网址,然后设置NDS解释。做两个A记录:一个是泛解析@,一个是www.都指向刚才的VPS IP地址。
[sta_anchor id=”wordpress”]3.部署虚拟主机+安装WordPress[/sta_anchor]
等待了大约35分钟,终于安装好!
同时你打开网址会看见这样的显示:
验证完毕后,我们就可以删除lnmp安装包存放在本地的网页了,删除后,将不会再出现上面的页面。
cd /home/wwwroot/default
sudo rm *.php *.html *.gif
A.配置虚拟主机
虚拟私有服务器VPS和虚拟主机vhost的区别是什么呢?
一个服务器可以被分为多个虚拟主机,每个虚拟主机存放不同网站的数据。
所以,现在我们要做的是,创建一个虚拟主机,用来存放www.fuenituresourcing.com网站的数据。
我们需要借助lnmp帮我们进行配置:
lnmp vhost add
你需要配置下面的选项,请牢记配置中的数据库名字、账号、密码:
- 输入域名:www.fuenituresourcing.com (你可以用1级域名,而不使用www. 我习惯使用。)
- 是否需要输入更多的域名?:fuenituresourcing.com (若不输入,直接回车,则以后需要自己通过301重定向,把没有www的域名定向到www域名)
- 输入存放网站数据的目录(直接回车,默认是/home/wwwroot/www.fuenituresourcing.com)
- 是否开启rewrite规则?这里输入y,会问你是什么类型的框架,输入wordpress
- 是否允许phpinfo:我选择y(pathinfo的原理就是将index.php/xxxx/xxx类似的网址当做php来执行)
- 是否开启数据库日志:虽然日志记录是比较安全、规范的做法,但是会占用大量存储空间,我们的小VPS就不要开启了。
- 是否为网站创建数据库,并且创建一个和数据库同名的数据库账号:输入y
- 请输出mysql的root密码(这时的密码是不可见的,你直接输入就是,输入正确会说OK。)
- 输入想要使用的名字:输入wordpress (你可以输入其他自己喜欢的名字),这样,你的mysql里面名为wordpress的数据库就专门用于存放www.fuenituresourcing.com的网站数据了。你可以通过名为wordpress的账号来管理名为wordpress的数据库。
- 输入想要为新账户设置的密码:用来登录上面创建的新账户
- 是否使用SSL认证:选择y(我们需要使用https协议,而不是明文传输的http)
- 使用自己已有的证书还是使用Let’s Encrypt申请一个:选择2使用Let’s Encrypt申请。
- 接着按任意键创建就行了。
安装成功后,把这一段信息截图或者复制下来,等下安装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 最后安装:
Let’s go!
输入刚才安装虚拟主机的信息!
继续下一步!
这里的Site Title 可以先随便填,进去后台可以改。用户名,密码是用来登录你的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…
[sta_anchor id=”ssl”]4.设置SSL证书[/sta_anchor]
目前,你的个人网站已经实现了基本功能,其他功能可以通过在各种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了。
如果你还有其他红字问题照样按照它给你的提示去操作,或者参考这两篇文章:
0 Comments