windows下php+nginx+oci8

折腾了一天多,网上都是集成环境,基本都是apache,没有关于nginx的资料。其实这个问题说到底就是和版本相关。
32位oracle客户端,32位php,mysql,redis啥的都是可以用64位,没有影响。网上各种粘贴复制system32,WoW64等等,都是不起作用。
经过诸多尝试,现在小结一下,怎么一次成功。

1.下载7.1.30-ntsx86的php:

https://windows.php.net/downloads/releases/php-7.1.30-nts-Win32-VC14-x86.zip
解压文件,设置全局环境变量;

2.下载32位的Instant Client

oracle是需要注册用户才能下载,还不能立马登陆,有点麻烦,下面这个可以直接下载。
下载地址:https://download.oracle.com/otn/nt/instantclient/121020/instantclient-basiclite-nt-12.1.0.2.0.zip?AuthParam=1561637325_3cd0cb4c86ab9c1079109494ec2c0893
把上面的Instant Client 解压到c盘根目录下面,别的地方应该也可以,没试过,然后把这个目录加入到全局环境变量;移动到php环境变量之前。

windows下php+nginx+oci8_第1张图片
windows下php+nginx+oci8_第2张图片

3.下载拓展

如果你的php的ext目录下面没有oci相关的拓展,你就需要自己下载了,根据自己的版本下载。
https://windows.php.net/downloads/pecl/releases/oci8/2.2.0/

4.设置php配置

cp php.ini-development php.ini

修改如下:

extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
extension=php_pdo_oci.dll  ;开启支持pdo,使用第三方包可以达到忽略数据库类型的目的

5.测试

php -m

看一下,就行了:

windows下php+nginx+oci8_第3张图片

看一下phpinfo:

windows下php+nginx+oci8_第4张图片


echo oci_client_version();
phpinfo();

windows下php+nginx+oci8_第5张图片

done!

出现问题还是直接上官网比较靠谱。我看oracle上面参考的配置最新的下面这个,讲的是php5.5的,他就一直强调php在windows上面只有32位的,我就猜到了,64位不是给php用的。。。但是有点奇怪的是,我一个同事用的是wamp,php是64位,竟然也可以了,但是我自己搭建的php+nginx+mysql一直不行,因为测试了很多版本的php,我自己搞了个随意切换版本的脚本。(后面64位的php和instant也可以,但是之前一直不行,还是不知道啥原因.)
oracle windows+php+oci参考:
https://www.oracle.com/technetwork/articles/dsl/technote-php-instant-12c-2088811.html

Instant Client 下载,适用于 Microsoft Windows 32 位
https://www.oracle.com/technetwork/cn/topics/winsoft-095945-zhs.html

Instant Client Downloads ,for Microsoft Windows (x64) 64-bit
https://www.oracle.com/technetwork/topics/winx64soft-089540.html

脚本:
windows下php+nginx+oci8_第6张图片

@echo off
taskkill /F /IM nginx.exe > nul

taskkill /F /IM php-cgi.exe > nul
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5

REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000

echo Starting PHP FastCGI...
D:/lnmp/nginx-1.17.0/RunHiddenConsole D:/lnmp/php-7.1.30-nts-Win32-VC14-x86/php-cgi.exe -b 127.0.0.1:9000 -c D:/lnmp/php-7.1.30-nts-Win32-VC14-x86/php.ini

echo Starting nginx...
D:/lnmp/nginx-1.17.0/RunHiddenConsole D:/lnmp/nginx-1.17.0/nginx.exe -p D:/lnmp/nginx-1.17.0

搭建参考:
https://blog.csdn.net/zhezhebie/article/details/93162536

你可能感兴趣的:(php)