菜单开关

周梦康 发表于 2017-08-27 1369 次浏览 标签 : Luaopenresty

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

http://www.php.cn/manual/view/31825.html

安装

zhoumengkang@bogon:~/Downloads/lua-5.3.4$ sudo make install
Password:
cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.3 /usr/local/lib/lua/5.3
cd src && install -p -m 0755 lua luac /usr/local/bin
cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h lua.hpp /usr/local/include
cd src && install -p -m 0644 liblua.a /usr/local/lib
cd doc && install -p -m 0644 lua.1 luac.1 /usr/local/man/man1

编写脚本

#!/usr/local/bin/lua

print("Hello World!")

可以使用

lua 1.lua

上面的方式实际运行的时候第一行声明bin文件地址的代码是被注释的,如果删除了也一样可以执行。

如果想直接./1.lua的方式运行,记得赋予可执行权限

zhoumengkang@bogon:~/Downloads/lua-5.3.4/test$ ll -alh
total 8
drwxr-xr-x  3 zhoumengkang  staff   102B  8 27 18:51 ./
drwxr-xr-x@ 7 zhoumengkang  staff   238B  8 27 18:50 ../
-rw-r--r--@ 1 zhoumengkang  staff    69B  8 27 18:53 1.lua
zhoumengkang@bogon:~/Downloads/lua-5.3.4/test$ ./1.lua
-bash: ./1.lua: Permission denied
zhoumengkang@bogon:~/Downloads/lua-5.3.4/test$ sudo ./1.lua
Password:
sudo: ./1.lua: command not found
zhoumengkang@bogon:~/Downloads/lua-5.3.4/test$ chmod 755 1.lua 
zhoumengkang@bogon:~/Downloads/lua-5.3.4/test$ ll 
total 8
drwxr-xr-x  3 zhoumengkang  staff  102  8 27 18:51 ./
drwxr-xr-x@ 7 zhoumengkang  staff  238  8 27 18:50 ../
-rwxr-xr-x@ 1 zhoumengkang  staff   69  8 27 18:53 1.lua*
zhoumengkang@bogon:~/Downloads/lua-5.3.4/test$ ./1.lua 
Hello World!

安装 openresty

我用 lua 能快速的做什么
继续看 lua 的语法,索然无味,所以我想快点做东西出来,能够提升我的兴趣。
现在 mac 上 brew 安装

$ brew install homebrew/nginx/openresty
...
If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/openresty-openssl/bin:$PATH"' >> ~/.bash_profile

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/openresty-openssl/lib
    CPPFLAGS: -I/usr/local/opt/openresty-openssl/include
For pkg-config to find this software you may need to set:
    PKG_CONFIG_PATH: /usr/local/opt/openresty-openssl/lib/pkgconfig
...
==> ./configure --prefix=/usr/local/Cellar/openresty/1.11.2.5 --pid-path=/usr/local/var/run/openresty.pid --lock-path=/usr/local/
==> make
==> make install
==> Caveats
To have launchd start homebrew/nginx/openresty now and restart at login:
  brew services start homebrew/nginx/openresty
Or, if you don't want/need a background service you can just run:
  openresty

brew 安装的 openresty 默认的配置文件在

/usr/local/etc/openresty/nginx.conf

这就是我们非常熟悉的 nginx 配置规则了

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   html;
        index  index.html index.htm;
    }
}

默认的 root 目录

/usr/local/Cellar/openresty/1.11.2.5/nginx/html

可以通过下面的方式查看默认配置

$ openresty -h
nginx version: openresty/1.11.2.5
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/Cellar/openresty/1.11.2.5/nginx/)
  -c filename   : set configuration file (default: /usr/local/etc/openresty/nginx.conf)
  -g directives : set global directives out of configuration file

http://openresty.org/en/ebooks.html 春哥系统介绍
http://blog.sina.com.cn/openresty 春哥早期博客

实战小项目

  1. ip 访问频次统计,lua + redis 计数,php 做后台可视化管理
  2. 静态活动页面的展示,lua 判断浏览器是 PC 还是 h5,则显示不同的页面;PHP 后台更新页面,通过 popen 推送到各个openresty 服务器。https://mengkang.net/998.html

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表