利用家里的旧电脑搭建服务器和博客

1,886 阅读8分钟

一. 选型

根据需求的技术选型

1.Nginx + 花生壳 + WordPress + PHP + MySQL + SQLynx

2.Nginx + 花生壳 + hexo + Node.js + npm

如果只搭建博客的话,也可以下面的hexo方案,考虑到WordPress功能更强大一些,后期可以做点别的,选择了这种方案.

本文只介绍第一种搭建方案.

其中 WordPress + PHP + MySQL是一套组合,其他的工具都不是唯一选项,都可以替代,比如 花生壳可以用飞鸽替代,或者自己买个域名,做映射. SQLynx(数据库可视化软件)可以用Navicat替代.

Nginx

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强

花生壳

花生壳提供内网穿透功能,自动生成壳域名映射到本机的ip+端口上,实现公网可以访问.

如果自己有域名的话,可以直接用自己的域名.没有则可以考虑使用花生壳.

WordPress

WordPress 是一款强大的内容管理系统(CMS),可以用来创建各种类型的网站,包括博客、企业网站、电子商务商店和在线社区。

WordPress是使用[PHP]语言开发的博客平台,用户可以在支持PHP和[MySQL]数据库的服务器上架设属于自己的网站。也可以把WordPress当作一个[内容管理系统](CMS)来使用。

WordPress是一款个人博客系统,并逐步演化成一款[内容管理系统]软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持PHP和MySQL数据库的服务器上使用自己的博客。

PHP

一种流行的通用脚本语言,特别适合 Web 开发。
PHP快速,灵活和实用,支持从您的博客到世界上最受欢迎的网站的所有内容。

MySQL

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

SQLynx

MySql数据库的可视软件,用Navicat也一样.

SQLYNX - Web 和桌面 SQL 编辑器

原生基于 Web 的 SQL 编辑器,支持企业的桌面和 Web 数据库管理。它是适用于所有处理数据的跨平台数据库工具。它支持所有流行的数据库,如 MySQL、MariaDB、PostgreSQL、SQLite、Hive、Impala、Hadoop 等。

二.软件下载

2.1 Nginx

nginx.org/en/download…

image.png

2.2 PHP

windows.php.net/download

image.png

2.3 WordPress

cn.wordpress.org/download/
wordpress.org/download/

image.png

2.4 MySQL

dev.mysql.com/downloads/

image.png

image.png

2.5 花生壳

hsk.oray.com/price#perso…

image.png

2.6 SQLynx

www.sqlynx.com/zh-cn/downl…

image.png

三.开始搭建

3.1 Nginx

3.1.1 安装Nginx

.zip免安装版本的不用安装,直接解压. .exe根据引导完成安装.

3.1.2 配置nginx.conf

nginx.conf文件在nginx目录下的conf文件夹下,在location /模块中的index下增加index.php。

修改前: image.png

修改后: image.png

  • 添加php解析设置。取消对location ~ .php$的注释,
  • 其中fastcgi_param项中,默认配置 /scripts需要改成$document_root,document_root指的是上面配置的root项。

这两个配置都没有改root的值,所以对应的文件路径是nginx目录下的html文件夹下~如果要放在别的位置,可以修改root的值。 修改如下:

修改前:

image.png 修改后: image.png

3.2 PHP

3.2.1 安装PHP

zip免安装版本的不用安装,直接解压.

3.2.2 配置php.ini

配置PHP的php.ini。
在PHP目录下找到php.ini-development,复制并重命名为php.ini。

在php.ini中找到以下四行,去掉前面的;

extension_dir = "ext"
cgi.fix_pathinfo=1
extension=php_mysql.dll
extension=php_mysqli.dll

修改前: image.png 修改后:

image.png

修改前:

image.png

修改后:

image.png

没有 extension=php_mysql.dll 和 extension=php_mysqli.dll 的则把extension=mysqli 前面的;去掉.

修改前:

image.png 修改后:

image.png

修改前: image.png

修改后: image.png

测试是否成功。执行cmd命令进入到php所在的目录,再执行php-cgi.exe -b 127.0.0.1:9000 -c php.ini即可启动php。

./php-cgi.exe -b 127.0.0.1:9000 -c php.ini
3.2.3 测试

测试Nginx与PHP是否集成成功。

在Nginx对应的路径“nginx-x-x-z/html”下新建一个info.php,内容为:

info.php

<?php phpinfo(); ?>

hello.php

<html>
 <head>
  <title>PHP 测试</title>
 </head>
 <body>
 <?php echo '<p>Hello World, 牛皮!</p>'; ?>
 </body>
</html>

image.png

然后启动Nginx程序: nginx

./nginx.exe

浏览器访问:

http://localhost/

image.png

Nginx启动成功

浏览器访问:

http://127.0.0.1/info.php

image.png

浏览器访问:

http://127.0.0.1/hello.php

image.png

3.3 MySQL

3.3.1 安装MySQL

zip免安装版本的不用安装,直接解压.

3.3.2 配置MySQL

修改配置文件,复制my-default.ini为my.ini文件,打开它进行编辑

没有的新增my.ini,内容为:

[mysqld]
# 设置3306端口
port=3306

# 设置mysql的安装目录
basedir=E:\mysql-9.0.1-winx64

# 设置mysql数据库的数据的存放目录
datadir=E:\mysql-9.0.1-winx64\Data   

# 允许最大连接数
max_connections=200

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10

# 服务端使用的字符集默认为UTF8
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

修改basedir为你的mysql根目录

修改datadir为你的mysql根目录 + \Data

image.png

以管理员身份打开命令行,切换到安装MySQL的目录下,再切换到bin目录下

cd E:\mysql-9.0.1-winx64\bin

执行MySQL初始化命令:

mysqld.exe --initialize --console

这初始化完成后生成的临时密码,后面登陆要用到

image.png 安装MySQL的服务mysqld,

mysqld --install 服务名  (不写的话默认服务名是mysql)

image.png

启动MySQL服务:

net start mysql
停止服务:net stop mysql
卸载服务:sc delete mysql

image.png

登录MySQL:

mysql -u root -p

image.png

输入刚才的密码,然后回车.

image.png

登录成功.

修改密码:

alter user root@'localhost' identified by '123456';

image.png

退除登录

exit

image.png

用新密码重新登录

mysql -u root -p

登录进去就说明密码修改成功.

3.4 SQLynx

3.4.1 下载安装

www.sqlynx.com/zh-cn/downl… 需要注册才能下载

解压后运行

image.png

3.4.2 首次设置

登录,注意首次登录密码随便输入,登录后就变成用户密码了.

image.png

链接数据库

image.png 这里我们选 第三个 MYSQL image.png

image.png

  • 业务系统: 起个名字
  • 数据源地址: 不填,默认本机
  • 端口: 默认3306
  • 用户: root (刚才mysql的用户名)
  • 密码: 123456 (刚才mysql的用户对应的密码)

测试链接成功. 确认.

image.png

刷新后,可以看到添加的数据库源.

image.png

image.png

右键新建数据库

image.png

image.png

  • DataBase: 数据库名
  • 字符集: 最常用utf8mb4
  • 排序规则: utf8mb4对应的就是 utf8mb4_general_cli

为什么不建议在MySQL中使用UTF-8 在MySQL中,utf8编码只支持每个字符最多三个字节,而真正的UTF-8 是每个字符最多四个字节。 MySQL 的“utf8mb4”才是真正的“UTF-8”。 MySQL 的“utf8”实际上不是真正的 UTF-8,插入emoji文字时会报错; MySQL 的“utf8mb4”才是真正的“UTF-8”。 mp.weixin.qq.com/s/xHb08kPEf…

MYSQL字符集 mysql的utf8是假的uft8,mysql的utf8mb4才是真的uft8.

一般系统推荐的字符集和排序规则

字符集(Character Set):utf8mb4 排序规则|字符序(Collate):utf8mb4_general_cli或utf8mb4_bin 存储引擎:InnoDB

右键-刷新

image.png 新建的数据库就显示出来了

image.png

这个数据库是给我们后面wordpress用的

3.5 wordpress

将WordPress下载的代码压缩包,解压到nginx的html文件夹下。

image.png

3.5.1 启动wordpress

前置条件 php,nginx,mysql 都已经启动.

浏览器访问

http://127.0.0.1/wordpress

image.png

3.5.2 配置wordpress

image.png

  • 数据库名: wordpress (链接wordpress数据库)
  • 用户名: wordpress (访问数据库的用户名)
  • 密码: wordpress (访问数据库的wordpress用户的密码)
  • 数据库主机: localhost (主机名,默认情况下为localhost)
  • 表前缀: wp_ (用于在数据库表中添加前缀,这有助于在同一数据库上运行多个站点。 它采用默认值)

点击提交 如果上面没创建过wordpress数据库就会出错 image.png 现在可以去创建一个,如果创建过,则会连接上.

image.png 成功配置wordpress的数据库 点击 运行安装程序

image.png

  • 站点标题- 输入要在WordPress中创建的网站的名称。
  • 用户名- 在登录WordPress时根据您的选择输入用户名。
  • 密码 - 输入两次密码以保护您的网站。
  • 邮箱- 输入您的电子邮件地址,以帮助恢复密码或任何更新。
  • Privacy - 允许搜索引擎在选中此复选框后对此网站编制索引。

点击安装

image.png 成功!

点击登录

image.png

image.png

点击这篇默认生成的文章,进入编辑模式

image.png

点击右上角,进入预览模式.

image.png 记住url,马上就成功了.

[世界,您好! – 花花世界] http://127.0.0.1/wordpress/?p=1

3.6 花生壳

使用花生壳开启内网穿透 以上两步最后都强调只能在局域网内访问,但是实际使用中我们需要在外网进行访问,而且是需要使用域名进行访问,就像访问 www.baidu.com 一样。如何让我们的服务器也做到这样呢?这就要求我们做到内网穿透,试了多种方式,最后使用了花生壳提供的内网穿透服务,做了SSH和web的两个映射,花生壳提供了壳域名,使用起来还挺稳定。

不再重复造轮子,花生壳网站教程上连接。

花生壳免费版需要花钱买内网穿透的映射数量.

两条映射 http 6元, http+https 9.9元 有效期到2099年 service.oray.com/question/16…

添加映射

image.png image.png

image.png

  • 1.类型选择 网站应用
  • 2.名字 自己起一个
  • 3.网站应用对应 http https
  • 4.内网域名 自动生成
  • 5.端口为固定的 80或443
  • 6.自己电脑的ip,可以通过 cmd -> ipconfig 查看
  • 7.输入Nginx服务的端口,默认80
  • 8,9,10, 网站应用没有

image.png

有线 ipv4 地址

image.png

然后确定 添加成功后如图所示:

image.png

最终 使用映射地址访问刚才的测试页面,搞定!

http://127.0.0.1/wordpress/?p=1

改为

26sl0817lw44.vicp.fun/wordpress/?…

image.png

image.png