zoukankan      html  css  js  c++  java
  • cygwin 安装openresty过程记录

    步骤:

    1,cygwin最新版本。

    2,cygwin安装模块:gcc, make, openssl, pcre, readline, perl, wget, unzip, sqlite。(应该是全的,在后面编译安装软件的时候会提示缺少的模块或命令,后续可以再装的)

    3,cygwin手工下载源码编译安装:luarocks, lua5.1.5, 然后运行luarocks install xx命令安装其他模块(如 lsqlite3)等。

    4,ngx_openresty1.7.10.2编译安装。参照(http://www.makaidong.com/149671.html)。

    遇到的问题及解决过程:

    1,luarocks install命令是默认使用wget工具来下载的,没装的话会报获取manifest文件失败,没装unzip的话则报解压manifest文件失败。

    2,编译lua_cjson中报: 函数"lua_xxx"未定义的引用。lua_xx函数出现多,是由于没有找到lua动态库,将liblua.a拷到/usr/local/lib/liblua.a下即可编译了。中间被折腾的没办法了,最终尝试用luarocks install lua_cjson 来安装,发现安装参数后面多了一个-llua。查看gcc命令得知,-L是查找库路径,而-l是加载库的。库默认路径为/usr/local/lib。可修改makefile文件,指定lua库路径并加载库(-L/usr/local/lib -llua)。修改openresty/bundle中的lua-cjson,lua-rds,lua-redis三个的Makefile文件。

    3,编译通过,安装报"crypto函数未定义的引用"。经查和看代码发现,crypto函数属openssl包中的,那么也是由于这个库没有加载,导致编译失败。于是查找libcrypto.a,拷到/usr/local/lib下。

    4,经过一番折腾,也不知是安装了什么东东,竟然按照步骤4帖子的编译步骤,顺利编译通过和运行了。之前可是一直不行的。

    5,openresty使用系统的lua来编译运行。调用cjson和lsqlite3模块报错:dynamic libraries not enabled; check your Lua installation 追述原因就是没有编译动态库加载,这样我们修改lua源码文件下的 src/Makefile文件找到posix修改成这样:

    posix:
    #$(MAKE) all MYCFLAGS=-DLUA_USE_POSIX
    $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-ldl"
     

    体会:

    1,学如逆水行舟,每前进一步都是需要努力的。

  • 相关阅读:
    【无中生有】---4----数据库设计-3
    【无中生有】---2---数据库设计-1
    redis3.0的demo实验
    redis3.0的demo实验
    那些在学习iOS开发前就应该知道的事(part 1)
    模板文件中的插件嵌入点列表
    图像处理框架 Core Image 介绍
    sharepoint services
    DiscuzX2.5数据库字典 值得学习
    Sublime Text 使用技巧
  • 原文地址:https://www.cnblogs.com/weiwelcome0/p/5771107.html
Copyright © 2011-2022 走看看