openwrt路由器搭建网站服务器，Nginx+php+Sqlite

如果你路由器有 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

Copy
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 博客，要开启的话加入上面的配置文件。

Copy
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}

有几点要注意：

由于 nginx 启动的时候默认是替换路由器自带的 LUCI 的，所以安装的时候路由器默认的 80 访问端口先改掉，比如改成 8080，前面那篇教程我也提到过。

不然可能会报错，还有开机自动启动脚本里是不使用 nginx.conf 来启动的，我们还要改个配置文件。

目录在 /etc/config/nginx，就是这个没有后缀的文件 nginx 右键打开

Copy
config main global
option uci_enable 'false' #把此处改成false就行了，然后在系统启动项里重启NG用的就是我们自己的配置文件了。

到此大公告成