写之前先回答几个问题:
1,网上类似的教程非常多,为什么写这篇教程?
答:博客网站我搭建过好几次,但是每次搭建都需要再去网上搜教程;然而网上的教程坑很多,甚至有些是错误的,不能完美解决自己的问题,有时候自己踩过的坑还会再踩一次,所以想通过这篇文章记录下来;我会力求把自己遇到的坑全写出来,避免其它人再踩进去。这篇文章我会写的非常详细,所以叫保姆级教程。
2,为什么选择WordPress框架搭建,而不用Hexo,Typecho?
答:并不是不想用Hexo,或者是Typecho;相反我很喜欢这两个框架,它们相对WordPress非常的轻量,加载速度很快,并且原生支持MarkDown编辑器,对于MarkDown爱好者(我)非常有吸引力。但是作为初学者,我第一个接触到的CMS系统就是WordPress,它作为免费的开源项目,已经发展多年,功能强大,插件众多,有非常多免费的主题,安装使用都很方便,很适合初学者使用。
3,为什么在云服务器上自己搭建博客网站,在CS某N,开源中国上写不行吗,或者在GitHub page或者Gitee page上白嫖不香吗?
答:可以,行,白嫖很香;但是在别人的平台写东西多少会有限制,不如在自己的平台上来的随便。我之前在CS某N上写的教程阅读过五万,结果被举报后直接给我删除了。并且云服务器不光可以搭建网站,还可以做很多其它有意思的东西,现在云服务器也非常便宜了,买一个有公网IP的云服务器我觉得是更香的。
废话不多说了,下面开始本篇教程,既然是保姆级教程,肯定是针对之前没用过或玩过服务器的小白的,各位大佬看到请绕过哈(狗头饶命)。
文章的写作框架是:
购买云服务器域名备案安装LNMP框架安装WordPressWordPress主题,插件安装错误汇总
如果安装过程中遇到错误,先去错误汇总里看看是不是类似的错误;不是再去网上搜索。
这是我搭建好的博客网站:十一维智子
这篇教程同步更新在我的博客上,如果你在电脑上可以直接访问我的博客搭建。
欢迎大家访问收藏,未来我持续更新更多有意思的教程。
1,购买云服务器
首先是购买云服务器,现在各种云服务器的大小厂商非常多,这里还是推荐大厂比较保险一些;毕竟小公司说不定哪天就倒闭了,那么你的网站也就没了;这里你可以选择腾讯云或者阿里云,这两家应该是目前国内最大的两家云服务提供商了;两家目前对新用户都有很大的优惠,相信看这篇教程很大一部分之前都没用过云服务器吧;这里我用的是阿里云的轻量服务器。2核4G内存的服务器,新用户三年只需要200元,这是我目前见多最大的优惠了;
阿里云入口:购买链接
由于我是老用户,于是用女朋友的号注册,果断入手三年;这里我算了一下,新用户一年是68元,但是续费需要99元(能续费两次),直接买三年是204元,还是这样划算哈哈。
2,域名备案
购买完服务器后,如果你想通过域名访问的话,你还需要购买一个域名,如果暂时不想购买域名,可以先跳过这一步。
域名可以在万网购买,万网链接,可以选择.top域名,首年只要5元,后面续费也不贵。
买过域名,需要备案了,这个可能需要好几天了,可以在阿里云直接备案,下面是具体的备案流程;推荐在阿里云app上备案,好像更快一点。
3,安装LNMP框架
假设现在你云服务器和域名都准备好了,现在开始搭建网站;阿里云轻量服务器可以直接选择wordpress应用镜像,也就是阿里云直接帮你搭建好了。这里为了学习搭建,我们选择系统镜像:CentOS 8.2,从零开始搭建wordpress。
背景信息:
操作系统:公共镜像CentOS 8.1 64位CPU:2 vCPU内存:4 GiB网络类型:专有网络VPCIP地址:公网IP
当你选择好服务器系统镜像后,阿里云就会为你生成实例了,然后进入到你的控制台(右上角)页面,找到你的轻量服务器实例,这时候你就需要通过SSH远程连接了,这里推荐Xshell或者Finalshell进行连接。
我这里用的是Finalshell进行的连接;主机位置输入你的公网IP,然后输入用户名和密码就可以了。
实例内需要安装并配置的软件版本如下所示。当您使用不同软件版本时,可能需要根据实际情况调整命令和参数配置。
Nginx版本:Nginx 1.16.1
MySQL版本:MySQL 8.0.17
PHP版本:PHP 7.3.5
步骤一:准备编译环境
远程连接Linux实例。
关闭防火墙。
1)运行systemctl status firewalld命令查看当前防火墙的状态。
如果防火墙的状态参数是inactive,则防火墙为关闭状态。
如果防火墙的状态参数是active,则防火墙为开启状态。本示例中防火墙为开启状态,因此需要关闭防火墙。
2)关闭防火墙。如果防火墙为关闭状态可以忽略此步骤。
如果您想临时关闭防火墙,运行命令 systemctl stop firewalld。
说明:这只是暂时关闭防火墙,下次重启Linux后,防火墙还会开启。
如果您想永久关闭防火墙,运行命令systemctl disable firewalld。
说明: 如果您想重新开启防火墙,请参见firewalld官网信息。
关闭SELinux。
1)运行getenforce命令查看SELinux的当前状态。
如果SELinux状态参数是Disabled,则SELinux为关闭状态。
如果SELinux状态参数是Enforcing,则SELinux为开启状态。本示例中SELinux为开启状态,因 此需要关闭SELinux。
2)关闭SELinux。如果SELinux为关闭状态可以忽略此步骤。
如果您想临时关闭SELinux,运行命令setenforce 0。
说明 :这只是暂时关闭SELinux,下次重启Linux后,SELinux还会开启。
如果您想永久关闭SELinux,运行命令vim /etc/selinux/config编辑SELinux配置文件。回车后,把光标移动到SELINUX=enforcing这一行,按i键进入编辑模式,修改为SELINUX=disabled,按Esc键,然后输入:wq并按Enter键以保存并关闭SELinux配置文件。 最后重启系统使设置生效。
说明 :如果您想重新开启SELinux,请参见开启或关闭SELinux。
步骤二:安装Nginx
运行以下命令安装Nginx。
本教程将选用Nginx 1.16.1版本。
dnf -y install /packages/centos/8/x86_64/RPMS/nginx-1.16.1-1.el8.ngx.x86_64.rpm
运行以下命令查看Nginx版本。
nginx -v
查看版本结果如下所示。
mysql Ver 8.0.17 for Linux on x86_64 (Source distribution)
步骤三:安装MySQL
运行以下命令安装MySQL。
dnf -y install @mysql
运行以下命令查看MySQL版本。
mysql -V
查看版本结果如下
mysql Ver 8.0.17 for Linux on x86_64 (Source distribution)
步骤四:安装PHP
运行以下命令添加并更新epel源。dnf -y install epel-releasednf update epel-release
运行以下命令删除缓存的无用软件包并更新软件源。
dnf clean alldnf makecache
启用php:7.3模块。
dnf module enable php:7.3
运行以下命令安装PHP相应的模块。
dnf install php php-curl php-dom php-exif php-fileinfo php-fpm php-gd php-hash php-json php-mbstring php-mysqli php-openssl php-pcre php-xml libsodium
运行以下命令查看PHP版本。
php -v
查看版本结果如下所示。
PHP 7.3.5 (cli) (built: Apr 30 08:37:17) ( NTS )Copyright (c) 1997- The PHP GroupZend Engine v3.3.5, Copyright (c) 1998- Zend Technologies
步骤五:配置Nginx
运行以下命令查看Nginx配置文件的默认路径。cat /etc/nginx/nginx.conf
在http大括号内,查看include配置项。即配置文件的默认路径。
在配置文件的默认路径下,备份默认配置文件。
cd /etc/nginx/conf.dcp default.conf default.conf.bak
修改默认配置文件。 运行以下命令打开默认配置文件。
vi default.conf
按i
进入编辑模式在location
大括号内,修改以下内容。
location / {#将该路径替换为您的网站根目录。root /usr/share/nginx/html;#添加默认首页信息index.php。index index.html index.htm index.php;}
去掉被注释的location ~ \.php$
大括号内容前的#
,并修改大括号的内容。修改完成如下所示。
location ~ \.php$ {#将该路径替换为您的网站根目录。root /usr/share/nginx/html;#Nginx通过unix套接字与PHP-FPM建立联系,该配置与/etc/php-fpm.d/www.conf文件内的listen配置一致。fastcgi_pass unix:/run/php-fpm/www.sock;fastcgi_index index.php;#将/scripts$fastcgi_script_name修改为$document_root$fastcgi_script_name。fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#Nginx调用fastcgi接口处理PHP请求。include fastcgi_params;}
按下说明 Nginx与PHP-FPM进程间通信方式有两种。
TCP Socket:该方式能够通过网络,可用于跨服务器通信的场景。
UNIX Domain Socket:该方式不能通过网络,只能用于同一服务器中通信的场景。
Esc
键,并输入:wq
保存退出文件。 运行以下命令启动Nginx服务.systemctl start nginx
运行以下命令设置Nginx服务开机自启动。
systemctl enable nginx
步骤六:配置MySQL
运行以下命令启动MySQL,并设置为开机自启动。systemctl enable --now mysqld
运行以下命令查看MySQL是否已启动。
systemctl status mysqld
查看返回结果中Active: active (running)
表示已启动。
3.运行以下命令执行MySQL安全性操作并设置密码。
mysql_secure_installation
命令运行后,根据命令行提示执行如下操作。
输入Y
并回车开始相关配置。选择密码验证策略强度,输入2
并回车。策略0
表示低,1
表示中,2
表示高。建议您选择高强度的密码验证策略。设置MySQL
的新密码并确认。本示例设置密码PASSword123!
。输入Y
并回车继续使用提供的密码。输入Y
并回车移除匿名用户。设置是否允许远程连接MySQL
。 不需要远程连接时,输入Y
并回车。需要远程连接时,输入N或其他任意非Y的按键,并回车。 输入Y并回车删除test
库以及对test
库的访问权限。输入Y并回车重新加载授权表。
###步骤七:配置PHP 修改PHP配置文件。 运行以下命令打开配置文件。
vi /etc/php-fpm.d/www.conf
按i
进入编辑模式找到user = apache
和group = apache
,将apache
修改为nginx
按下Esc
键,并输入:wq
保存退出文件。 运行以下命令启动PHP-FPM
。
systemctl start php-fpm
运行以下命令设置PHP-FPM开机自启动。
systemctl enable php-fpm
4,安装WordPress
进入MySQL数据库。使用root用户登录MySQL,并输入密码。密码为您在搭建环境时为数据库设置的密码。mysql -uroot -p
为WordPress网站创建数据库。本教程中数据库名为wordpress
create database wordpress;
创建一个新用户管理WordPress
库,提高安全性。MySQL
在5.7版本后默认安装了密码强度验证插件validate_password
。您可以登录MySQL
后查看密码强度规则。
show variables like "%password%";
在本教程中创建用户user
,新用户密码为PASSword123.
。
create user 'user'@'localhost' identified by 'PASSword123.';
赋予用户对数据库wordpress的全部权限。
grant all privileges on wordpress.* to 'user'@'localhost';
使配置生效。
flush privileges;
退出MySQL。
exit;
下载并解压WordPress,然后移动至网站根目录。进入Nginx网站根目录,下载WordPress。
cd /usr/share/nginx/htmlwget /wordpress-5.4.2.zip
说明 下载过慢或失败时,可以尝试运行命令
wget /latest-zh_CN.zip
下载WordPress(为WordPress简体中文网站,通过该命令下载的WordPress默认为中文版本)。同时您需要注意,后续操作中压缩包的名称必须替换为latest-zh_CN.zip。
解压WordPress压缩包。
unzip wordpress-5.4.2.zip
将WordPress安装目录下的wp-config-sample.php文件复制到wp-config.php文件中,并将wp-config-sample.php文件作为备份。
cd /usr/share/nginx/html/wordpresscp wp-config-sample.php wp-config.php
编辑wp-config.php文件。
vim wp-config.php
按i
键切换至编辑模式,根据已配置的WordPress数据库信息,修改MySQL相关配置信息,修改代码如下所示。WordPress网站的数据信息将通过数据库的user用户保存在名为wordpress的数据库中。
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** ///** WordPress数据库的名称 */define('DB_NAME', 'wordpress');/** MySQL数据库用户名 */define('DB_USER', 'user');/** MySQL数据库密码 */define('DB_PASSWORD', 'PASSword123.');/** MySQL主机 */define('DB_HOST', 'localhost');
修改完成后,按下Esc
键,并输入:wq
保存退出文件。
修改Nginx配置文件
运行以下命令打开Nginx配置文件。vi /etc/nginx/conf.d/default.conf
按i
键进入编辑模式。在location /大括号内,将root后的内容替换为WordPress根目录。本示例中根目录为/usr/share/nginx/html/wordpress。
在location ~ .php$
大括号内,将root
后的内容替换为WordPress根目录。
修改完成后按Esc
键,输入:wq
保存并退出配置文件。
运行以下命令重启Nginx服务。
systemctl restart nginx
安装并登录WordPress网站
在本地物理机上使用浏览器访问ECS实例公网IP
,进入WordPress安装页面。
填写网站基本信息,然后单击安装WordPress。填写信息参数说明
站点标题:WordPress网站的名称。例如:demowp。用户名:登录WordPress时所需的用户名,请注意安全性。例如:testwp。密码:登录WordPress时所需的密码,建议您设置安全性高的密码。例如:Wp.123456。您的电子邮件:用于接收通知的电子邮件。例如:1234567890@。
单击登录。
输入在安装WordPress时设置的用户名testwp
和密码Wp.123456
,然后单击登录。
成功进入您个人的WordPress网站。
5,WordPress主题,插件安装
此时,你已经进入到wordpress后台了,网站有默认的主题,但是不好看,你可以点击外观>主题>安装主题。挑选你喜欢的主题。这里我的主题用的是Blocksy。
你还可以点击插件安装一些必要的插件。
如图,这里推荐你安装这几个插件。
Elementor编辑器支持拖拽网站,实现可视化网站开发。
6, 错误汇总
1,当你安装完成wordpress后,后台会让你更新,你点击更新后,会让你连接ftp,但是这个是连不上的。
解决方案:
在网站安装根目录下,找到wp-config.php这个文件,本篇教程是如下目录;
cd /usr/share/nginx/html/wordpress
修改:在wp-config.php中添加下列三行代码:
vim wp-config.php
define("FS_METHOD", "direct"); define("FS_CHMOD_DIR", 0777); define("FS_CHMOD_FILE", 0777);
然后按Esc后,输入:wq
退出编辑器
执行如下操作,由于我将网站名由wordpress改成foxkee了,你应该将foxkee换成wordpress。
然后回车,就可以正常更新了。
如果觉得《【保姆级教程】基于WordPress在阿里云服务器上搭建个人博客网站》对你有帮助,请点赞、收藏,并留下你的观点哦!