曾有不少人问过我怎么搭建自己的博客。其实搭建个人博客的方式有很多,有使用Git Page的,有使用一些博客平台的,也有自己购买网站空间或服务器搭建的,更有大神索性自己开发一套博客程序来用的。本文所介绍的方法全部基于Linux系统服务器和LEMP(即Linux、Nginx、Mysql和PHP),使用著名的WordPress程序进行安装搭建。
本文介绍的这种方式搭建的博客一般称为“独立博客”,即有自己的独立域名和服务器ip(这里暂时不说空间主机),这也是我对于真正想长期拥有自己博客的人最推荐的方式。与之对应的是各种商业公司提供的博客平台,并且往往没有自己的独立域名。“独立博客”的“地位”要比使用第三方博客平台高一些,就像“购买一套房产”和“租住一间卧室”的区别。所以优缺点很明显,“独立博客”相对来说,更费时间和精力,但好处是自由性高,可以自己任意改造,不受房东拘束。
独立博客的标配是购买一个一级域名,和一个某某云的服务器实例,如果选择使用位于中国大陆机房的服务器,还需要进行备案。
对于服务器的购买,我的经验是,如果你的博客网站面向的群体是国内用户,你可以直接购买阿里云或腾讯云服务器进行搭建。如果你的博客是面向国外群体看的,那你可以考虑购买位于中国香港的服务器,或者美国的服务器,而位于欧洲的服务器可能需要考虑GDPR的问题。
搭建博客还需要准备好一个域名。域名属于抢注型商品,比如qq.com已经被鹅厂注册了,你就不可能买到了,即使你出1亿元也不可能买到,所以,注册一个又短又好记,有含义的域名,是一个很重要的投资,有些域名,一旦错过就不再。
云服务器厂商的选择是另一个要点,选的好能省很多心,选的不好会让人天天费心,甚至还费钱。如果实在不会选,而且也对价格也不太敏感的话,那么就选大厂商,一般来说准没错。国内厂商有阿里云、腾讯云、华为云和京东云、百度云(可不是百度云盘啊)、网易云(也不是网易云音乐= =)等,国外的厂商主要是Microsoft Azure(有中国机房)、Amazon Cloud(有中国机房)、Google Cloud以及Digital Occean、Linode、Vultr等。每个厂商都有各种各样不同价位的产品,根据自己的需要选择最合适的就行。云计算厂商卖的是云服务,所以,大厂商的价格偏高是普遍性的,尤其是Microsoft Azure的产品,价格高到我无法接受的程度。
当我们注册完域名,购买完服务器后,我们就需要开始为搭建博客做准备了。首先是解析域名,我们以阿里云为例:
在域名解析处,通过添加A记录,并且解析一个主机记录为blog,记录值为8.8.8.8的二级域名,这样,以我的博客为例,我们就可以让访客通过输入blog.ailemon.me访问到我的博客了。但是这时候刚解析完域名时是打不开的,我们还需要在服务器上安装博客程序,安装前请确保服务器的22端口、80端口和443端口的防火墙规则是开放的。
首先我们通过SSH登录服务器,进入命令行终端环境,用户名和密码以及公网IP地址请参考云服务商提供的信息。
$ ssh @
进入服务器控制终端后,我们需要执行一些更新软件源的操作,如果不是root用户的话,命令前需加“sudo ”指令。
对于CentOS和Fedora等系统需执行:
$ yum update
对于Ubuntu和Debian等系统需执行:
$ apt update
$ apt upgrade
以下内容全部以Ubuntu Server 18.04系统为准,其他系统请参考相关过程使用对应的命令进行操作。接下来是安装基础LEMP环境:
$ apt install nginx php-fpm mysql-server mysql-client php-mysql
以及一些PHP扩展模块:
$ apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
Ubuntu 18.04系统新安装的mysql数据库需要进行初始化操作。
$ mysql_secure_installation
然后一步一步根据提示操作,其中默认root用户密码必须设置为4级复杂度,即大写字母、小写字母、特殊符号和数字的混合,否则初始化程序会因密码安全强度不够而失败。
首先登陆数据库:
$ mysql -u root -p
创建博客专用的wordpress数据库:
mysql > CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
创建博客专用的wordpress用户“wordpressuser”,密码为“password”,此处为了服务器网站安全,请替换为自己设定的用户名和密码:
mysql > GRANT ALL ON wordpress.* TO ‘wordpressuser’@’localhost’ IDENTIFIED BY ‘password’;
更新mysql的用户权限并退出:
mysql > FLUSH PRIVILEGES;
mysql > exit;
上传我们已经从官网下载的解压后的wordpress程序,建议放在 /var/www/ 目录下,并给nginx进程以操作wordpress网站程序的权限。
$ chown -R www-data:www-data wordpress
编写nginx配置文件:
$ nano /etc/nginx/sites-available/wordpress.conf
打开后,向其中写入(域名、网站路径等请根据自己的实际情况替换):
server {
server_name blog.ailemon.me;
listen 80;
listen [::]:80;
root /var/www/wordpress;
index index.php index.html;
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
将该配置文件软链接到site-enabled目录下,并重启Nginx:
$ cd /etc/nginx/site-enabled
$ ln -s ../site-available/wordpress.conf ./
$ nginx -s reload
然后我们在浏览器访问http://blog.ailemon.me(替换为你自己的实际域名)就可以看到并进入博客网站安装程序了。
1.选择自己使用的语言
2.根据提示配置需要的相关安装信息,包括刚才数据库的配置信息,博客网站登陆用户的用户名密码等,并继续,直到安装成功。
3.所有这些步骤完成后,你的博客就顺利搭建起来啦,接下来,请开始布置你的网页样式,并且开始你的个人表演!!记得不要半途而废哦!!