如果你的路由器有 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用的就是我們自己的配置文件了。
到此大公告成