如何在路由器上搭建自己的个人网站怎么在路由器里添加一个网址
本文的前言采用ONMP框架来构建个人网站。
O = OpenWrt,即智能路由器的固件。
N = Nginx,一个轻量级的web服务器,或者uhttpd,lighttpd等。选择nginx的原因是我对它比较熟悉。
M = Mysql,现在新版本已经改名为Mariadb,数据库服务器,可以用来存储网站数据,方便调用。
选择编写动态网页的后台语言程序之一P = PHP7,是因为其背后有一个庞大的免费开源网站库,可以立即使用。
网上有很多关于ONMP建筑的教程和脚本,但是都已经过时了,大部分都无法安装。本文的构造方法到2021年5月5日仍然有效,并且是精简的,不需要安装多余的软件包。
OpenWrt版本的构建环境:精简固件LEDE R21.3.27
软件来源:官方(OpenWrt.Org)软件来源
如何更改软件来源阅读此处:
你需要使用SSH登录命令行,但是你不会看到:如何使用SSH登录OpenWrt,以及服务器和客户端的设置方法。
首先使用SSH登录路由器。让我们现在开始。
要安装必要的软件,首先更新软件源,在命令行输入以下命令并执行它:
opkg更新
更新后安装时区支持,否则服务器的时区设置会出错。
opkg安装区域信息-核心区域信息-亚洲
安装用户和用户组配置软件:
opkg安装shadow-groupadd shadow-useradd
这两个软件包将用于向系统添加用户组和用户,稍后会用到。
创建www用户并添加www用户组:
groupadd www
将www用户添加到www用户:
用户添加-g www www
现在我们创建了一个www用户组,其中有一个名为www的用户。操作结束后,我们会让nginx以www用户的身份在特定目录下运行网站服务,这样网站程序的所有操作都不会影响到其他目录。
nginx的安装和配置(1)安装nginx
安装命令:
opkg安装nginx
安装完成后,您需要用vi:
vi /etc/nginx/nginx.conf
根据以下内容进行修改:
用户www www#配置nginx服务器的用户身份{listen 8080;#让nginx监听端口8080,或者填充任何未被占用的端口。server _ name 192 . 168 . 1 . 1;#网站的域名,先配置成内网,填写你的路由器内网IP。location/{root/web;#存储网站的目录。我们还没有创建它。请填写索引index.html,index.htm,index.php;#默认主页的名字需要php,所以加index.php}location ~ 。php $ {#来配置php解析,并且没有php可以忽略root/web;#同上,存放网站的目录fastcgi _ pass 127 . 0 . 0 . 1:9000;#php解析服务器的地址,填在fastcgi _ index index.php就可以了;#php默认主页fastcgi _ paramscript _ filename $ document _ root $ fastcgi _ script _ name;#脚本文件请求路径包含fastcgi _ params#合并fastcgi的详细配置文件}}
Vi编辑文本的简单技巧:
vi编辑器有两种工作模式:命令行模式和文本输入模式。打开vi后,默认是命令行模式。
用键盘↑、→、↓、←控制光标移动。
在命令行模式下,按“I”键进入文本输入模式,可以像普通文本一样编辑。
在文本输入模式下,按“ESC”进入命令行模式,在该模式下不能编辑文本。
在命令行模式下,输入“:wq”保存文本并退出。如果“:w”被保存,它将不会退出。":问!"不保存退出。
更多关于vi编辑器的使用方法,请自行搜索,本文不做更多解释。
(2)创建和配置网站目录
创建目录:
mkdir /web
更改目录权限,以便nginx拥有操作权限:
chown -R www
(3)运行nginx服务,加入自启动。
两个订单:
服务nginx启动
服务nginx启用
好了,现在访问192.168.1.1:8080,可以看到带有nginx字样的网页吗?访问地址基于您在nginx.conf中配置的内容,采用IP(域名):port的形式。
因为默认的web服务端口80已经被OpenWrt后台管理占用,我们只能使用其他端口,以后可以通过端口转发访问,不吸引人的URL: 8080就隐藏起来了。
如果你只想发布纯Html和H5之类的静态网页,就不需要看下面这些了。
如果要安装博客、私有云之类的程序,那就继续。
Mariadb(mysql)数据库安装和配置(1)安装数据库
安装命令:
opkg安装Maria db-server-extra Maria db-client-extra
安装完成后,编辑/etc/MySQL/conf . d/50-server . CNF:
VI/etc/MySQL/conf . d/50-server . cn f
根据以下内容进行修改:
User = root #数据库管理员用户名datadir = /mysql/databases #数据库存储目录,可以自定义,但是不要放在网站目录tmpdir = /mysql/tmp #数据库临时文件存储目录,如上 bind-address = 0.0.0.0。
(2)配置数据库目录
创建数据库目录:
mkdir/MySQL/数据库
mkdir /mysql/tmp
将数据安装到/mysql/databases。安装命令:
mysql_install_db - force
启动数据库并加入自启动:
服务mysqld启动
服务mysqld启用
设置数据库管理员密码:
Admin-u root密码'设为您自己的密码'
(3)测试安装是否成功。
输入mysql -u root -p p。
执行后,会提示您输入密码,并输入之前设置的管理员密码。
如果登录成功,命令行会变成“MySQL >”,这样,安装成功,输入quit退出即可。
旧的教程和脚本是安装mysql-server。由于版本过期,软件源自动匹配到mariadb-server进行安装,但会导致软件包安装不完整。需要同时安装mariadb-server-extra和mariadb-client-extra包。
7 PHP安装与配置PHP早已更新到PHP7,官方软件源码中只能安装PHP7。那些还是PHP5的教程和脚本肯定安装不了。
而且我也不明白为什么那些教程和脚本里用spawn-fcgi来调用fastcgi。有了自己的儿子为什么不用php-fpm?而且php-fpm是和fastcgi集成的,装个包就行了。
(1)安装PHP7
命令:
opkg安装php7 php7-fpm
(2)安装phh7 mariadb的扩展
命令:
opkg安装PHP 7-mod-MySQL
③配置php.ini
打开/etc/php.ini。
vi /etc/php.ini
根据以下内容进行修改:
[PHP]doc_root = "/web" #网站-存储目录user_dir = "/web" #随意extension _ dir = "/usr/lib/PHP " # PHP对存储目录进行扩展,如果出错就不会加载扩展[/h]其他前面有# note #。如果以后安装了新的扩展,对应的# numberextension = mysqli . so #原来是mysql.so,但是已经放弃了mysql功能。使用mysqlextension = PDO . so # PDO扩展extension = PDO-MySQL . so # PDO的MySQL函数[date]date . time zone = Asia/Shanghai #要更改时区,之前的时区支持是配置[PDO _ MySQL]PDO _ MySQL . cache _ size = 2000PDO _ MySQL . default _ socket =/var/run/该块中的所有MySQL都改为mysqli[mysqli]mysqli . allow _ local _ infile = onmysqli . allow _ persistent = onmysqli . cache _ size = 2000mysqli . max _ persistent =-1mysqli . max _ links =-1mysqli . default _ port = 3306mysqli
(4)配置php-fpm
打开/etc/php7-fpm.d/www.conf:
vi /etc/php7-fpm.d/www.conf
根据以下内容进行修改:
User = www #php-fpm的运行标识group = www # user grouplisten = 127 . 0 . 0 . 1:9000 # php-FPM监听服务端口,该端口用于解析从本机传递过来的PHP代码。
(5)运行php-fpm,加入自启动。
服务php7-fpm启动
服务php7-fpm启用
(6)测试php7是否正常工作。
转到/web文件夹:
cd /web
创建一个名为index.php的文件:
六index.php
在其中输入代码:
保存后打开浏览器访问192.168.1.1:8080,出现phpinfo网页,说明安装成功。
至此,ONMP的基本配置完成。
当然,我们还没有测试php和mariadb是否连接正确。我们可以用大神们写的探针测试一下。度娘搜索“PHP探针”,下载,上传到/web目录,访问探针文件,可以测试。
还有,我们现在安装的php功能都很弱。比如禁用一些危险的功能没有设置,curl,iconv,json,xml等扩展还没有安装。您可以使用以下命令:
opkg列表| grep php7-mod-*
列出php7的所有扩展包,用opkg install命令一次安装完列出的扩展包。
安装完扩展包后,别忘了修改php.ini去掉* .so前的#号。
建立个人网站还剩下两个关键步骤:
如果你还没有完成,请留言。
谢谢大家的赞、分享和关注。欢迎吐槽。大家一起交流分享软件使用的小技巧吧。