本日详细说说。

一台小的做事器能干啥

先说下,一个小型化的做事器能干啥,

对个人来说,搭建个人的「知识库条记」或者「博客系统」,或者跑一些签到任务或者脚本(借助「青龙面板」)对家庭来说,可以做「NAS分享」或者「web相册托管」等对一个小型的公司来说,可以跑一些「内部的管理系统」选择OpenWrt来做做事器的缘故原由

明确了你须要做事器之后,你可以去买腾讯、阿里的云做事器,现在都卷,规格大在2c4g 40G盘的机器,第一年用度约80~100旁边。
云做事器在很多场景还是非常得当的,比如须要负载均衡,NAT等场景。
之以是要选择用路由器,考虑以下成分

php路由器OpenWrt 应用ONMP让你的路由器变身壮大的小我办事器 Docker

云做事器按年付费,价格颠簸大。
后期本钱不可控。
而路由器都是一次投资,用个5年、8年基本没问题。
平时不管在不在家,也都是保持运行状态,没有噪音,功耗也低,本身就具备网络连接。
以是作为做事器是非常得当的。
如果用云做事器,数据都在云端。
是否安全先不说,随着韶光的积累,个人数据量逐步增加,要么会被厂商绑定,要么便是须要额外的迁移本钱。
相反,现在很多路由器都带有usb口,可以挂着一个大容量u盘或者硬盘,或者一些软路由,本身就可以接磁盘,跑起来之后,数据长期本地保持,不用担心数据安全,也不用考虑是否须要迁移等。
当然,如果有非常大的数据存储哀求,可以用路由器+NAS产品的方案。
云做事器的网络环境存在一些毛病。
比如没有ipv6地址, 或者在某些场景下,随意马虎被封禁。
而路由器完备仿照家用网络环境,也都基本具备ipv6和ipv4的功能了。

当作做事器用,实在最大略便是跑docker, 避免各种中间件软件的安装。
尤其现在dockerhub对中国区域内解禁了,拉取各种各样的容器也非常方便。
直接把你的业务打到容器里面跑起来就行了。

在当前OpenWrt的一些固件中,都带了Dokcer做事,比如iStoreOS。

本日不说怎么跑Docker, 说下前段韶光给一个朋友调试的在RAX3000M上跑ONMP的一个过程。
紧张说下这些中间件程序怎么安装,碰着的问题也给大家分享。

OpenWrt配置ONMP环境ONMP简介

ONMP,即「Opkg」、「Nginx」、「MySQL」和「PHP」的组合。
比较LNMP,把L(Linux换成OpenWRt)

它利用Linux Shell脚本,让你能够在短短几步之内,在路由器上搭建起功能完好的Web做事环境,包括Nginx网页做事器、MySQL数据库系统和PHP解析器。
不仅如此,ONMP还预置了多款常用「网站程序」的安装选项,让你的路由器瞬间变身强大的个人做事器。

大家会以为又是数据库,又是php的,路由器能跑起来么?这个朋友RAX3000KM的算力版,带了个64G的ssd。
其他配置:联发科的MT7981,双核A53 1.3GHz,集成2.4G和5G基带。
512MB DDR4内存。
这个这么低的配置,配置完成之后,跑大略的web运用一点问题都没有。

以上的这些运用软件的包,都由「Entware」供应, 标准OpenWrt的软件包是不包括nginx这些的。
以是须要先将OpenWrt做好后,更换下opkg的为Entware的,方便安装各种包,后面碰着的问题中也会详细说下。

安装过程

详细配置过程:

安装Entware Entware的地址是: https://bin.entware.net/

首先须要挂着目录。
由于OpenWrt是一个支配在内存上的系统,如果安装在root这些目录下,重启就没了, 恰好这个带了64G的盘,以是拆分了一部分挂着到opt目录下,这样重启就不会没有。

挂载好目录之后,就可以正常安装了,脚本一键安装

#下载安装脚本: 这里根据固件类型选择wget http://bin.entware.net/aarch64-k3.10/installer/generic.sh # 实行安装脚本:sh generic.sh

涌现以下提示,表示安装成功

Info: Congratulations!Info: If there are no errors above then Entware was successfully initialized.安装完成之后,就可以安装ONMP了。

官方地址:https://github.com/xzhih/ONMP

参考官方地址,安装即可,须要办理软件包下载的问题:

紧张步骤:

# 进入 entware 挂载目录cd /opt && opkg install wget unzip # 下载软件包wget --no-check-certificate -O /opt/onmp.zip https://github.com/xzhih/ONMP/archive/master.zip # 解压unzip /opt/onmp.zip cd /opt/ONMP-master # 设置权限chmod +x ./onmp.sh # 运行./onmp.sh

「主张:onmp.sh,git上的脚本是5、6年前的,很多包,很多路径都不对,须要对脚本做一些修正。
紧张是对应包换成最新的」

过程中问题简要记录问题1 opkg路径问题

个中,把稳,opkg这个包须要为entware带的。
本身OpenWrt带的包管理工具是从/etc/opkg下去获取软件。
用which opkg 查看opkg的路径,如果不对,须要调度下profile。
将opkg在profile里面改成entware供应的。
不过这个时候OP自身的opkg就用不了,须要的时候再换回来。

问题2 软件包问题

其余onmp.sh脚本,里面的版本php版本是7,实际entware供应的是php8,没有php7的包了,以是将脚本改为php8

其余,这个仓库里面没有nginx-extra的包,脚本里面须要,直接更换为nginx。

问题3 做事启动问题

终极完成提升php没有启动成

看脚本,php-fpm是启动成功的。

缘故原由是的检讨php的是脚本有点问题,查看php进程命令不对,可以根据韶光情形修正,修正之后,重新启动就顺畅多了。

问题4 探针php页面的问题

在onmp自带的脚本里面, 有一个php的tz.php 这个应是基于php7写的,里面逻辑没仔细看,本次安装的php8 ,以是这个程序一贯报错,502 网关缺点,php脚本不适配 重新写了一个index.php, 就大略点,一个phpinfo即可。

<?php phpinfo();exit;?>

放到:/opt/wwwroot/default 目录

问题5 redis问题 由于rax3000km的内请安题,须要修正内核参数,arm下redis本身的问题,须要修正redis.conf。
其余redis集成到php,须要额外补充安装php8-pecl-redis_6.0.2-1_aarch64-3.10.ipk 这个包。
ONMP紧张目录解释nginx:/opt/etc/nginx下 , 主张:OpenWrt自带的luci占了80端口,以是nginx运行的程序须要换一个端口。

[root@Love-Openwrt:09:12 AM /opt/etc/nginx] # ls -aldrwxr-xr-x 6 root root 4096 Aug 8 13:50 .drwxr-xr-x 9 root root 4096 Feb 23 02:13 ..drwxr-xr-x 2 root root 4096 Aug 8 13:50 confdrwxr-xr-x 2 root root 4096 Feb 23 02:13 conf.d-rw-r--r-- 1 root root 1007 Feb 23 02:13 fastcgi_params-rw-r--r-- 1 root root 2837 Feb 23 02:13 koi-utf-rw-r--r-- 1 root root 2223 Feb 23 02:13 koi-win-rw-r--r-- 1 root root 5349 Feb 23 02:13 mime.typesdrwxr-xr-x 2 root root 4096 Feb 23 02:13 module.d-rw-r--r-- 1 root root 774 Aug 8 13:50 nginx.conf-rw-r--r-- 1 root root 636 Feb 23 02:13 scgi_params-rw-r--r-- 1 root root 664 Feb 23 02:13 uwsgi_paramsdrwxr-xr-x 2 root root 4096 Aug 8 22:06 vhost-rw-r--r-- 1 root root 3610 Feb 23 02:13 win-utfphp配置目录,/opt/etc 下

[root@Love-Openwrt:09:11 AM /opt/etc] # ls -al |grep php-rw-r--r-- 1 root root 3140 Aug 8 13:51 php.inidrwxr-xr-x 2 root root 4096 Aug 9 09:03 php8-rw-r--r-- 1 root root 5346 Feb 23 02:13 php8-fpm.confdrwxr-xr-x 2 root root 4096 Aug 8 13:51 php8-fpm.dredis 配置,/opt/etc下

[root@Love-Openwrt:09:13 AM /opt/etc] # ls -al |grep redis-rw-r--r-- 1 root root 93797 Aug 8 22:58 redis.conf[root@Love-Openwrt:09:13 AM /opt/etc] # 运用程序发布路径(取决于nginx的配置)

/opt/wwwroot/default目录下 tz.php :脚本自带的php探针程序 index.php:重新写的一个查看phpinfo的页面。

[root@Love-Openwrt:09:15 AM /opt/wwwroot/default] # ls -aldrwxrwxrwx 2 root root 4096 Aug 8 17:10 .drwxrwxrwx 3 root root 4096 Aug 9 08:47 ..-rwxrwxrwx 1 root root 2339 Aug 9 08:54 index.php-rwxrwxrwx 1 root root 27 Aug 9 09:08 tz.php[root@Love-Openwrt:09:15 AM /opt/wwwroot/default] #

以上便是在OpenWrt上支配ONMP来使路由器变成做事器的过程,你只须要将你的php程序打包好,支配到你的路由器上,就可以畅快访问利用了。