一. 选型
根据需求的技术选型
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
2.2 PHP
2.3 WordPress
cn.wordpress.org/download/
wordpress.org/download/
2.4 MySQL
2.5 花生壳
2.6 SQLynx
三.开始搭建
3.1 Nginx
3.1.1 安装Nginx
.zip免安装版本的不用安装,直接解压. .exe根据引导完成安装.
3.1.2 配置nginx.conf
nginx.conf文件在nginx目录下的conf文件夹下,在location /模块中的index下增加index.php。
修改前:
修改后:
- 添加php解析设置。取消对location ~ .php$的注释,
- 其中fastcgi_param项中,默认配置 /scripts需要改成$document_root,document_root指的是上面配置的root项。
这两个配置都没有改root的值,所以对应的文件路径是nginx目录下的html文件夹下~如果要放在别的位置,可以修改root的值。 修改如下:
修改前:
修改后:
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
修改前:
修改后:
修改前:
修改后:
没有 extension=php_mysql.dll 和 extension=php_mysqli.dll 的则把extension=mysqli 前面的;去掉.
修改前:
修改后:
修改前:
修改后:
测试是否成功。执行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>
然后启动Nginx程序: nginx
./nginx.exe
浏览器访问:
Nginx启动成功
浏览器访问:
http://127.0.0.1/info.php
浏览器访问:
http://127.0.0.1/hello.php
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
以管理员身份打开命令行,切换到安装MySQL的目录下,再切换到bin目录下
cd E:\mysql-9.0.1-winx64\bin
执行MySQL初始化命令:
mysqld.exe --initialize --console
这初始化完成后生成的临时密码,后面登陆要用到
安装MySQL的服务mysqld,
mysqld --install 服务名 (不写的话默认服务名是mysql)
启动MySQL服务:
net start mysql
停止服务:net stop mysql
卸载服务:sc delete mysql
登录MySQL:
mysql -u root -p
输入刚才的密码,然后回车.
登录成功.
修改密码:
alter user root@'localhost' identified by '123456';
退除登录
exit
用新密码重新登录
mysql -u root -p
登录进去就说明密码修改成功.
3.4 SQLynx
3.4.1 下载安装
www.sqlynx.com/zh-cn/downl… 需要注册才能下载
解压后运行
3.4.2 首次设置
登录,注意首次登录密码随便输入,登录后就变成用户密码了.
链接数据库
这里我们选 第三个 MYSQL
- 业务系统: 起个名字
- 数据源地址: 不填,默认本机
- 端口: 默认3306
- 用户: root (刚才mysql的用户名)
- 密码: 123456 (刚才mysql的用户对应的密码)
测试链接成功. 确认.
刷新后,可以看到添加的数据库源.
右键新建数据库
- 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
右键-刷新
新建的数据库就显示出来了
这个数据库是给我们后面wordpress用的
3.5 wordpress
将WordPress下载的代码压缩包,解压到nginx的html文件夹下。
3.5.1 启动wordpress
前置条件 php,nginx,mysql 都已经启动.
浏览器访问
http://127.0.0.1/wordpress
3.5.2 配置wordpress
- 数据库名: wordpress (链接wordpress数据库)
- 用户名: wordpress (访问数据库的用户名)
- 密码: wordpress (访问数据库的wordpress用户的密码)
- 数据库主机: localhost (主机名,默认情况下为localhost)
- 表前缀: wp_ (用于在数据库表中添加前缀,这有助于在同一数据库上运行多个站点。 它采用默认值)
点击提交
如果上面没创建过wordpress数据库就会出错
现在可以去创建一个,如果创建过,则会连接上.
成功配置wordpress的数据库 点击 运行安装程序
- 站点标题- 输入要在WordPress中创建的网站的名称。
- 用户名- 在登录WordPress时根据您的选择输入用户名。
- 密码 - 输入两次密码以保护您的网站。
- 邮箱- 输入您的电子邮件地址,以帮助恢复密码或任何更新。
- Privacy - 允许搜索引擎在选中此复选框后对此网站编制索引。
点击安装
成功!
点击登录
点击这篇默认生成的文章,进入编辑模式
点击右上角,进入预览模式.
记住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…
添加映射
- 1.类型选择 网站应用
- 2.名字 自己起一个
- 3.网站应用对应 http https
- 4.内网域名 自动生成
- 5.端口为固定的 80或443
- 6.自己电脑的ip,可以通过 cmd -> ipconfig 查看
- 7.输入Nginx服务的端口,默认80
- 8,9,10, 网站应用没有
有线 ipv4 地址
然后确定 添加成功后如图所示:
最终 使用映射地址访问刚才的测试页面,搞定!
http://127.0.0.1/wordpress/?p=1
改为
26sl0817lw44.vicp.fun/wordpress/?…