# CentOS 平臺下OpenResty的安裝
#### 源碼包準備
我們首先要在[官網](http://openresty.org/)下載OpenResty的源碼包。官網上會提供很多的版本,各個版本有什么不同也會有說明,我們可以按需選擇下載。筆者選擇下載的源碼包為ngx_openresty-1.7.10.1.tar.gz。
#### 相關庫的安裝
將這些相關的庫perl 5.6.1+,libreadline, libpcre, libssl安裝在系統中。按照以下步驟:
1. 用你喜歡的方式打開命令終端。
1. 為了保險起見,切換到root用戶(后面的步驟也一樣)。在終端輸入su,再輸入密碼,root成功。
1. 輸入以下命令`yum install readline-devel pcre-devel openssl-devel perl`,一次性安裝需要的庫。
1. 相關庫安裝成功。安裝成功后會有“Complete!”字樣。
#### OpenResty的安裝
1. 在命令行中切換到源碼包所在目錄。
1. 輸入命令`tar xzvf ngx_openresty-1.7.10.1.tar.gz`,按回車鍵解壓源碼包。若你下載的源碼包版本不一樣,將相應的版本號改為你所下載的即可,或者直接拷貝源碼包的名字到命令中。此時當前目錄下會出現一個ngx _ openresty-1.7.10.1文件夾。
1. 在命令行中切換工作目錄到ngx _ openresty-1.7.10.1。輸入命令`cd ngx_openresty-1.7.10.1`。
1. 了解組件是否默認激活。[官網](http://openresty.org/)上有個組件列表,我們可以參考,列表中大部分組件默認激活,也有部分默認不激活。默認不激活的組件,我們可以在編譯的時候將他們激活,下面步驟詳說如何激活。
1.
配置安裝目錄及需要激活的組件。使用選項--prefix=install*path,指定其安裝目錄(默認為/usr/local/openresty);使用選項--with-Components激活組件,--without則是禁止組件,你可以根據自己實際需要選擇with及without。輸入如下命令,OpenResty將配置安裝在/opt/openresty目錄下(注意使用root用戶),并激活luajit、http * iconv * module并禁止http * redis2 _ module組件。
~~~
./configure --prefix=/opt/openresty\
--with-luajit\
--without-http_redis2_module \
--with-http_iconv_module
~~~
1.
在上一步中,最后沒有什么error的提示就是最好的。若有錯誤,最后會顯示error字樣,具體原因可以看源碼包目錄下的build/nginx-VERSION/objs/autoconf.err文件查看。若沒有錯誤,則會出現如下信息,提示下一步操作:
~~~
Type the following commands to build and install:
gmake
gmake install
~~~
1.
編譯。根據上一步命令提示,輸入`gmake`。
1. 安裝。輸入`gmake install`.
1. 上面的步驟順利完成之后,安裝已經完成。可以在你指定的安裝目錄下看到一些相關目錄及文件。
#### 設置環境變量
為了后面啟動OpenResty的命令簡單一些,不用在OpenResty的安裝目錄下進行啟動,我們通過設置環境變量來簡化操作。將OpenResty目錄下的nginx/sbin目錄添加到PATH中。就是打開文件 /etc/profile,在文件末尾加入`export PATH=$PATH:/opt/openresty/nginx/sbin`,若你的安裝目錄不一樣,則做相應修改。注意:這一步操作需要重啟才會生效。
接下來,我們就可以進入到后面的章節[HelloWorld](#)學習。
- 序
- Lua 入門
- Lua簡介
- Lua環境搭建
- 基礎數據類型
- 表達式
- 控制結構
- if/else
- while
- repeat
- for
- break,return
- Lua函數
- 函數的定義
- 函數的參數
- 函數的返回值
- 函數回調
- 模塊
- String庫
- Table庫
- 日期時間函數
- 數學庫函數
- 文件操作
- 元表
- 面向對象編程
- FFI
- 下標從1開始
- 局部變量
- 判斷數組大小
- 非空判斷
- 正則表達式
- 不用標準庫
- 虛變量
- 函數在調用代碼前定義
- 抵制使用module()函數來定義Lua模塊
- 點號與冒號操作符的區別
- Nginx
- Nginx 新手起步
- location 匹配規則
- if 是邪惡的
- 靜態文件服務
- 日志服務
- 反向代理
- 負載均衡
- 陷阱和常見錯誤
- 環境搭建
- Windows平臺
- CentOS平臺
- Ubuntu平臺
- Mac OS X平臺
- Hello World
- 簡單API Server框架
- 獲取Nginx內置綁定變量
- LuaRestyRedisLibrary
- select+set_keepalive組合操作引起的數據讀寫錯誤
- redis接口的二次封裝(簡化建連、拆連等細節)
- redis接口的二次封裝(發布訂閱)
- pipeline壓縮請求數量
- script壓縮復雜請求
- LuaCjsonLibrary
- json解析的異常捕獲
- 稀疏數組
- 空table編碼為array還是object
- 跨平臺的庫選擇
- PostgresNginxModule
- 調用方式簡介
- 不支持事務
- 超時
- 健康監測
- SQL注入
- LuaNginxModule
- 執行階段概念
- 正確的記錄日志
- 熱裝載代碼
- 阻塞操作
- 緩存
- sleep
- 定時任務
- 禁止某些終端訪問
- 請求返回后繼續執行
- 調試
- 調用其他C函數動態庫
- 我的lua代碼需要調優么
- 變量的共享范圍
- 動態限速
- shared.dict 非隊列性質
- 如何添加自己的lua api
- 正確使用長鏈接
- 如何引用第三方resty庫
- 典型應用場景
- LuaRestyDNSLibrary
- 使用動態DNS來完成HTTP請求
- 緩存失效風暴
- 測試
- 單元測試
- API測試
- 性能測試
- 持續集成
- 灰度發布
- Web 服務
- API的設計
- 數據合法性檢測
- 協議無痛升級
- 代碼規范
- 連接池
- C10K編程
- TIME_WAIT問題
- 與Docker使用的網絡瓶頸
- 火焰圖
- 什么時候使用
- 顯示的是什么
- 如何安裝火焰圖生成工具
- 如何定位問題
- 開源文化對360企業安全的影響