博客内容简述
本篇博客主要是新手入门OpenResty的必经之路,也将是很多人第一次写lua脚本代码。内容包括如下:
- 使用Debian-wsl安装OpenResty。
- 在命令行运行输出“HelloWorld”。
- 使用VSCode连接Debian-wsl,且运行Helloworld项目,且能够通过OpenResty部署在本地服务器上,然后通过curl命令获取“HelloWorld”。
本地环境
Windows10 Pro: 21H1(OS Build 19043.1415)
Debian: 11(bullseye) x86_64
OpenResty: 因为按照官方文档在Debian系统中添加了OpenResty仓库,这样以后可以随时安装或更新软件包(目前我的理解就是一行命令的事情)
Debian-wsl上安装OpenResty
这个其实很是简单,在OpenResty的官方文档里就解释的很是详细,这边再简单过一下哈。
步骤一:安装导入GPG公钥时需要的几个依赖包
sudo apt-get -y install --no-install-recommends wget gnupg ca-certificates
步骤二:导入我们的GPG密钥
wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
步骤三:添加OpenResty的官方apt仓库
对于 x86_64
或 amd64
系统,可以使用下面的命令:
codename=`grep -Po 'VERSION="[0-9]+ \(\K[^)]+' /etc/os-release`
echo "deb http://openresty.org/package/debian $codename openresty" \
| sudo tee /etc/apt/sources.list.d/openresty.list
而对于 arm64
或 aarch64
系统,则可以使用下面的命令:
codename=`grep -Po 'VERSION="[0-9]+ \(\K[^)]+' /etc/os-release`
echo "deb http://openresty.org/package/arm64/debian $codename openresty" \
| sudo tee /etc/apt/sources.list.d/openresty.list
这边我需要说一下哈,第一次看到这个其实很难理解。但是我们只需要照做就是了,也就是将这两行命令一次paste进命令行里即可。
我这边因为是上午就完成了,已经找不到了,就先不上图了哈。
步骤四:更新 APT 索引:
sudo apt-get update
然后就可以像下面这样安装软件包,比如 openresty
:
sudo apt-get -y install openresty
这个包同时也推荐安装 openresty-opm
和 openresty-restydoc
包,所以后面两个包会缺省安装上。 如果你不想自动关联安装,可以用下面方法关闭自动关联安装:
sudo apt-get -y install --no-install-recommends openresty
PS:这里边就离谱,我都跑完命令了,然后告诉我可以关闭自动关联安装,淦。
命令行跑“Hello world”
第一次跑通的命令是这样的 hhhh
对比一下Python的运行代码
一串代码稍稍揭露OpenResty本质
虽然好像还是阻止了进程,但是还是可以一瞥一二的。
VSCode连接Debian-wsl
构建开发工作环境
其实只需要VSCode安装两个插件就行了
其中Lua插件甚至还可以给wsl上安装,MS是真的把这个wsl玩透了。
然后就可以继续在Debian-wsl上创建目录,目录如下:
进而在conf
文件夹创建nginx.conf
![nginx.conf in conf](/img/2022-01-10-OpenResty_Helloworld_in_Debian/nginx.conf in conf.png)
然后这边一定要注意的是,将OpenResty加入到PATH环境中; 方法如下:
PATH=/usr/local/openresty/nginx/sbin:$PATH
export PATH
这样就可以如愿将OpenResty加入到PATH环境中; 然后启动OpenResty服务
openresty -p `pwd` -c conf/nginx.conf
从这张图就可以很容易地看出来,我犯了至少两个错误
- 没有配置OpenResty的环境变量
- 代码写错了呢呜呜呜~
但是这串代码其实可以看出来,我们写的第一个OpenResty程序,在根目录下新增OpenResty的content_by_lua指令,里面又嵌入了ngx.say
的代码:
然后这个时候我们的OpenResty的服务已经成功启动了,可以使用curl命令,查看结果的返回:
(当然前提是我使用openresty -p `pwd` -c conf/nginx.conf
命令启动了OpenResty服务)
好嘞,第一个真正的OpenResty程序完成咯。
Inspired by chun's docs(看官方文档果然yyds鸭)