jxyblog

jxyblog

email

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 就行。

111

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

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

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

222222222

作为二级路由器最好修改一下路由器的 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 个条目修改成这样

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/"

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

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 右键编辑
我们只要修改两个地方

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

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

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

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 口

3333333

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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。