nginx整合php+lua+oracle环境搭建

nginx整合php+lua+oracle环境搭建

标签: nginxluaoraclephplinux
2014-09-25 10:39 1473人阅读 评论(0) 收藏 举报
 分类:

技术(70)
版权声明:本文为博主原创文章,未经博主允许不得转载。

*执行 yum update   为了得到一个最新的系统

*执行 rpm -ivh 

oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm 

oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm 

oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

安装oracle客户端

*执行 echo "/usr/lib/oracle/12.1/client64/lib/" > /etc/ld.so.conf.d/oracle_client.conf  

*执行 ldconfig  设置加载库并加载

*执行 ldconfig -v | grep oracle  判定是否加载成功

*执行 vim /etc/profile

添加

export ORACLE_HOME=/usr/lib/oracle/12.1/client64/

export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/

export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"

*执行  source /etc/profile  设置oracle环境变量 并生效

*执行  echo $ORACLE_HOME  验证环境变量是否生效

*执行 hostname

*执行 vim /etc/hosts

 添加 127.0.0.1 hostname的结果

*执行 sqlplus64 用户名/密码@远程位置/数据库  测试oracle客户端是否生效

*执行 tar -zxvf libmcrypt-2.5.7.tar.gz

*执行 cd libmcrypt-2.5.7

*执行 ./configure

*执行 make

*执行 make install

*执行 tar -zxvf redis-2.8.15.tar.gz

*执行 mv redis-2.8.15 /usr/local/redis

*执行 cd /usr/local/redis

*执行 make

*执行 vi /usr/local/redis/redis.conf

打开配置文件

daemonize yes

unixsocket /tmp/redis.sock

dir /opt/redis/

*执行 mkdir /opt/redis

*启动 /usr/local/redis/src/redis-server /usr/local/redis/redis.conf

*执行 tar -zxvf php-5.5.16.tar.gz 

*执行 cd php-5.5.16

*执行 ./configure --prefix=/usr/local/php --enable-fpm --with-openssl --with-zlib --with-curl --enable-exif --with-zlib-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-jis-conv --with-mhash --enable-mbstring --with-mcrypt --enable-sysvshm --enable-soap --enable-sockets  --enable-opcache --enable-zip --enable-mysqlnd --with-xsl --with-pear

*提示 configure: error: xml2-config not found. Please check your libxml2 installation.

*执行 yum install libxml2-devel

*提示 configure: error: Cannot find OpenSSL‘s <evp.h>

yum install openssl-devel

*提示 error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

yum install libcurl-devel

*提示 configure: error: jpeglib.h not found.

yum install libjpeg-turbo-devel

*提示 configure: error: png.h not found.

yum install libpng-devel

*提示 configure: error: freetype-config not found.

yum install freetype-devel

*提示 configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

yum install libxslt-devel

*执行 make

*执行 make install

*执行 cp php.ini-development /usr/local/php/lib/php.ini

*执行 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

vim

打开

pid = run/php-fpm.pid

error_log = log/php-fpm.log

log_level = notice

daemonize = yes

*执行 cd 源码目录/ext/oci8/

*执行 /usr/local/php/bin/phpize

*执行 ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client64/lib  --with-php-config=/usr/local/php/bin/php-config

*执行 make

*执行 make install

*执行 cd 源码目录/ext/pdo_oci/

*执行 /usr/local/php/bin/phpize

*执行 ./configure --with-pdo-oci=instantclient,/usr,12.1 --with-php-config=/usr/local/php/bin/php-config

*执行 make

*执行 make install

*执行 unzip phpredis.zip

*执行 cd phpredis-master

*执行 ./configure --with-php-config=/usr/local/php/bin/php-config

*执行 make

*执行 make install

vi /usr/local/php/lib/php.ini

添加

extension=redis.so

extension=oci8.so

extension=pdo_oci.so

date.timezone = "Asia/Shanghai"

*执行 /usr/local/php/bin/php -m | grep redis

*执行 /usr/local/php/bin/php -m | grep oci8

判断加载模块是否成功

[php test.php]

<?php

$oracle_host= "";

$oracle_dbname = "";

$oracle_user = "";

$oracle_pwd = "";

$redis_host = "127.0.0.1";

$redis_port = "6379";

function oracle_connect()

{

        global $oracle_host,$oracle_dbname, $oracle_user,$oracle_pwd;

        try{

                $conn = new PDO("oci:dbname=//{$oracle_host}/{$oracle_dbname};charset=AL32UTF8",$oracle_user,$oracle_pwd);

        }catch(PDOException $e){

                echo ($e->getMessage());

                return false;

        }

        return $conn;

}

echo "oracle connect:";

print_r(oracle_connect());

echo "\n";

echo "redis connect:";

$redis = new Redis();

$redis->connect($redis_host, $redis_port);

print_r($redis);

?>

[/php]

*执行 /usr/local/php/bin/php -f test.php  无报错表示成功

*执行 tar -zxvf luarocks-2.1.2.tar.gz

*执行 cd luarocks-2.1.2

*执行 ./configure

*执行 make build

*执行 make install

*执行 luarocks install  luasocket

unzip luasocket-2.0.3-rc1.zip 

cd luasocket-2.0.3

vi config 

修改

INSTALL_TOP_SHARE=/usr/share/lua/5.1

INSTALL_TOP_LIB=/usr/lib64/lua/5.1

关闭

#------

# Compiler and linker settings

# for Mac OS X

#

CC=gcc

DEF= -DLUASOCKET_DEBUG -DUNIX_HAS_SUN_LEN

CFLAGS= $(LUAINC) $(COMPAT) $(DEF) -pedantic -Wall -O2 -fno-common

LDFLAGS=-bundle -undefined dynamic_lookup

LD=export MACOSX_DEPLOYMENT_TARGET="10.3"; gcc

打开

#------

# Compiler and linker settings

# for Linux

CC=gcc

DEF=-DLUASOCKET_DEBUG 

CFLAGS= $(LUAINC) $(DEF) -pedantic -Wall -O2 -fpic

LDFLAGS=-O -shared -fpic

LD=gcc 

*执行 make

*执行 make install

*执行 unzip lua-nginx-module.zip

*执行 unzip ngx_devel_kit.zip

*执行 tar -zxvf nginx-1.6.2.tar.gz

*执行 cd nginx-1.6.2

*执行 ./configure --prefix=/usr/local/nginx --add-module=../ngx_devel_kit-master/ --add-module=../lua-nginx-module-master/ --with-pcre --with-debug --with-poll_module --with-file-aio --with-http_realip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_secure_link_module

*提示 ./configure: error: ngx_http_lua_module requires the Lua library.

yum install lua-devel

*提示 ./configure: error: the HTTP rewrite module requires the PCRE library.

yum install pcre-devel

*执行 make

*执行 make install

编辑添加nginx 测试

[nginx conf]

   server{

        listen 8080;

        location /lua/ {

                default_type ‘text/plain‘;

                content_by_lua_file /usr/local/nginx/html/test.lua;

        }

        location /{

        }

        location ~ \.php$ {

                root           /usr/local/nginx/html/;

                fastcgi_pass   127.0.0.1:9000;

                fastcgi_index  test.php;

                fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;

                include        fastcgi_params;

        }

    }

[/nginx]

*启动 /usr/local/php/sbin/php-fpm 

*执行 ps aux |  grep php 确认启动成功

*启动 /usr/local/nginx/sbin/nginx

*执行 ps aux |  grep nginx 确认启动成功

*启动 /usr/local/redis/src/redis-server /usr/local/redis/redis.conf

*执行 ps aux |  grep redis 确认启动成功

vim /usr/local/nginx/html/test.php

[php test.php]

<?php

$oracle_host= "";

$oracle_dbname = "";

$oracle_user = ";

$oracle_pwd = "";

$redis_host = "127.0.0.1";

$redis_port = "6379";

function oracle_connect()

{

        global $oracle_host,$oracle_dbname, $oracle_user,$oracle_pwd;

        try{

                $conn = new PDO("oci:dbname=//{$oracle_host}/{$oracle_dbname};charset=AL32UTF8",$oracle_user,$oracle_pwd);

        }catch(PDOException $e){

                echo ($e->getMessage());

                return false;

        }

        return $conn;

}

echo "oracle connect:";

print_r(oracle_connect());

echo "<br/>";

echo "redis connect:";

$redis = new Redis();

$redis->connect($redis_host, $redis_port);

print_r($redis);

echo "<br/>";

phpinfo();

?>

[/php]

*执行 unzip redis-lua-version-2.0.zip

*执行 cd redis-lua-version-2.0

*执行 cp src/redis.lua /usr/share/lua/5.1/

*执行 unzip luautf8.zip

*执行 cd luautf8-master/

*执行 gcc -shared -O3 lutf8lib.c -o utf8.so -fPIC

*执行 cp utf8.so /usr/lib64/lua/5.1/utf8.so

[lua test.lua]

utf8 = require("utf8")

local inu_str = "11a我";

local str_len = utf8.len(inu_str)

print("utf8 test:")

print(utf8.sub(inu_str,0,2))

print("\n")

local redis = require("redis")

local client = redis.connect(‘127.0.0.1‘, 6379)

local response = client:ping()

print("redis test:")

print(response)

print("\n")

[/lua]

*执行 lua test.lua 测试模块有效性

*执行 vim /usr/local/nginx/html/test.lua

[lua test.lua]

utf8 = require("utf8")

local inu_str = "11a我";

local str_len = utf8.len(inu_str)

ngx.say("utf8 test:")

ngx.say(utf8.sub(inu_str,0,2))

ngx.say("<br/>")

local redis = require("redis")

local client = redis.connect(‘127.0.0.1‘, 6379)

local response = client:ping()

ngx.say("redis test:")

ngx.say(response)

ngx.say("\n")

[/lua]

*执行 /usr/local/nginx/sbin/nginx -t  测试nginx跟lua整合

*需要oralce完整安装包

unzip luasql.zip

cd luasql-master

vi config

核心配置

DRIVER_LIBS= -L$(ORACLE_HOME)/lib -lz -lclntsh

DRIVER_INCS= -I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/rdbms/public

make

make install

*提示 libclntsh.so 找不到

*执行 echo "/opt/oracle/lib/" > /etc/ld.so.conf.d/oracle_client.conf

*执行 ldconfig

[lua test_oracle.lua]

require "luasql.oci8"

env = assert (luasql.oci8())

con = assert (env:connect(库名,用户名,密码,连接地址,端口))

[/lua]
时间: 2024-12-28 15:41:45

nginx整合php+lua+oracle环境搭建的相关文章

nginx 与 lua 开发环境搭建

首先下载最新版的 相关软件 的安装文件. nginx: http://nginx.org/en/download.html LuaJIT: http://luajit.org/download.html lua-nginx-module: https://github.com/openresty/lua-nginx-module/releases/tag/v0.9.16 ngx_devel_kit: https://github.com/simpl/ngx_devel_kit/releases/

Ubuntu下nginx+uwsgi+flask的运行环境搭建

选择web framwork是个很艰难的事情, 主要分为轻量级和重量级框架. 由于没有搭建网站这种需要, 所以回避SSH, Django这种框架, 而选择一个轻量级框架. 自己也比较青睐python这门语言, 就选择了flask框架, nginx代理服务器享誉盛名, 所以拿来使用咯. 一. 开发环境搭建 采用离线安装方式, ubuntu开发环境(centos等环境类似) nginx 安装 $ wget http://nginx.org/download/nginx-1.6.0.tar.gz #仅

VS2008 Lua 编程环境搭建(初学备忘)

在VS 2008 中,导入 lua.h 之类的头文件后,编译含有Lua函数的时候,可能会出现如下错误: 1>main.obj : error LNK2019: 无法解析的外部符号_luaL_checkinteger,该符号在函数"int __cdecl add(struct lua_State *)" ([email protected]@[email protected]@@Z) 中被引用 1>main.obj : error LNK2019: 无法解析的外部符号_lua

C++中嵌入Lua脚本环境搭建

第一步(环境准备工作): 工具: ●LuaForWindows_v5.1.4-46.exe傻瓜式安装. 作用:此工具可以在windows环境下编译运行Lua脚本程序.安装完成后会有两个图标:Lua和SciTE.Lua是命令行,SciTE是图形运行环境,两个都可以编译运行,看个人喜好. ●VS2012大家都会,此处省略若干字... 第二步(在VS2012下新建并运行C++中嵌入Lua脚本程序): ●打开VS2012,新建一个控制台的C++空项目 ●配置Lua的安装路径和引用相关Lua库 1.右击新

cocos2dx--vs2012+lua开发环境搭建

cocos2dx版本:cocos2dx2.2.3 lua插件:babelua 1.5.3  下载地址:http://pan.baidu.com/s/1i3mPD8h 第一步:先关闭vs,双击下载下来的BabeLua.vsix,双击按照提示安装 第二步:新建一个lua工程,先在vs环境下运行生成.exe文件, 我的lua工程的目录是G:\Cocos2d-x\cocos2d-x-2.2.3\cocos2d-x-2.2.3\projects\LuaTest 第三步:打vs,安装成功的话会在菜单栏出现一

S2SH开发环境搭建、框架整合、项目基础环境搭建

S2SH开发环境搭建.框架整合.项目基础环境搭建 1.S2SH框架整合 新建项目s2sh: 1.1添加jar包 1.1.1添加Struts的jar包 添加如下的jar包: commons-fileupload-1.2.2.jar commons-io-2.0.1.jar freemarker-2.3.19.jar ognl-3.0.5.jar struts2-core-2.3.4.1.jar xwork-core-2.3.4.1.jar 疑惑:这些jar可以从哪里获得呢? 对于一个框架来说,别人

一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建

作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装CentOS7 安装.NET Core SDK for CentOS7 搭建ftp服务器 安装mysql 部署ASP.NET Core应用程序 配置Nginx 配置守护服务(Supervisor) 环境说明 服务器系统:CentOS 7.3 64位 相关工具:putty.Xftp 服务器软件软件:.n

keepalived+nginx高可用负载均衡环境搭建

上篇说道keepalived的环境搭建,本来keepalived结合lvs更有优势,但是也可以结合nginx来使用.下面接着说下nginx的环境搭建 环境信息: nginx(master)  192.168.1.106 nginx(bakup)   192.168.1.103 首先安装一下pcre yum install pcre-devel 安装完了解压nginx.我用的是nginx-1.6.2.tar.gz tar -zvxf nginx-1.6.2.tar.gz cd nginx-1.6.

【Lua】linux下lua+mod_lwt环境搭建

Lua 是一个小巧的脚本语言.它具有轻量级.可扩展等优势.它可以作为一个强大.轻量的脚本语言,供任何需要的程序使用. LWT (Lua Web Tools) 可让你使用 Lua 开发 Web 应用,并可直接在 Apache 上运行.LWT 的核心功能通过一个 Apache 的模块(mod_lwt)来提供.另外 LWT 提供可选的 Lua 模块用来访问数据库和缓存. 现在用lua + LWT来搭建后台web环境. 安装lua: 在linux中,有两种方法可以安装lua. 第一种:系统为Ubunut