openwrt路由器搭建lighttpd+sqlite+php网站服务器

首先要了解想要搭建服务器就需要有公网 IP 就是别人能直接访问到你的地址，以前用的是 ipv4 地址，全球总共就 42 亿个地址根本不够用的，所以很多人都是共用一个 IP 的。

通俗的讲就是你拿到了一个 IP，然后可以用路由器再分出无数个 IP 供其他人上网，原理就是这样，因为多人共用所以就搭建不了服务器。

所以 ipv6 应运而生，据说可以给地球上的每一颗沙子都分配一个地址，这种地址数量除非我们进入星际时代不然是不可能用完的。

现在 ipv6 几乎全面普及了，但是目前国内网络环境真的复杂，很多人都还用着老旧路由器，或者不会设置路由器，导致很多人都无法正常访问 ipv6 网站。

现在所有运营商宽带几乎都支持 ipv6 了，你不能访问的原因是你的路由器太老旧或者没有设置 ipv6，但是你可以尝试电脑直连光猫，手机的话可以关闭 WIFI，用流量上网就可以访问 ipv6 网站了。

当然也有不好的消息，有些地区运营商封禁了 80 端口跟 443 端口，这两个端口是网站专用的端口，被封就很麻烦了，比如我访问我的博客正常是http://jxyblog.top

如果端口被封我就要改端口了http://jxyblog.top:89
浏览器访问就必须带后面的端口号，很麻烦。

还有的光猫内部有设防火墙，你从外部是无法访问你的网站的，你要获得光猫的超级密码关闭防火墙，或者改桥接模式直接用路由器拨号，这两种情况都要用到光猫超级密码。

所以你就祈祷你的光猫内部防火墙默认是关闭的吧，这样就不用那么麻烦，连上就能直接用了。

当你有了 openwrt 路由器后的几个必须准备工作

首先你要能获得 IPV6 地址，我的网络是用光猫拨号，并非路由器拨号，我的电脑直连光猫的一个口，路由器连另一个口，我的电脑跟路由器都能获得 IPV6 地址。

保证路由器能正常联网，先把电脑连路由器 LAN 口，然后登入 192.168.1.1 路由器管理界面，先安装一下中文支持跟系统时区。

首次登入会要求修改默认密码，直接改就是了，用户名不要改，就默认的 root 就行。

然后点击顶部第二个 system 标签，选择 software 选项，最后再点击 update opkg 按钮，这一步要正常联网才行。

等待片刻后更新完成就可以看到所有可安装的软件包了，在第一个框里输入 luci-i18n-base-zh-cn 可安装 openwrt 中文包，这样刷新一下就可以直接变成中文界面。

接下来再输入 zoneinfo-asia 安装系统时区支持包。安装好后点击顶上的系统 - 系统，可以设置时区，把它设置成 Asia/Shanghai 就可以了。

作为二级路由器最好修改一下路由器的 lan 端口地址，点击顶部网络 - 接口，有个绿色的 lan 口，点击右边的编辑，把 ipv4 的 192.168.1.1 改成 192.168.2.1

之后点击右下角保存并应用，路由器会重启，以后要用 192.168.2.1 登入管理路由器。

当你路由器准备好后我们先来安装 lighttpd 服务器

在一切开始之前我们需要一个工具 WinSCP，当然你可以官网下载，官网的似乎是英文版，我这里提供一个汉化版的。
WinSCP 中文版.rar，提取码: 9tsm，大小：6.18Mb

我们自始至终只需要用到这么一个工具，可以直接往路由器里复制文件，也可以直接修改配置文件而不用敲命令行，先下载好备用。

为了让网站能 80 端口访问，我们需要把路由器的端口改掉，不然端口冲突无法启动 lighttpd
打开 /etc/config/ 在里面有个 uhttpd 文件，右键编辑，将以下 4 个条目修改成这样

Copy
list listen_http '0.0.0.0:8080'
list listen_http '[::]:8080'
list listen_https '0.0.0.0:444'
list listen_https '[::]:444'

这里是将路由器的管理界面端口改成 8080，我们后面要管理路由器就用 192.168.2.1:8080 这个地址登入。

这里说一下 uhttpd 这个东西，这个跟 lighttpd 一样是个 web 服务器，我们网页登入路由器管理界面就是它实现的，为了两个服务器不起冲突，所以我们要改端口。
当然有的大佬可以直接不用安装 lighttpd，直接就用 uhttpd+php 来部署了。

接下来我们点击路由器系统 - 重启，路由器重启完成后在浏览器地址输入http://192.168.2.1:8080 登入路由器。

登入路由器，点击系统 - 软件包，我们先点击更新一下软件包。
更新好后，在过滤器里输入 lighttpd 点击安装，它会自动安装其他的依赖包

安装好后接着安装 lighttpd-mod-fastcgi 与 lighttpd-mod-rewrite，fastcgi 是与 PHP 连接的接口，这是必装的。

rewrite 是重写组件，给网站做伪静态用的，可装可不装，其实这个组件只有一个配置文件，大小 1Kb 不到，可以装上备用。

接下来就需要用到我上面说的 WinSCP 了，我们打开软件，它会弹出一个新建站点的框。

文件协议：scp
主机名：192.168.2.1 端口号：22 #路由器管理地址
用户名：root 密码：123456 #你路由器的账号跟密码
然后点击保存，跳出一个框勾选保存密码
之后点击登录就行，这样就可以看到路由器里的所有文件了

接下来我们修改配置文件，我们打开 /etc/lighttpd/lighttpd.conf，可以直接右键 lighttpd.conf 编辑

修改以下条目，后面是你网站文件存放目录，可以随意修改。
注意：除非你路由器空间足够，不然还是放在 RAM 比较好，ROM 空间足够或者有外接 U 盘的话无视。
tmp 目录就是在 RAM 里面，一旦断电，里面的数据全部丢失，我建了个 www 目录用来存放网站文件
var.server_root = "/tmp/www/"

改好后其他地方都不用动，然后添加以下条目：

Copy
server.use-ipv6 = "enable"
server.port = 80
$SERVER["socket"] == "0.0.0.0:80"

这三行的意思是开启 ipv6，监听端口 80，能同时监听 ipv6 跟 ipv4.
改好后点击左上角保存就行。

改完后要重启 lighttpd 才行的，可以直接在路由器 - 系统 - 启动项里面找到 lighttpd 点击重启。

然后点击路由器 - 状态 - 系统进程，查看一下有没有运行以下任务
2954 http /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf

有的话就说明 web 服务器启动成功，我们可以复制一个 index.html 的文件到 /tmp/www/ 然后浏览器访问http://192.168.2.1

网页显示正常说明 web 服务器搭建成功，这时候只能放些静态文件，运行不了 php 的，这些后面会慢慢写出来。

lighttpd 安装好了，现在来安装 PHP 与 sqlite, 还有网站上传安装

依然是点击路由器的系统 - 软件包，文本框里输入 php
就两个主体要安装 php8 与 php8-cgi, 这两个安装好后，以下一堆的支持包都给它装上。
php8-mod-bcmath
php8-mod-calendar
php8-mod-ctype
php8-mod-dom
php8-mod-filter
php8-mod-iconv
php8-mod-mbstring
php8-mod-session
php8-mod-sockets
php8-mod-sqlite3
php8-mod-tokenizer
php8-mod-xml

以上全部安装完我们最后还要安装数据库 libsqlite3-0
全部安装完成一切准备就绪，接下来只要修改配置文件就行了。

PHP 配置文件修改
用我们之前用的 Winscp 打开 /etc 目录，找到 php.ini 右键编辑
我们只要修改两个地方

Copy
cgi.fix_pathinfo = 1
doc_root = "/tmp/www"

将上面两个条目修改一下就行，其它的不用动。
然后在末尾添加下面的时区设置保存关闭就行。
date.timezone = Asia/Shanghai
php 配置修改完毕

接下来是 lighttpd 的 fastcgi 设置
用 Winscp 右键编辑 /etc/lighttpd/conf.d/30-fastcgi.conf 文件
在底部添加以下代码

Copy
fastcgi.server = ( ".php" =>
((
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php8-cgi",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "2",
"PHP_FCGI_MAX_REQUESTS" => "100",
),
"max-procs" => 1,
"broken-scriptfilename" => "enable",
)
)
)

然后保存关闭就行。
之后点击路由器的系统 - 启动项，点击重启 lighttpd

然后点击路由器的状态 - 系统进程查看有没有以下程序
/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
/usr/bin/php8-cgi
php8-cgi 的进程应该有 3 个，因为路由器配置太低，我只设置了 3 个进程
到此就大功告成了。

服务器搭建完成，下载最新的 Typecho 文件，然后用 Winscp 复制到 /tmp/www/ 里面，确保 index.php 在 www 目录里。

然后右键 www 文件夹，点击属性，修改文件权限，下面这些勾上
√R √W √X
√R √W √X
√R √W √X
八进制表 0777
√ 循环设定组丶拥有者和权限

完成后打开浏览器输入http://192.168.2.1
这时候应该就打开 Typecho 安装界面了，按提示安装就行。
到此网站彻底搭建完毕。

接下来如果你路由器有 ipv6 地址并且用域名绑定了，那么在路由器的防火墙里设置一
下 wan 口入站数据。
点击路由器的网络 - 防火墙，开放 WAN 口

然后再点击保存并应用，这时候应该可以用手机访问了。