如果你路由器有 USB 口,闪存也够大至少 32Mb, 可以把服务器改成 Nginx+php+Sqlite
之前发了一篇 openwrt 路由器搭建 lighttpd+php+Sqlite 的教程,大致相同,可以先看前面那篇,这篇主要记录一下配置文件。
openwrt 路由器搭建 lighttpd+sqlite+php 网站服务器
我最开始想的是把路由器整个根目录扩容,后面想想不好备份跟维护,USB 要是坏了所有服务都要重新安装了。
目前是把网站目录放在 USB 里,使用 Sqlite 数据库的好处是可以跟网站放一起,一键打包备份,转移服务器也方便,直接改个数据库地址就 OK。
现在转到 nginx,所有的软件都是安装在路由器上,断电也不会丢失,Nginx+php+Sqlite 三件套加上一些其他的组件,路由器闪存占用就 10Mb 左右。
openwrt 上面 nginx 貌似只能搭配 php-fpm 使用。
再次感谢维护 openwrt 的大佬,这些软件都是可以直接拿来就用的,最多微调一下配置文件,连我这种小白也玩的转。
之前用 lighttpd 的时候安装 php-cgi 这个软件包,现在用 nginx 就不需要那个了,直接安装个 php-fpm 这个包就行,里面自带 php8 解释器。
以下是 Nginx 使用的配置文件,配置文件目录在 /etc/nginx/nginx.conf
worker_processes 2;
user root;
include module.d/*.module;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 100M;
large_client_header_buffers 4 64k;
server {
listen 80;
listen [::]:80;
server_name jxyblog.top;
root /mnt/www;
location / {
index index.php index.html;
autoindex off;
}
location ~ \.php(.*)$ {
root /mnt/www;
fastcgi_pass unix:/var/run/php8-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
include conf.d/*.conf;
}
以下是 Nginx 的伪静态,适用于 typecho 博客,要开启的话加入上面的配置文件。
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
有几点要注意:
由于 nginx 启动的时候默认是替换路由器自带的 LUCI 的,所以安装的时候路由器默认的 80 访问端口先改掉,比如改成 8080,前面那篇教程我也提到过。
不然可能会报错,还有开机自动启动脚本里是不使用 nginx.conf 来启动的,我们还要改个配置文件。
目录在 /etc/config/nginx,就是这个没有后缀的文件 nginx 右键打开
config main global
option uci_enable 'false' #把此处改成false就行了,然后在系统启动项里重启NG用的就是我们自己的配置文件了。
到此大公告成