写在前面
在教程之前,先给大家show 一下效果,欢迎你去点点点~
网站地址:https://zhangfeidezhu.com
准备工作
一台Linux服务器
在开始搭建网站之前,当然第一步是购买一个属于自己的 『服务器』。
你可以选择如下渠道进行购买:阿里云、腾讯云、Ucloud等的大厂服务器,不要贪图便宜去买国外的服务器厂商,因为速度很慢很多,很影响体验。
我的就是在腾讯云上购买的,刚开始买个最低配置的服务器就行,以后不够用了,可以慢慢升级,扩容。可以先领个券,再购买更实惠:点击领券
一个专属的域名
买了服务器后,你就会拥有一个公网ip,如果网站搭建起来了,你完全可以使用这个 ip 去访问,但仅供开发、测试使用。
如果要真正运营起来,想要有流量,还得搞一个域名,方便你推广。
域名的购买建议和上面服务器使用同一个厂商,可以省去一些麻烦。比如阿里云购买的域名要备案是需要你在阿里云下有一台服务器的。
一个远程登陆软件
由于后面我使用的是手工部署的方式,所以要登陆服务器进行操作。
登陆的方法有两种:
- 厂商提供的控制台界面登陆:Workbench和VNC,这种方法对于不经常登陆服务器运维的人来说,还是可以的,但是不推荐交互比客户端的感觉差一些。
- 自己下载专业的远程登陆软件:Tabby、Xshell或者CRTSecure,在使用这些远程登陆软件时,你需要在服务器厂商控制台上面先获取到三个信息服务器公网IP、服务器SSH端口、服务器远程连接密码。这里我选择Tabby,因为这个是免费的,直接使用就可以,界面也比较简洁
部署方式选择
部署方式,可分为两种
- 使用服务器管理软件,实现自动化部署,最著名的就是宝塔面板。
- 手动登陆远程服务器,实现脚本化部署。
那么如何选择呢?
- 使用宝塔部署,门槛低,只要会界面点一点即可。
-
而使用脚本自己手工部署,需要你学会远程登陆服务器:使用Xshell或者直接使用厂商提供的在线SSH窗口
一些Linux的基本操作:比如Vi/Vim的使用,目录及文件的基本操作等
在这里建议大家跟着我使用第二种方法,也就是手工使用脚本进行部署,更精细的部署步骤会让你对WordPress的运作方式有更深的理解,比如使用了哪些软件,装了哪些包?自己搭建了网站,难免以后会碰到各种各样的服务器问题,尽早的接触Linux,熟悉各项配置,对以后的运维工作会有很有帮助。
部署LNMP
什么是LNMP
LNMP是Linux+Nginx+MySQL+PHP组合的简写。
类似的组合还有:
LAMP的全称是Linux+Apache+MySQL+PHP
LNAMP的全称是Linux+Nginx+Apache+MySQL+PHP
- Linux是类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
- Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
- Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
- PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
- MySQL是一个关系型数据库管理系统。
这些软件一个一个安装比较费力,特别是数据库。有人把这些软件的安装部署过程集成为一个Shell脚本,只要下载并执行它就可以直接安装了。
安装LNMP
下载LNMP安装脚本(版本查看:https://lnmp.org/download.html)
|
wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz |
解压并执行它
|
tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp |
接下来会出现大量的选项,如果你不是很懂各个选项间的区别,按默认就行。
运行脚本后,首先会让你选择数据库的版本,没有特殊需要,建议使用默认配置,直接回车或输入序号再回车。
选好数据库,会让你设置数据库root用户的密码,此时如果你直接回车,会默认设置为lnmp.org#随机数字,在输入密码的时候,对于新手有一点注意:如果输入有错误需要删除,需要按住Ctrl再按Backspace键进行删除。密码输好后,回车进入下一步
询问是否需要启用MySQL的InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入y。如果确定确实不需要该引擎可以输入n,(MySQL5.7+版本无法关闭InnoDB),输入完成,回车进入下一步;
选择PHP版本,建议安装PHP7+的版本,回车进入下一步;
选择是否安装内存优化:可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装。
如果是LNMPA或LAMP的话还会提示设置邮箱和选择Apache:"Please enter Administrator Email Address:";
设置管理员邮箱,该邮箱会在报错时显示在错误页面上。再选择Apache版本:按提示输入对应版本前面的数字序号,回车。
提示"Press any key to install…or Press Ctrl+c to cancel"后,按回车键确认开始安装。
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin等软件及相关的组件。安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。
如果显示“Nginx: OK,MySQL: OK,PHP: OK”,表明安装成功。
最后几行的输出
- 3306 端口是 MySQL 监听的
- 80 是 HTTP 端口
- 22 是 SSH 端口
配置Nginx
安装好后,使用如下指令查看nginx配置文件(如果你的服务器上找不到该文件,那请使用 find / -name nginx.conf 搜索一下)
|
cat /usr/local/nginx/conf/nginx.conf |
你会看到如下内容:
上图表明,安装好的nginx将网站的根目录设置为/home/wwwroot/default,这个可以根据自己的喜好进行修改。 用浏览器打开http://ip,可以看到如下内容(如果访问不了,有可能是你服务器的安全组没有开放80端口,去控制台开放一下即可) 其实这就是一个简单的网页demo了,自己随便修改index.html,就会有不同的内容。
安装WordPress
WordPress是使用PHP语言开发的博客平台,也就是一个博客框架,上一步安装的LNMP,只是保证了WordPress的基本运行环境, 想要把你的个人网站跑起来,咱还需要安装WordPress。方法也很简单,下面跟着操作就行。
- 安装 wordpress 安装包并解压到 /home/wwwroot
|
wget https://cn.wordpress.org/latest-zh_CN.zip && unzip latest-zh_CN.zip -d /home/wwwroot |
- 登录MySQL(密码在前面部署LNMP时你设置过),创建wordpress表,创建完后输入exit退出。
|
mysql -u root -p |
|
Enter password: |
|
MySQL > create database wordpress; |
- 使用vim修改nginx配置文件(不会vim的自行百度)
|
vim /usr/local/nginx/conf/nginx.conf |
找到网站根目录位置,如下图所示:
修改成如下内容:
随后,使用:wq保存配置退出即可。
验证nginx是否有配置错误:
|
nginx -t |
如果出现ok,successful字样,说明没有错误。没有错误,重新加载nginx:
|
nginx -s reload |
修改wordpress目录权限:
|
cd /home/wwwroot && chown -R www wordpress/ && chgrp -R www wordpress/ |
用浏览器打开http://ip/wp-admin/setup-config.php,你可以看到如下内容:
现在就开始,进行安装。填写信息如下:
其中,*** 改为你设置的MySQL数据库密码。点击提交,出现如下内容:
在/home/wwwroot/wordpress下,创建并编写wp-config.php文件:
|
vim wp-config.php |
将上图内容复制进去并:wq保存退出,然后点击现在安装。最后就是配置用户信息了,这个是你登录wordpress用户后台的,要记住:
最后点击安装WordPress,安装成功会出现如下界面:
点击登录,输入账户密码,就可以登录自己的 wordpress 后台了。
这时候你使用浏览器去访问http://ip,就可以看到你搭建的第一个网站了。
此时你看到的这个网站,是wordpress默认为你安装的免费主题(应该有三个),可能并不是那么的好看,但没关系,后面你可以自己挑选一个自己合适的主题,把你的网站装扮得有模有样。
装扮你的网站
到这里,你的网站部署已经全部完成,但是还差最后一步,也是使用WordPress最为核心的一步:让你的网站看起来更加专业,更加成熟。
为此我们需要做两件事:
- 安装主题:让网站变得好看
- 安装插件:丰富网站的功能
安装主题
同样都使用的WordPress的网站,外观上却天差地别。有的很酷炫,有点很简约,这是因为选了不同的主题。在你安装完WordPres后,本身就自带了几个免费的主题。几乎没人会使用它们,因为有点丑。在WordPress的自带了主题商店,里面有大量的免费主题,各式各样的都有,可能有你喜欢的。
你也可以通过搜索引擎找到了一个你喜欢的主题,甚至自己开发一个主题,开发主题可以自己百度,都到了开发这个程度,应该就不用我这里教了。
安装插件
前期不用安装太多的插件,基本够用就行,下面列举一下比较常用:
- WP User Avatar:原生WordPress默认使用Gravatar头像,用户(包括访客评论)的头像调取都是根据所留邮箱匹配的Gravatar头像。 没有Gravatar怎么办?只要装上WP User Avatar这个插件就能可以使用WordPress 媒体库中的图片作为默认头像了。
- WP-PostViews:安装了WP-PostViews,就可以统计你文章的浏览次数。
- WP Editor.md:这是一个WordPress中最好,最完美的Markdown编辑器。可以像md2all和mdnice那样,即时显示Markdown的渲染效果。
- Simple Custom CSS:在修改WordPress主题时,CSS修改是最经常用到的方法,比如调整字体、调整颜色、边距之类的都需要用到自定义的CSS代码。虽然说WordPress本身提供了CSS修改的功能,不过使用起来有很多的弊端,其中最麻烦的一点就是每次更换或者更新主题之前的修改都会消失,需要重复的添加。使用Simple Custom CSS这个插件可以避免这种尴尬,安装后他会在外观下新增一个自定义CSS的选项。
- 百度搜索推送管理:百度搜索推送管理插件是一款针对WP开发的功能非常强大的百度和Bing搜索引擎收录辅助插件。 利用该插件,站长可以快速实现百度搜索资源平台和Bing站长平台URL数据推送及网站百度收录数据查询等。
- Smart SEO Tool:Smart SEO Tool是一款专门针对WordPress开发的智能SEO优化插件,与众多WordPress的SEO插件不一样的是,Smart SEO Tool更加简单易用,帮助站长快速完成WordPress博客/网站的SEO基础优化。
部署https
要部署https,首先要去有资质的平台申请证书,如百度云,腾讯云等,这里我选择腾讯云。
然后按流程一直点击下一步,知道申请成功,然后再证书管理里面,下载到本地后,你会得到一个zip包,解压一下,就可以看到证书文件及私钥。
因为这里使用的是Nginx,因此获取Nginx下的两个文件上传到我的服务器上的nginx目录下。
先使用 find 命令查找一下你的 nginx.conf 路径
|
$ find / -name nginx.conf |
|
/usr/local/nginx/conf/nginx.conf |
你的证书文件可以和nginx.conf放在同一目录下
|
/usr/local/nginx/conf |
接下来使用vim编辑该文件,找到server,添加如下行。
|
server |
|
{ |
|
listen 443 ssl; |
|
# 注释掉该行 |
|
# listen 80 default_server reuseport; |
|
|
|
#证书文件名称 |
|
ssl_certificate 1_iswbm.com_bundle.pem; |
|
#私钥文件名称 |
|
ssl_certificate_key 0_iswbm.com.key; |
|
|
|
... |
|
} |
最后重启nginx
|
$ systemctl restart nginx |
尝试用https访问一下我的网站https://zhangfeidezhu.com ,成功了。
到了这里,还差最后一步,重写http到https,也就是使用http访问你的网站,会跳转到https访问。这里很简单修改一下nginx.conf就好。
|
##这里是将http默认的80端口重定向到https |
|
server |
|
{ |
|
listen 80; |
|
server_name zhangfeidezhu.com; |
|
return 301 https://zhangfeidezhu.com$request_uri; |
|
} |
|
|
|
## https |
|
server |
|
{ |
|
listen 443 ssl http2; |
|
ssl_certificate zhangfeidezhu.com_bundle.crt; |
|
ssl_certificate_key zhangfeidezhu.com.key; |
|
server_name _; |
|
index index.html index.htm index.php; |
|
root /home/wwwroot/wordpress; |
|
} |
这里后台再设置一下就大功告成了。
博客原文:https://zhangfeidezhu.com/?p=99