cgi.fix_pathinfo这个参数有什么用?
时间: 2024-03-28 20:39:54 浏览: 290
`cgi.fix_pathinfo`是PHP中的一个配置参数,它用于设置是否启用`PATH_INFO`方式解析URL。具体作用如下:
当`cgi.fix_pathinfo=0`时,PHP会禁用`PATH_INFO`方式解析URL,而使用传统的`QUERY_STRING`方式解析URL。这种方式下,`QUERY_STRING`参数会被解析到`$_GET`数组中,而URL路径则会被解析到`$_SERVER['SCRIPT_NAME']`和`$_SERVER['PATH_INFO']`两个变量中。
当`cgi.fix_pathinfo=1`时,PHP会启用`PATH_INFO`方式解析URL。这种方式下,URL路径中的部分会被解析到`$_SERVER['PATH_INFO']`变量中,而剩余部分则会被解析到`$_SERVER['QUERY_STRING']`变量中。
当`cgi.fix_pathinfo=2`时,PHP会自动选择启用或禁用`PATH_INFO`方式解析URL,具体方式取决于`PATH_INFO`是否合法。如果`PATH_INFO`合法,则启用`PATH_INFO`方式,否则禁用`PATH_INFO`方式。
需要注意的是,启用`PATH_INFO`方式解析URL可能会存在一些安全风险,因此建议在生产环境中禁用该特性,而在开发环境中启用以方便调试。
相关问题
php cgi.exe 指定端口,windows下nginx+php-cgi多端口
要在Windows下使用nginx和php-cgi多端口,可以按照以下步骤操作:
1. 在php-cgi的配置文件php.ini中,找到以下两行代码:
```
cgi.force_redirect = 0
cgi.fix_pathinfo=0
```
将它们的注释符号去掉,并将值分别设置为0和1,保存退出。
2. 在nginx的配置文件nginx.conf中,添加以下代码:
```
http {
...
upstream php {
server 127.0.0.1:9000;
server 127.0.0.1:9001;
server 127.0.0.1:9002;
}
...
server {
...
location ~ \.php$ {
fastcgi_pass php;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
...
}
...
}
```
其中,upstream指令定义了php后端的多个服务器地址和端口号,server指令定义了nginx的一个虚拟主机,location指令定义了处理php脚本的规则。
3. 启动php-cgi,可以使用以下命令:
```
php-cgi -b 127.0.0.1:9000
php-cgi -b 127.0.0.1:9001
php-cgi -b 127.0.0.1:9002
```
其中,-b指定了php-cgi的绑定地址和端口号。
4. 启动nginx,可以使用以下命令:
```
nginx
```
现在,nginx和php-cgi就可以使用多个端口号了,可以通过不同的端口号来访问不同的网站或应用程序。
在centos系统下 php 5.6.40 如何安装 php-cgi
在 CentOS 系统上安装 PHP 5.6.40 的 CGI (Common Gateway Interface) 版本,通常需要几个步骤:
1. **更新包管理器**:
```
sudo yum update -y
```
2. **安装依赖**:
要运行 PHP-CGI,你需要先安装 `httpd` 和一些基本的工具,因为 PHP-CGI 需要 Apache 或其他 Web服务器支持。运行下面命令安装它们:
```
sudo yum install httpd php-httpd.x86_64 php-cli php-fpm -y
```
3. **确认安装**:
安装完成后,你可以检查 `php-cgi` 是否可用:
```
which php-cgi
```
如果显示路径,则表示已经成功安装。
4. **配置 PHP-CGI**:
PHP-FPM(FastCGI Process Manager)是 PHP 的默认守护进程管理器,可以与 CGI 一起工作。编辑 `/etc/php-fpm.d/www.conf` 文件,添加允许从网络访问的设置,如:
```bash
listen = /var/run/php-fpm/php-fpm.sock
user = www-data
group = www-data
```
推荐开启 `cgi.fix_pathinfo=0` 来防止安全漏洞。
5. **启动服务**:
```
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
```
6. **测试安装**:
创建一个简单的 PHP CGI 测试文件,比如 `test.php`:
```php
<?php
phpinfo();
```
将其上传到你的网站根目录,然后通过浏览器访问 `http://your_server_ip/test.php` 来验证 PHP-CGI 是否正常运行。
阅读全文