windows下APACHE+PHP连接ORACLE的配置

现有一台windows 2008的服务器跑有apache+php+mysql的服务,最近有连接oracle数据库的需求,虽然走了很多弯路,但终于自己配置好了,现在把过程写出来分享一下

由于服务器原来跑的是apache2.2+php5.3,一开始的想法是在不改变服务器软件的情况下增加oracle支持,phpinfo中看到当前使用的php.ini位置,去掉extension=php_oci8.dll前的注释。由于服务器没有跑oracle,所以需要几个关键的dll文件,要去oracle官网下载安装Oracle Instant Client。下载后,将其解压到C:\instantclient_11_2 (非固定位置),并将该路径加入到系统PATH环境变量的最前面。

这里要注意,php5.3里,用于连接oracle的oci8.dll只能支持Oracle Instant Client 11.2以下的版本,一开始安装12怎么都没法用提示无法加载静态库,还有要注意32位和64位选要和php对应,否则会提示xxx不是有效的win32程序。

到这里应该可以使用phpinfo看到OCI8模块出现。

Zabbix 监控windows 网卡流量(2008 64bit)

在windows客户端获取网卡参数列表:

typeperf -qx | find “Network Interface” | find “Bytes”
\Network Interface(Intel[R] 82574L Gigabit Network Connection)\Bytes Total/sec

\Network Interface(Intel[R] 82574L Gigabit Network Connection _2)\Bytes Total/sec

\Network Interface(Intel[R] 82574L Gigabit Network Connection)\Bytes Received/sec

\Network Interface(Intel[R] 82574L Gigabit Network Connection _2)\Bytes Received/sec

\Network Interface(Intel[R] 82574L Gigabit Network Connection)\Bytes Sent/sec

\Network Interface(Intel[R] 82574L Gigabit Network Connection _2)\Bytes Sent/sec

可直接保存为文件方便查看(typeperf -qx | find “Network Interface” | find “Bytes” > herb.txt )

由此看出 此台windows服务器有两块网卡在启用状态分别是

Network Interface(Intel[R] 82574L Gigabit Network Connection

Network Interface(Intel[R] 82574L Gigabit Network Connection _2

其实 这里也可以从如下图中看出 与那块网卡对应

在zabbix_agentd.conf添加

PerfCounter=Net_Incoming,"\Network Interface(Intel[R] 82574L Gigabit Network Connection)\Bytes Sent/sec",5

PerfCounter=Net_Outgoing,"\Network Interface(Intel[R] 82574L Gigabit Network Connection)\Bytes Received/sec",5
请输入图片描述

请输入图片描述

修改配置后重新启动zabbix_agentd.exe后通过

zabbix_get.exe -s 127.0.0.1 -k Net_Incoming

zabbix 添加监控项

CentOS 下用的是lnmp 的包配置Nginx 下的CI伪静态

server
        {
                listen       80;
                server_name cy.com;
                index index.html index.htm index.php default.html default.htm default.php;
                root  /home/wwwroot/cy;

                location / {
                      if (-e $request_filename) {
                                break;
                        }
             if (-f $request_filename) {
                  expires max;
                  break;
               }
                       if (!-e $request_filename) {
                                rewrite ^/(.*)$ /index.php/$1 last;
                        }
                }

        #       include ci.conf;
                location ~ .*\.(php|php5)?$
                        {
                                try_files $uri =404;
                                fastcgi_pass  unix:/tmp/php-cgi.sock;
                                fastcgi_index index.php;
                                include fcgi.conf;
                        }
        location /index.php {
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_param SCRIPT_FILENAME /home/wwwroot/cy/index.php;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            include fcgi.conf;
        }
        #       location ~ /index.php/ {
        #               fastcgi_pass  unix:/tmp/php-cgi.sock;
        #               fastcgi_index   index.php;
        #               include fcgi.conf;
        #       }
                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }

                location ~ .*\.(js|css)?$
                        {
                                expires      12h;
                        }

                access_log off;
        }

复制代码
在Nginx下通过ci框架开发项目时,发现ci框架在nginx下是不能运行的,在网络上搜索了相关资料后可通过修改相关配置实现nginx支持PHP的ci框架。

1、修改ci框架的配置文件 config/config.php
修改$config[‘uri_protocol’]值
改为:

$config[‘uri_protocol’] = ‘PATH_INFO’;
2、修改nginx配置文件,在SERVER段中添加如下代码:

复制代码

location /index.php{
    fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_param SCRIPT_FILENAME /home/wwwroot/index.php;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    include fcgi.conf;
}

复制代码
如果有多个应用,如:后台应用,可以多加一段以上代码,并修改相应入口文件:

复制代码

location /admin.php{
    fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_param SCRIPT_FILENAME /home/wwwroot/admin.php;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    include fcgi.conf;
}

复制代码
第一次访问的时候,我是这么访问

http://cy.com/index.php/admin

我有一个admin 的目录


如果出现了 Access Denied


请检查

1、 php.ini(/etc/php5/cgi/php.ini)的配置中这两项
cgi.fix_pathinfo=1 (这个是自己添加的)