nginxphp权限
Ⅰ 如何在Apache和Nginx禁止上传目录里php的执行权限
网站程序的上传目录通常是不需要PHP执行解释权限,通过限制目录的PHP执行权限可以提网站的安全性,减少被攻击的机率。
下面和大家一起分享下如何在Apache和Nginx禁止上传目录里PHP的执行权限。
在虚拟主机配置文件中增加php_flag engine off指令即可,配置如下
"/website/uploads">,denyAllowfromallphp_flagengineoff
Nginx更简单,直接通过location条件匹配定位后进行权限禁止。
在server配置段中增加如下的配置
如果是单个目录
location~*^/uploads/.*.(php|php5)${denyall; }
如果是多个目录
location~*^/(attachments|uploads)/.*.(php|php5)${denyall;}
注意:这段配置文件一定要放在下面配置的前面才可以生效。
location~.php${ fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }
最后给一个完整的配置示例
location~/mm/(data|uploads|templets)/*.(php)${ denyall; } location~.php${ try_files$uri/404.html; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }
配置完后记得重启Nginx生效。
Ⅱ 如何正确配置Nginx+PHP
正确配置Nginx+PHP的步骤主要包括安装并启动phpfpm服务以及配置Nginx以处理PHP请求。以下是详细步骤:
一、安装并启动phpfpm服务
安装PHP及phpfpm:
- 在linux系统上,可以使用包管理器来安装PHP及phpfpm。例如,在Debian/Ubuntu系统上,可以使用命令sudo aptget update && sudo aptget install php phpfpm。
启动phpfpm服务:
- 安装完成后,启动phpfpm服务。在大多数系统上,可以使用命令sudo systemctl start phpfpm来启动服务。
- 确保phpfpm服务在系统启动时自动启动,可以使用命令sudo systemctl enable phpfpm。
二、配置Nginx以处理PHP请求
编辑Nginx配置文件:
- 打开Nginx的配置文件。
添加PHP处理模块:
- 在server块中,添加如下配置以处理PHP请求:nginxlocation ~ .php$ { fastcgi_pass 127.0.0.1:9000; # 指定phpfpm监听的地址和端口 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 设置脚本文件路径 include fastcgi_params; # 包含fastcgi参数文件} 这段配置的作用是,当Nginx接收到以.php结尾的请求时,将其转发给监听在127.0.0.1:9000的phpfpm进程处理。3. 检查配置文件并重启Nginx: 在修改Nginx配置文件后,使用命令sudo nginx t来检查配置文件的语法是否正确。 如果语法正确,使用命令sudo systemctl restart nginx来重启Nginx服务,使配置生效。三、测试配置1. 创建PHP测试文件: 在Nginx的文档根目录中创建一个简单的PHP测试文件,如info.php,内容如下:php<?phpphpinfo;?>
访问测试文件:
- 在浏览器中访问http://your_server_ip/info.php,如果配置正确,你应该能看到PHP的信息页面。
通过以上步骤,你就可以正确配置Nginx+PHP环境了。如果遇到问题,可以检查Nginx和phpfpm的日志文件,以获取更多调试信息。
Ⅲ LNMP一键安装包PHP和Niginx 文件上传大小限制问题解决方法
要解决LNMP一键安装包中PHP和Nginx文件上传大小限制问题,你可以按照以下步骤操作:
修改Nginx配置文件:
- 位置:/usr/local/nginx/conf/nginx.conf
- 操作:查找client_max_body_size参数,并将其值设置为你想设置的大小。
- 工具:你可以使用命令行工具或图形化工具来修改此文件。
修改PHP配置文件:
- 位置:/usr/local/php/etc/php.ini
- 操作:
- 查找post_max_size参数,并将其值设置为你想设置的大小。
- 查找upload_max_filesize参数,同样将其值设置为你想设置的大小。
- 注意:这两个参数决定了PHP脚本可以接收的最大POST数据大小和最大上传文件大小。
重启LNMP服务:
- 命令:执行/root/lnmp restart命令来重启LNMP服务,使上述更改生效。
重点总结: Nginx:通过修改nginx.conf文件中的client_max_body_size参数来设置最大上传文件大小。 PHP:通过修改php.ini文件中的post_max_size和upload_max_filesize参数来设置PHP脚本可以接收的最大POST数据大小和最大上传文件大小。 重启服务:修改完配置文件后,需要重启LNMP服务以使更改生效。
Ⅳ linux下怎么让nginx支持php
安装 PHP-FPM
1. 开始安装 Nginx 和 PHP-FPM 之前,你可能需要卸载系统中以前安装的 Apache 和 PHP。
1
yum erase php*
2
or
3
yum remove httpd* php* #这个命令是删除不干净的
4
yum remove php-cli php-common php #删除
重新安装 PHP:
1
yum --skip-broken install php53
2. CentOS 6.2/6.1/6/5.8 下安装Remi源:
1
## Remi Dependency on CentOS 5 and Red Hat (RHEL) 5 ##
2
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
3
4
## CentOS 5 and Red Hat (RHEL) 5 ##
5
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
3. 安装 PHP-FPM:
1
yum --enablerepo=remi,remi-test install nginx php php-fpm php-common
2
or
3
yum --enablerepo=remi install php53 php-fpm
4. 安装完毕之后启动 PHP-FPM:
1
/etc/init.d/php-fpm start
2
## OR ##
3
service php-fpm start
5. 设置Nginx & PHP-FPM开机自启动:
1
chkconfig --add nginx
2
chkconfig --levels 235 nginx on
3
chkconfig --add php-fpm
Ⅳ nginx中php设置自启动,部署ngxin+php配置文件
在Centos 7环境中安装并设置PHP 8.0的开机自启动,首先确保PHP-FPM的配置。
为了使PHP-FPM在系统启动时自动运行,需要编辑启动脚本。打开rc.local配置文件:
root@lx:~# vim /etc/rc.d/rc.local
在rc.local中添加以下行,以启动PHP-FPM服务:
sudo systemctl enable php-fpm.service
然后,确认php-fpm是否已被添加到开机启动列表中:
root@lx:~# chkconfig --list
查看结果,确认php-fpm服务的启动级别是否为2(运行级别为3时启动,对应多用户模式)或更高。
接下来,配置Nginx以处理PHP请求。打开Nginx的配置文件,通常是/etc/nginx/nginx.conf 或者你的虚拟主机配置文件(如/etc/nginx/conf.d/yoursite.conf),确保你的location块中包含如下内容:
location ~ \.php$ {
fastcgi_pass php-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
这将允许Nginx通过PHP-FPM处理.php文件。记得重启Nginx服务以应用更改:
sudo systemctl restart nginx
至此,Centos 7上已经成功安装PHP 8.0并配置了开机自启动,Nginx也已设置解析PHP请求。现在,每当系统启动时,PHP-FPM和Nginx都将协同工作。
Ⅵ nginx中怎样指定多个目录不解析php
多个目录去掉PHP执行权限
代码如下 复制代码
location ~ /(attachments|upload)/.*.(php|php5)?$ {
deny all;
}
将attachments、upload这二个目录的PHP执行权限去掉。
附,完整的虚拟主机配置:
代码如下 复制代码
server{
listen 80;
server_name www.51qgj.com;
index index.html index.htm index.php;
root /home/wwwroot/w123;
include discuz.conf;
location ~ /(attachments|upload)/.*.(php|php5)?$ {
deny all;
}
location ~ .*.(php|php5)?$
{
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
access_log off;
}