nginx+php使用open

   方法1)在Nginx配置文件中加入

fastcgi_param  PHP_VALUE  "open_basedir=$document_root:/tmp/:/proc/";

通常nginx的站点配置文件里用了include fastcgi.conf;,这样的,把这行加在fastcgi.conf里就OK了。

  如果某个站点需要单独设置额外的目录,把上面的代码写在include fastcgi.conf;这行下面就OK了,会把fastcgi.conf中的设置覆盖掉。

  这种方式的设置需要重启nginx后生效。

  方法2)在php.ini中加入:

[HOST=www.3lian.com]
open_basedir=/home/www/www.45it.com:/tmp/:/proc/
[PATH=/home/www/www.45it.com]
open_basedir=/home/www/www.45it.com:/tmp/:/proc/

这种方式的设置需要重启php-fpm后生效。

  方法3)在网站根目录下创建.user.ini并写入:

open_basedir=/home/www/www.45it.com:/tmp/:/proc/

这种方式不需要重启nginx或php-fpm服务。安全起见应当取消掉.user.ini文件的写权限。

  关于.user.ini文件的详细说明:

  http://php.net/manual/zh/configuration.file.per-user.php

  设置open_basedir的同时最好禁止下执行命令的函数,比如:

  shell_exec('ls /etc')仍然查看到/etc目录的文件列表

  shell_exec('cat /etc/passwd')仍可查看到/etc/passwd文件的内容

  建议禁止的函数如下:

disable_functions = pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority, eval, popen, passthru, exec, system, shell_exec, proc_open, proc_get_status, chroot, chgrp, chown, ini_alter, ini_restore, dl, pfsockopen, openlog, syslog, readlink, symlink, popepassthru, stream_socket_server, fsocket, chdir

时间: 2024-11-01 05:10:06

nginx+php使用open的相关文章

nginx中如何限制下载和并发速度

1.添加limit_zone(这个变量只能在http协议使用) 2.编辑nginx.conf文件 向其中添加limit_zone one $remote_addr 10m指令,然后添加limit_conn,由于这个变量在http.server.location段使用,而且只限制一个站点,所以添加到server里面即可 http://wiki.nginx.org/NginxHttpLimitZoneModule 下载limit_zone http://wiki.nginx.org/NginxHtt

利用awstats分析nginx日志

今天打算分析下nginx日志,要分析nginx日志,我们可以通过shell脚本和第三方软件awstats进行分析,在此我们选择的是通过第三方软件awstats进行分析. 要使用awstats分析nginx日志,我们要安装awstats,而在安装awstats之前,我们需要先来介绍下awstats是什么? 一.awstats是什么 awstats是一个免费非常简洁而且强大有个性的基于Perl语言的WEB日志分析工具. 它可以统计网站的如下信息: 1):访问量.访问次数.页面浏览量.点击数.数据流量

切割nginx日志

这几天自己看了下博客的nginx日志,发现日志文件发现越来越大. 因为nginx自己不会对日志文件进行切割,所以打算通过其他方式进行切割,而且为了后续能对nginx日志文件里面记录的数据进行分析,所以打算按照天对其进行切割. PS:本篇文章所以的操作是在centos6.5 OS 64bit上进行. 切割nginx日志,我们可以通过两种不同的方式进行,分别是:通过logrotate和通过shell脚本. 如果是yum方式安装的nginx,系统默认会自动通过logrotate这个日志管理软件,按天进

断点续传-请问perl是否可以改写nginx服务器得到的POST请求地址,并且不能丢失post的数据

问题描述 请问perl是否可以改写nginx服务器得到的POST请求地址,并且不能丢失post的数据 场景:后端JAVA应用作了一个断点续传的功能,测试OK,由于一些环境限制原因,前端必须用nginx转发.坑爹的是nginx的rewrite功能会把post请求变为get请求,如果使用 proxy pass则会出现如果用户上传中断,nginx不会把已经上传的东西扔给后端应用 现在考虑方向是改写post请求的链接(改成IP加端口)但是不更改别的东西,比如post的数据,方法等等,或者干脆收到此种请求

Nginx 内置变量,细化规则,真实IP获取及限制连接请求

希望下周测试之后能用起来!!!感觉很有用的. http://www.bzfshop.net/article/176.html http://www.cr173.com/html/19761_1.html http://blog.pixelastic.com/2013/09/27/understanding-nginx-location-blocks-rewrite-rules/ 你 Google 不到的配置   很多时候,我们的网站不是简单的  普通用户IE浏览器  --->  你的服务器  的

Own your own shit —— 从 NGINX 日志滚动说起

最近我开始接管一个应用 T,然而我并不是接管应用 T 的开发工作,而是搞一个新的应用 Q 来取代它,但是在 T 下线之前,我得做一些日常运维的工作让 T 能够正常工作下去. 也许是我刚刚成为 T 的 AppOps 的缘故,一时半会系统数据没来得及同步,T 的各种告警还没发到我这里.但是没告警不代表没问题呀,突然间旺旺响起,同事告知某分组下面的机器磁盘都快满了. 于是我赶紧申请了权限登录机器处理.按照之前的经验,磁盘满这种事情,不外乎日志打多了,大促之前我们的例行公事就是把应用集群的过往日志全给删

如何查看Nginx,Apache,lighttpd,Mysql和Php的编译参数

查看一些常见服务的在编译安装时的参数: 1.Nginx 编译安装时的参数 [root@test ~]#/usr/local/nginx/sbin/nginx -V nginx version: nginx/0.7.65 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48) TLS SNI support disabled configure arguments: --user=www --group=www --prefix=/usr/local/ngin

Nginx启动/停止/状态检查/重新启动/平滑重启脚本

默认使用源代码安装Nginx时,Ngninx需要另外配置启动/停止/状态检查/ 重新启动/平滑重启/测试配置文件等功能的脚本,风信网收集并整理了一段Nginx的功能脚本,供大家参考使用. 应用新脚本之前,需要先运行命令关闭nginx [root@localhost ~]# sudo kill `cat /usr/local/nginx/logs/nginx.pid` #请修改为你的nginx.pid文件路径 建立一个nginx启动脚本 [root@localhost ~]# vi /etc/in

NGINX当中的SSL配置(PEM启动密码免输入)

干过的都懂,这个东东好像很碍事. 很影响RELOAD的效率...并且,,,好像这个弄了之后,NGINX作RELOAD之后,可以即时更新配置了..(还是说那个DVROOT.CER影响的??未考证) http://segmentfault.com/q/1010000000119345 http://wangye.org/blog/archives/243/   这种情况可能是在设置私钥key时将密码设置写入了key文件,导致Nginx/Apache等系列服务器在启动时要求Enter PEM pass

利用Nginx访问、下载本机目录文件

今天学到点好用的技巧,即利用Nginx访问.下载本机目录文件,Mac下的具体做法如下: 一.安装Nginx 1.brew search nginx 2.brew install nginx 启动nginx ,sudo nginx ;访问localhost:8080 发现已出现nginx的欢迎页面了. 备注: ln -s  /usr/local/sbin/nginx /usr/bin/nginx 做个软连接.常用的指令有:  nginx -V 查看版本,以及配置文件地址 nginx -v 查看版本