序
本文采用ONMP架构来构建个人网站。

O = OpenWrt,即智能路由器的固件。
N = Nginx,一个轻量级的web服务器,或者uhttpd,lighttpd等。选择nginx的原因是我对它比较熟悉。
M = Mysql,现在新版本已经改名为Mariadb,数据库服务器,可以用来存储网站数据,方便调用。
选择编写动态网页的后台语言程序之一P = PHP7,是因为其背后有一个庞大的免费开源网站库,可以立即使用。
网上有很多关于ONMP建筑的教程和脚本,但是都已经过时了,大部分都无法安装。本文的构造方法到2021年5月5日仍然有效,并且是精简的,不需要安装多余的软件包。
构建环境
OpenWrt版本:精简固件LEDE R21.3.27
来源:官方软件来源
如何更改软件来源?见本文:亲测国内三个OpenWrt的包镜像源地址,已经排序,可以直接使用。
您需要用SSH登录到命令行,但是您不会。看:如何用SSH登录OpenWrt路由器
首先使用SSH登录路由器。让我们现在开始。
安装必要的软件。
首先更新软件源,在命令行输入以下命令并执行它:
更新后安装时区支持,否则服务器的时区设置会出错。
安装用户和用户组配置软件:
这两个软件包将用于向系统添加用户组和用户,稍后会用到。
创建www用户
添加www用户组:
将www用户添加到www用户:
现在我们创建了一个www用户组,其中有一个名为www的用户。操作结束后,我们会让nginx以www用户的身份在特定目录下运行网站服务,这样网站程序的所有操作都不会影响到其他目录。
nginx的安装和配置
安装nginx
安装完成后,您需要用vi:
查找以下要修改的条目:
编辑vi文本的简单技巧:vi编辑器有两种工作模式,命令行模式和文本输入模式。打开vi后,默认是命令行模式。用键盘↑、→、↓、←控制光标移动。在命令行模式下,按“I”键进入文本输入模式,可以像普通文本一样编辑。在文本输入模式下,按“ESC”进入命令行模式,在该模式下不能编辑文本。在命令行模式下,输入“:wq”保存文本并退出。如果“:w”被保存,它将不会退出。":问!"不保存退出。更多关于vi编辑器的使用方法,请自行搜索,本文不做更多解释。
创建和配置网站目录。
创建目录:
更改目录权限,以便nginx拥有操作权限:
运行nginx服务,加入自启动。
好了,现在访问192.168.1.1:8080,可以看到带有nginx字样的网页吗?访问地址基于您在nginx.conf中配置的内容,采用IP: port的形式。
因为默认的web服务端口80已经被OpenWrt后台管理占用,我们只能使用其他端口,以后可以通过端口转发访问,不吸引人的URL: 8080就隐藏起来了。
如果你只想发布纯Html和H5之类的静态网页,就不需要看下面这些了。
如果要安装博客、私有云之类的程序,那就继续。
Mariadb数据库安装和配置

安装数据库
安装完成后,编辑/etc/MySQL/conf . d/50-server . CNF:
查找以下要修改的条目:
配置数据库目录
创建数据库目录:
将数据安装到/mysql/databases。安装命令:
启动数据库并加入自启动:
设置数据库管理员密码:
测试安装是否成功。
输入命令登录到数据库:
执行后,会提示您输入密码,并输入之前设置的管理员密码。
如果登录成功,命令行会变成“mysql >”,表示安装成功。只需输入quit即可退出。
旧的教程和脚本是安装mysql-server。由于版本过期,软件源自动匹配到mariadb-server进行安装,但会导致软件包安装不完整。需要同时安装mariadb-server-extra和mariadb-client-extra包。
7 PHP7的安装和配置
PHP早已更新到PHP7,官方软件源码中只能安装PHP7。那些还是PHP5的教程和脚本肯定安装不了。
而且我也不明白为什么那些教程和脚本里用spawn-fcgi来调用fastcgi。有了自己的儿子为什么不用php-fpm?而且php-fpm是和fastcgi集成的,装个包就行了。
安装PHP7
安装phh7 mariadb扩展
配置php.ini
打开/etc/php.ini。
查找以下要修改的条目:
配置php-fpm
打开/etc/php7-fpm.d/www.conf:
查找以下要修改的条目:
运行php-fpm,加入自启动。
测试php7是否正常工作。
转到/web文件夹:
创建一个名为index.php的文件:
在其中输入代码:
保存后打开浏览器访问192.168.1.1:8080,出现phpinfo网页,说明安装成功。
标签
至此,ONMP的基本配置完成。
当然,我们还没有测试php和mariadb是否连接正确。我们可以用大神们写的探针测试一下。度娘搜索“PHP探针”,下载,上传到/web目录,访问探针文件,可以测试。
还有,我们现在安装的php功能都很弱。比如禁用一些危险的功能没有设置,curl,iconv,json,xml等扩展还没有安装。您可以使用以下命令:

列出php7的所有扩展包,用opkg install命令一次安装完列出的扩展包。
安装完扩展包后,别忘了修改php.ini去掉* .so前的#号。
建立个人网站还剩下两个关键步骤:
在本文中,我将在构建的环境中安装我最喜欢的网站程序。接下来,我将用著名的WordPress博客程序演示安装过程。配置外联网访问。这需要DDNS或内部网的渗透。配置外联网访问后,无论我们去哪里,都可以访问路由器的所有服务。具体用途可以自己补。如果你还没有完成,请留言。
谢谢大家的赞、分享和关注。欢迎吐槽。大家一起交流分享软件使用的小技巧吧。


