tengine简单安装_树莓派使用宝塔面板安装LNMP环境

书接上回,前面说到我被垃圾Rock 64搞的死去活来,索性在树莓派上装了Ubuntu 20.04 LTS。 为了方便配置V2Ray,我忙活了一天终于把LNMP环境搞定了。下面说说怎么搞的,避免后面再踩坑。

安装宝塔面板

在安装之前需要先安装必要的软件。Ubuntu 20.04 LTS上没有make和cmake,需要手动安装:

sudo apt-get install make -y
sudo apt-get install cmake -y

宝塔面板安装比较简单,官方提供的脚本如下:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

执行过程中除了按一次y和回车外就是等,很简单。

安装LNMP环境

各软件版本

这个是本次的重中之重,需要解决的问题比较多。安装的各软件版本如下:

  • Tengine Nginx
  • MySQL 5.6
  • Pure-ftpd 1.0.49
  • phpMyAdmin 4.7
  • PHP 7.2(也可以更高,PHP兼容性很好)

Pure-ftpd无法启动的解决办法

7d4f9e2317d5223831072edc58ca271c.png

按照上图所示的方法打开设置界面,选择配置修改,找到TLS,把后面的1改成0。

Nginx安装前准备

树莓派上装Nginx非常麻烦,有很多东西需要配置,下面分步骤讲解:

安装LuaJIT(OpenResty版本)

cd ~/
wget -c -O luajit2-2.1-20200102.tar.gz https://github.com/openresty/luajit2/archive/v2.1-20200102.tar.gz -T 5
tar xvf luajit2-2.1-20200102.tar.gz
cd luajit2-2.1-20200102
sudo make
sudo make install

安装Lua Cjson(OpenResty版本)

cd ~/
wget -O lua-cjson-2.1.0.8rc1.tar.gz https://github.com/openresty/lua-cjson/archive/2.1.0.8rc1.tar.gz -T 5
tar xvf lua-cjson-2.1.0.8rc1.tar.gz
cd lua-cjson-2.1.0.8rc1
sudo make LUA_INCLUDE_DIR=/usr/local/include/luajit-2.1
sudo make install

修改Nginx安装脚本

sudo nano /www/server/panel/install/nginx.sh

找到LuaModVer,替换连续的两行为:

LuaModVer="0.10.16rc5"
wget -c -O lua-nginx-module-${LuaModVer}.zip https://github.com/openresty/lua-nginx-module/archive/v0.10.16rc5.zip -T 5

找到调用Install_LuaJIT和Install_cjson的地方,注释这两行,并加入下面两行:

export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.1/

保存并退出!

然后使用以下命令锁定该文件:

sudo chattr +i /www/server/panel/install/nginx.sh

如果你的树莓派上没有这个文件,可能是因为需要先安装一次才会出现,那就安装一次,我这除了Nginx和pure-ftpd别的都能运行,pure-ftpd就按照上面的方法解决,Nginx启动不了,先卸载再按这个步骤重新安装。

注意:Nginx要选Tengine,别的版本装不上,会报错。相信我,我都试过了!

上面的修改完了后,去网页上重新安装。

安装后配置

安装完Nginx后依然无法正常运行,会出现如下错误:

nginx: [alert] failed to load the 'resty.core' module (https://github.com/openresty/lua-resty-core); ensure you are using an OpenResty release from https://openresty.org/en/download.html (reason: module 'resty.core' not found:
no field package.preload['resty.core']
no file './resty/core.lua'
no file '/usr/local/share/luajit-2.1.0-beta3/resty/core.lua'
no file '/usr/local/share/lua/5.1/resty/core.lua'
no file '/usr/local/share/lua/5.1/resty/core/init.lua'
no file './resty/core.so'
no file '/usr/local/lib/lua/5.1/resty/core.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file './resty.so'
no file '/usr/local/lib/lua/5.1/resty.so'
no file '/usr/local/lib/lua/5.1/loadall.so') in /www/server/nginx/conf/nginx.conf:88

安装lua-resty-core

cd ~/
wget -c -O lua-resty-core.tar.gz https://github.com/openresty/lua-resty-core/archive/v0.1.18rc4.tar.gz -T 5
tar xvf lua-resty-core.tar.gz
cd lua-resty-core-0.1.18rc4

替换Makefile为如下内容:

OPENRESTY_PREFIX=/usr/local/openresty#LUA_VERSION := 5.1
PREFIX ?=          /usr/local
LUA_INCLUDE_DIR ?= $(PREFIX)/include
LUA_LIB_DIR ?=     $(PREFIX)/lib/lua/$(LUA_VERSION)
INSTALL ?= install.PHONY: all test installall: ;install: all$(INSTALL) -d $(DESTDIR)$(LUA_LIB_DIR)/resty/core/$(INSTALL) -d $(DESTDIR)$(LUA_LIB_DIR)/ngx/$(INSTALL) -d $(DESTDIR)$(LUA_LIB_DIR)/ngx/ssl$(INSTALL) lib/resty/*.lua $(DESTDIR)$(LUA_LIB_DIR)/resty/$(INSTALL) lib/resty/core/*.lua $(DESTDIR)$(LUA_LIB_DIR)/resty/core/$(INSTALL) lib/ngx/*.lua $(DESTDIR)$(LUA_LIB_DIR)/ngx/$(INSTALL) lib/ngx/ssl/*.lua $(DESTDIR)$(LUA_LIB_DIR)/ngx/ssl/$(INSTALL) lib/resty/*.lua /usr/local/share/luajit-2.1.0-beta3/resty/$(INSTALL) lib/resty/core/*.lua /usr/local/share/luajit-2.1.0-beta3/resty/core/test: allPATH=$(OPENRESTY_PREFIX)/nginx/sbin:$$PATH prove -I../test-nginx/lib -r t

执行以下命令安装:

sudo make install

安装lua-resty-lrucache

cd ..
wget -c -O lua-resty-lrucache.tar.gz https://github.com/openresty/lua-resty-lrucache/archive/v0.10rc1.tar.gz -T 5
tar xvf lua-resty-lrucache.tar.gz
cd lua-resty-lrucache-0.10rc1

替换Makefile为如下内容:

OPENRESTY_PREFIX=/usr/local/openrestyPREFIX ?=          /usr/local
LUA_INCLUDE_DIR ?= $(PREFIX)/include
LUA_LIB_DIR ?=     $(PREFIX)/lib/lua/$(LUA_VERSION)
INSTALL ?= install.PHONY: all test install lintall: ;install: all$(INSTALL) -d $(DESTDIR)/$(LUA_LIB_DIR)/resty/lrucache$(INSTALL) lib/resty/*.lua $(DESTDIR)/$(LUA_LIB_DIR)/resty/$(INSTALL) lib/resty/lrucache/*.lua $(DESTDIR)/$(LUA_LIB_DIR)/resty/lrucache/$(INSTALL) lib/resty/*.lua /usr/local/share/luajit-2.1.0-beta3/resty/$(INSTALL) lib/resty/lrucache/*.lua /usr/local/share/lua/5.1/resty/lrucache/test: all lintPATH=$(OPENRESTY_PREFIX)/nginx/sbin:$$PATH prove -I../test-nginx/lib -r tlint:@! grep -P -n --color -- 'require.*?resty.lrucache[^.]' t/*pureffi*/*.t || (echo "ERROR: Found pureffi tests requiring 'resty.lrucache'." > /dev/stderr; exit 1)@! grep -R -P -n --color --exclude-dir=pureffi --exclude=*mixed.t -- 'require.*?resty.lrucache.pureffi' t/*.t || (echo "ERROR: Found pure Lua tests requiring 'resty.lrucache.pureffi'." > /dev/stderr; exit 1)

执行以下命令安装:

sudo make install

完成后重启Nginx。推荐在网页上操作。

大功告成!

开源爱好者 | Use it or lose it!​blog.ee-fans.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cmd中Redis的启动

对于Redis缓存数据库来说,是使用命令行来进行有关操作的,那么我们如何使用命令行来打开Redis数据库呢??? 1.在windows电脑上按windowsR,然后输入cmd打开命令行 2.根据我们安装Redis的路径切换到对应的盘中…

【youcans 的 OpenCV 例程200篇】146. 基于灰度形态学的复杂背景图像重建

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 【youcans 的 OpenCV 例程200篇】146. 基于灰度形态学的复杂背景图像重建 5.8 灰度形态学图像重建 灰度级形态学重建涉及标记图像 …

Tomcat端口号的修改

当我们运行web项目的时候通常要输入Tomcat的端口号进行访问,那么我们如何修改Tomcat的端口号呢??? 我们要到安装目录(或者解压目录)下找到conf文件夹,在里面找到server.xml的文件右击用记事本打开,找到 修…

golang 获取当天0点时间_golang使用webAssembly的方式

WebAssembly (WASM) 是一种新的编码方式,可以在现代的网络浏览器中运行- 它是一种低级的类汇编语言,具有紧凑的二进制格式,可以接近原生的性能. 可以将C/C/Rust/GO代码编译成.wasm文件, 然后运行在web上面.本文仅介绍Golang与WASM…

Redis数据库的连接

对于Redis缓存数据库的连接要有两大步,一是启动我们的Redis服务,只有Redis服务启动了我们才能对它进行连接等相关操作,二就是Redis数据库的连接了。 首先,确保我们电脑上已经安装好了Redis数据库。 一 . 启动Redis服务 1.在我的…

dnn神经网络 缺点_抄近路神经网络如何因找捷径而犯错

导读:Te road reaches every place, the short cut only one”— James Richardson见路不走:现在有很多大师都告诉别人要去照抄别人,有的大师告诉别人不要去照抄别人,这两种说法都不全面,首先要分析事物发生的本质&…

java - 数组逆序输出

根据提示输入一串数组(多个类型完全相同数字)当输入数组完成时输入-1(-1代表结束),程序会在控制台输出你输入的数组,并且还会再此把你输入的数组逆序输出。 结果演示 代码展示 package com.three;import…

分组后统计总数_大数据时代看排球:排球技术统计能告诉你什么?

2020-08-25 中国排协排球技术统计是将排球比赛行为按照一定的规则和排列方式进行记录,再将记录的数据汇总形成统计表格的一种统计行为。国际排联(FIVB)和中国排球协会(CVA)公布的一系列技术统计数据,对指导训练、比赛和进行相关的排球科研工作具有重要指…

计算机设计大赛国奖作品_2. 报名材料

计算机设计大赛国奖作品_2. 报名材料 本系列是2021年中国大学生计算机设计大赛作品“环境监测无人机航线优化”的相关文档,获得2021年西北赛区一等奖,国赛三等奖。学生习作,只供大家参考。 计算机设计大赛国奖作品_1. 项目概要 计算机设计大…

【youcans 的 OpenCV 例程200篇】147. 图像分割之孤立点检测

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 【youcans 的 OpenCV 例程200篇】147. 图像分割之孤立点检测 1. 图像分割基本概念 图像分割就是把图像分成若干个特定的、具有独特…

【youcans 的 OpenCV 例程200篇】148. 图像分割之线检测

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 【youcans 的 OpenCV 例程200篇】148. 图像分割之线检测 2. 点、线和边缘检测 本节基于图像灰度的不连续性,讨论根据灰…

数组顺序的移动

按照控制台的文本提示输入数组的长度,输入数组的元素,控制台会输出你输入的数组,然后会有文本提示让你输入移动的位数,当你输入之后,会重新输出移动之后的数组。 结果展示 代码演示 package com.three;import java.…

计算机设计大赛国奖作品_4. 界面设计

计算机设计大赛国奖作品_4. 界面设计 计算机设计大赛国奖作品_1. 项目概要 计算机设计大赛国奖作品_2. 报名材料 计算机设计大赛国奖作品_3. 需求分析 计算机设计大赛国奖作品_4. 界面设计 计算机设计大赛国奖作品_5. 核心算法 计算机设计大赛国奖作品_6. 测试报告 [计算机设计…

【youcans 的 OpenCV 例程200篇】149. 图像分割之边缘模型

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 【youcans 的 OpenCV 例程200篇】149. 图像分割之边缘模型 2. 点、线和边缘检测 本节基于图像灰度的不连续性,讨论根据…

求数列1/3到1/n之和

求数列之和,数列从1/3开始,到1/n结束,当我们输入任意数x的时候,那么这个数列相加之和到1/x结束,控制台会输出数列之和。 求1/3到1/9数列之和 结果演示 代码演示 package com.four;import java.util.Scanner; publi…

【youcans 的 OpenCV 例程200篇】150. 边缘检测梯度算子

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 【youcans 的 OpenCV 例程200篇】150. 边缘检测梯度算子 2. 点、线和边缘检测 本节基于图像灰度的不连续性,讨论根据灰…

计算字符串长度

字符串是任意类型任意数字组成的一段字符,那么我们如何计算此段字符串的长度呢??? 结果演示 代码演示 package com.four;import java.util.Scanner; public class Long {public static void main(String[] args) {Scanner inpu…

【youcans 的 OpenCV 例程200篇】151. 边缘检测中的平滑处理

欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 【youcans 的 OpenCV 例程200篇】151. 边缘检测中的平滑处理 2. 点、线和边缘检测 2.4 边缘检测的常用梯度算子 边缘检测的基本方…

排序 从小到大输出

根据控制台文本提示输入三个数字,控制台会按照从小到大的顺序输出。 结果演示 代码演示 package com.four;import java.util.Arrays; import java.util.Scanner; public class Paixu {public static void main(String[] args) {Scanner input new Scanner(Syste…

c语言uint32_使C语言实现面向对象的三个要素,你掌握了吗?

编排 | strongerHuang微信公众号 | strongerHuang不知道有多少人去了解过语言的发展史,早期C语言的语法功能其实比较简单。随着应用需求和场景的变化,C语言的语法功能在不断升级变化。虽然我们的教材有这么一个结论:C语言是面向过程的语言&am…