手把手教你从零基础开始搭建个人网站

article/2025/6/30 13:48:43

曾有不少人问过我怎么搭建自己的博客。其实搭建个人博客的方式有很多,有使用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的产品,价格高到我无法接受的程度。

二、域名的解析和服务器环境的配置

1.解析域名

当我们注册完域名,购买完服务器后,我们就需要开始为搭建博客做准备了。首先是解析域名,我们以阿里云为例:

在域名解析处,通过添加A记录,并且解析一个主机记录为blog,记录值为8.8.8.8的二级域名,这样,以我的博客为例,我们就可以让访客通过输入blog.ailemon.me访问到我的博客了。但是这时候刚解析完域名时是打不开的,我们还需要在服务器上安装博客程序,安装前请确保服务器的22端口、80端口和443端口的防火墙规则是开放的。

2.安装服务器基础环境

首先我们通过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

3.初始化数据库服务

Ubuntu 18.04系统新安装的mysql数据库需要进行初始化操作。

$ mysql_secure_installation

然后一步一步根据提示操作,其中默认root用户密码必须设置为4级复杂度,即大写字母、小写字母、特殊符号和数字的混合,否则初始化程序会因密码安全强度不够而失败。

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;

5. 配置Nginx服务器

上传我们已经从官网下载的解压后的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(替换为你自己的实际域名)就可以看到并进入博客网站安装程序了。

三、安装WordPress博客

1.选择自己使用的语言

 

2.根据提示配置需要的相关安装信息,包括刚才数据库的配置信息,博客网站登陆用户的用户名密码等,并继续,直到安装成功。

 

3.所有这些步骤完成后,你的博客就顺利搭建起来啦,接下来,请开始布置你的网页样式,并且开始你的个人表演!!记得不要半途而废哦!!

 


http://chatgpt.dhexx.cn/article/I7HMnj4h.shtml

相关文章

手把手从零到有的个人网站开发

前言 很多人都想有一个自己的网站。那么,刚好Romki最近打算开始创建一个自己的个人网站。 就开始和我一起从零开始吧! 一、整个云服务器吧 Romki 这里买的是腾讯的云服务器,具体购买什么鸭子的服务器,如果大家强烈需要&#xff0…

【个人网站开发 · 记录三】制定开发方案阶段 —— 技术角度分析如何去做一个个人网站

前言 当下的自媒体时代,体现在一个爱折腾的程序猿身上,那么最好的方式莫过于 —— 搭建自己的个人网站。网站上可以有自己的个人介绍,技术博客,项目总结,生活分享等等。简直是COOL !(面试神器有…

【个人网站开发 · 记录二】UI设计阶段 —— 设计角度分析如何去做一个个人网站

前言 当下的自媒体时代,体现在一个爱折腾的程序猿身上,那么最好的方式莫过于 —— 搭建自己的个人网站。网站上可以有自己的个人介绍,技术博客,项目总结,生活分享等等。简直是COOL !(面试神器有…

个人网站开发——全栈项目开发日记

文章目录 第一种部署方式(前端打包到后端)打包前端后端 第二种部署方式(Nginx代理-推荐)nginx代理配置访问路径端口后端端口 服务器运行传到服务器在服务器后台运行 功能实现记录axios请求使后端响应数据对访问者ip获取对访问者ip…

c语言:输入字符串,并判断字符串的长度

c语言中表示输入数据的类型,其格式符和意义下表所示。 格式 字符意义 d 输入十进制整数 o 输入八进制整数 x 输入十六进制整数 u 输入无符号十进制整数 f或e 输入实型数(用小数形式或指数形式) c 输入单个字符 s 输入字符串 转义字符 转义字符是一种特殊的字符常量。…

C语言:字符数组的输入输出

目录 用printf输出 用scanf输入 用gets输入 用puts输出 用printf输出 输出方法1&#xff1a;printf 逐个字符输出。 void main(void){ char c[ ] "I am happy"; int i; for(i 0; i < 10; i){ printf("%c", c[i]); } pri…

c语言---字符输入

1 getchar() getchar接受一个字符 可输入任何字符 结束标志由自己决定,需在后面手动补全\0 输入 &#xff1a;abcd d 打印&#xff1a;6 2 fgets() fgets(); 函数原型 char *fgets(char *str, int n, FILE *stream) 输入读取&#…

C语言学习(十一)之字符输入/输出

文章目录 一、单字符I/O&#xff1a;getchar()和putchar()二、缓冲区2.1 什么是缓冲区2.2 为什么需要缓冲区2.3 缓冲区分类2.3.1 完全缓冲I/O2.3.2 行缓冲I/O 三、结束键盘输入3.1 文件、流和键盘输入3.2 文件结尾 四、重定向和文件4.1 重定向输入4.2 重定向输出4.3 组合重定向…

C语言_输出字符串和获取字符串

输出字符串和获取字符串 01——输出字符串 使用puts函数来输出字符串 使用printf函数来输出字符串 通过puts函数和printf函数都能够实现字符串输出 02——获取字符串 使用scanf函数来获取字符串 使用gets()函数来获取字符串. gets函数原型&#xff1a;char* gets(char *st…

c语言之printf函数输出字符数据

//用printf函数输出字符数据 #include <stdio.h> int main() {//定义两个变量char c a;int i 97;//输出变量%c以字符形式输出&#xff0c;%d以十进制整型形式输出printf("c%c,c%d\n", c, c);printf("i%c,i%d\n", i, i);return 0; } 运行结果&…

在C语言中怎样定义一个字符串并输入输出

在C语言中没有字符串类型&#xff0c;用字符数组处理字符串 字符数组定义&#xff1a;char 数组名 [常量表达式][常量表达式] 说明&#xff1a;一维字符数组&#xff0c;用于存储和处理一个字符串 。二维字符数组&#xff0c;用于同时存储和处理多个字符串 输入输出方法&…

用C语言输出一个字符串的所有子串

前言 啥是子串? 串中任意个连续字符组成的子序列称为该串的子串。 包含子串的串相应地称为主串。 ①空串是任意串的子串。 ②任意串是其自身的子串。 例&#xff1a;字符串"12"它的字串为"1",“2”,“12”,空串。共四个字串。 原理 懂了子串的概念我们…

C语言 字符数据输入输出

文章目录 C语言的标准库函数头文件 字符数据的输入输出putchar 函数&#xff08;单字符输出函数&#xff09;输出一个字符&#xff1a;输出控制字符输出转义字符 getchar 函数&#xff08;单字符输入函数&#xff09; 所谓数据的输入输出是从计算机角度出发的。 C语言本身没有…

c语言输出汉字字符串,c语言怎么输出字符串

C语言输出简单的字符串&#xff0c;例如个人信息的相关字符串&#xff0c;包括姓名、出生日期、号码。我们可以通过printf()函数直接打印输出指定信息字符串。 推荐教程&#xff1a;《C视频教程》 下面我们就通过简单的代码示例&#xff0c;给大家介绍c语言输出个人信息相关字符…

C语言程序——输出字符

为学日益&#xff0c;为道日损 文章目录 前言一、使用C语言一般格式显示字符二、编写代码2.运行结果 总结 前言 一个标准的C语言程序具有的一般格式&#xff1a; 预处理命令和全局性的声明 main() 主函数 { 局部变量声明 语句序列 } fun1()函数1 { 局部变量声明 语句序列 } fu…

C语言字符和字符串的输入与输出

C语言 一、输入单个字符 1、scanf函数输入单个字符 C语言scanf输入时缓冲区问题 scanf函数是标准输入流&#xff08;从键盘接收数据)&#xff0c;接收的数据放入输入缓冲区中&#xff0c;其中就包括在键盘输入的空格、回车这类字符&#xff0c;当你用%d接收时是不会影响的&a…

【C语言--字符数据的输入输出】

1、putchar函数–字符输出函数 功能是在显示器上输出单个字符。形式为&#xff1a;putchar(字符变量); 例如&#xff1a; putchar(A);//输出大写字母A putchat(x);//输出字符变量x的值2、getchar函数–键盘输入函数 功能是从键盘上输入一个字符。形式为&#xff1a;getchar(…

C语言打印输出字符串的几种方法

思路分析 知识点补充 1&#xff0c;在C语言中&#xff0c;一维数组的数组名实际上就是指向数组首项元素的指针。 2&#xff0c;如果指针p已经指向一个字符串&#xff0c;判断字符串是否结束&#xff0c;一般采用while(*p!\0)的办法。 以打印输出arr[30]"hello world&qu…

C语言——字符串、打印字符串的三种方式

文章目录 前言一、字符串1.字符串常量2.注意 scanf() 读取字符串例如&#xff0c;scanf() 输入中间有空格的字符串后观察打印情况 3.sizeof()函数计算字符串尺寸&#xff0c;strlen()函数计算字符串长度例子&#xff1a; 4.字符数组定义和初始化(1)传统的字符集合赋值&#xff…

C语言 格式输入输出与字符输入输出

提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、 格式输入输出 1、格式输出——printf函数 &#xff08;1&#xff09;格式 printf("格式控制"&#xff0c;输出列表项)&#xff1b; 格式控制分为格式声明&#xff08;%和格式字符&am…