当前位置:首页 -少年百科 - 大杂烩 - PC与手机 - 正文*

NGNIX中直接使用PHP访问数据库并支持中文

2025-6-12 22:35:23

按以下方式通过NGINX+PHP这种最简方式实现动态网页访问:

1、下载NGINX,PHP

2、配置PHP.ini:检查有关ODBC

3、配置NGINX.conf:加上CGI支持。


server { 
listen 80 default_server; 
server_name _; 
location / {
root  html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root      html;
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include    fastcgi_params;
}


}

具体配置可以问DEEPSEEKER


4、启动PHP和NGINX

E:\PHP\php-cgi.exe -b 127.0.0.1:9000 -c E:\PHP\php.ini

不要关闭

start nginx.exe

5、PHP代码连接数据库

$dbname='DRIVER=Microsoft Access Driver (*.mdb, *.accdb); DBQ=' /db/test.accdb;';

$conn=odbc_connect($dbname,'','');


这里存在 中文支持的问题,SQLITE,MYSQL等可以通过设置charset为UTF-8解决。但Access不支持字符集的设置。它是使用系统默认的,如ANSI编码按GB2312。在IIS中是通过设置session.codepage=65001来控制数据库等的编码的。

这样会导致无法使用中文字段名,中文文本显示也是乱码。这种情况下,通过WINDOWS设置里更改使用Unicode UTF-8支持来强行让系统默认编码为utf-8。修改办法是:WINOWS搜索“控制面板”,“时钟和区域”,“管理”,“更改系统区域设置”,勾选“Beta版:使用Unicode UTF-8提供全球语言支持”。

然后按要求重启计算机。(注意:这样设置后,一些像记事本类软件,过去系统默认保存的是ANSI格式,但现在是UTF-8,因此一些中文文本会出现乱码。注意打开时选择正确的编码。像EDITPLUS通过FTP列出远程目录时中文文件名会是乱码,要在FTP设置里勾选使用utf-8文件名)


这里修改系统设置后,就可以使用中文字段名,数据也不用再使用iconv("gbk", "utf-8",value)转换。