php-fpm

LNMP架构防盗链、访问控制、解析php、代理的设置

ぐ巨炮叔叔 提交于 2019-12-02 22:42:45
11月28日任务 12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置 12.16 Nginx代理 Nginx防盗链 修改虚拟主机配置文件 # 可以配合过期时间和静态文件不记录的代码使用 [root@localhost vhost]# vim /usr/local/nginx/conf/vhost/test.com.conf ... # ~*表示忽略大小写的匹配 location ~* .*\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; # 设置白名单,server_names可以不写 # 白名单可以是多个域名,域名键使用空格间隔开 valid_referers none blocked server_names *.test.com; # 条件判断,非白名单域名返回403状态码即禁止访问forbidden; if ($invalid_referer) { return 403; } access_log off; } ... 验证效果 使用不在白名单内的referer访问,返回的状态码为403,forbidden! [root@localhost vhost]# curl -e "http://www.baudi.com" -x

Centos7-安装-php-和-php-fpm

匿名 (未验证) 提交于 2019-12-02 22:11:45
title copyright date tags categories Centos7 安装 php 和 php-fpm true 2019-08-20 12:53:53 -0700 Liunx Liunx 安装 php 和 php-fpm 首先安装epel yum -y install epel-release 安装php php-fpm yum -y install php php-fpm 查看php版本 php -v 安装php-mysql yum install php-mysql 设置php-fpm开机自动启动 systemctl enable php-fpm 启动php-fpm systemctl start php-fpm 重启httpd服务 systemctl restart httpd.service 来源:51CTO 作者: 浩翰Redamancy 链接:https://blog.csdn.net/qq_43442524/article/details/100077104

Nginx工作原理和优化

匿名 (未验证) 提交于 2019-12-02 22:10:10
1. Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。 Nginx的模块从结构上分为核心模块、基础模块和第三方模块: 核心模块:HTTP模块、EVENT模块和MAIL模块 基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块, 第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块。 用户根据自己的需要开发的模块都属于第三方模块。正是有了这么多模块的支撑,Nginx的功能才会如此强大。 Nginx的模块从功能上分为如下三类。 Handlers(处理器模块)。此类模块直接处理请求,并进行输出内容和修改headers信息等操作。Handlers处理器模块一般只能有一个。 Filters (过滤器模块)。此类模块主要对其他处理器模块输出的内容进行修改操作,最后由Nginx输出。 Proxies (代理类模块)。此类模块是Nginx的HTTP Upstream之类的模块

Linux PHP环境搭建

匿名 (未验证) 提交于 2019-12-02 21:56:30
操作系统版本信息: cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 内存信息: free -m total used free shared buff/cache available Mem: 7823 202 3907 138 3713 7201 Swap: 8191 0 8191 ps:日文环境,安装过程可能会有日文报错,大家将就着看吧! 开始安装: ps: root用户下执行 安装apache: yum install httpd 检测是否安装成功: echo $? 0表示成功,其他表示失败 systemctl start httpd.service 设置开机自启动: systemctl enable httpd.service 查看apache版本: apachectl -v Server version: Apache/2.4.6 (CentOS) Server built: Apr 24 2019 13:45:48 安装locate: yum install mlocate 检测是否安装成功: echo $? 更新locate查找信息的系统数据库: updatedb 安装 wget: yum install wget 检测是否安装成功: echo $? ps:客户对于wget做了限制

Linux下修改php.ini文件

匿名 (未验证) 提交于 2019-12-02 21:56:30
Ŀ¼ #如果安装了PHP环境,可以使用php命令 ##第一种方式 [root@tt ~/php7]$ php -i | grep 'php.ini' Configuration File (php.ini) Path => /home/root/php7/lib Loaded Configuration File => /home/root/php7/lib/php.ini ##第二种方式 php --ini #如果没有安装PHP环境,使用linux自带的命令 find / -name php.ini 修改etc/php.ini后,必须重启PHP才能生效 # 查到master process (/etc/php-fpm.conf)的进程号 ps aux | grep php-fpm root 4811 0.0 0.0 173300 884 pts/1 S+ 18:39 0:00 grep php-fpm # 杀掉进程 kill -QUIT xxxx # 重启 /etc/init.d/php-fpm 如果在安装PHP时,设置了权限并启动php-fpm: 也可以服务的方式启动、停止和重启: service php-fpm start service php-fpm stop service php-fpm reload #报错日志修改长度 log_errors_max_len =

PHP-fpm 远程代码执行漏洞(CVE-2019-11043)复现

余生长醉 提交于 2019-12-02 18:45:21
简介 9 月 26 日,PHP 官方发布漏洞通告,其中指出:使用 Nginx + php-fpm 的服务器,在部分配置下,存在远程代码执行漏洞。并且该配置已被广泛使用,危害较大。 漏洞概述 Nginx 上 fastcgi_split_path_info 在处理带有 %0a 的请求时,会因为遇到换行符 \n 导致 PATH_INFO 为空。而 php-fpm 在处理 PATH_INFO 为空的情况下,存在逻辑缺陷。攻击者通过精心的构造和利用,可以导致远程代码执行。 影响版本 Nginx + php-fpm 的服务器,在使用如下配置的情况下,都可能存在远程代码执行漏洞。 location ~ [^/]\.php(/|$) { ··· fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ... } } 不可以远程代码执行:PHP 7.0/7.1/7.2/7.3 只适用于php7 环境搭建 靶机centos7:https://github.com/vulhub/vulhub/tree/master/php/CVE-2019-11043 exp环境:kali go语言环境 首先安装 go环境 wget -c https:/

基于 Docker 的 php-fpm 如何使用 socket 方式进行连接

自古美人都是妖i 提交于 2019-12-02 18:40:29
现有两个容器:nginx 和 php-fpm,我们通常的连接方式是采用 tcp 形式,配置 127.0.0.1:9000 将 php 相关请求转发给 php-fpm,而使用 socket 的连接方式,将获得更好的性能。 具体配置示例如下: 配置 docker-compose.yml version: '3' services: # Nginx nginx: build: context: ./build/nginx args: VERSION: 1.14 image: lnmp/nginx:1.14 ... volumes: ..... - ./conf/php_fpm/sock:/sock links: - php_fpm # PHP with fpm php_fpm: build: context: ./build/php70_fpm args: - VERSION=7.0 image: lnmp/php_fpm:7.0 ..... volumes: ..... # php-fpm 的配置 - ./conf/php_fpm/zz-docker.conf:/usr/local/etc/php-fpm.d/zz-docker.conf # 挂载宿主机 socket 目录,因为 nginx 服务也需要访问 - ./conf/php_fpm/sock:/sock 修改 php-fpm

ansible运维工具,dhcp,cobbler

孤者浪人 提交于 2019-12-02 18:34:59
1、借助Ansible Playbook自动化搭建LNMP环境(可借助yum) 通过yum方式安装ansible,先安装epel仓库 yum install epel-release 安装epel仓库 yum install ansible 安装ansible程序 /etc/ansible/ansible.cfg 主配置文件。 /etc/ansible/hosts主机清单, /etc/ansible/roles角色配置文件 /usr/bin/ansible,主程序 /usr/bin/ansible-playbook剧本主程序 使用免密钥登录其他节点。 ssh-keygen ssh-copy-id 192.168.64.101 ssh-copy-id 192.168.64.102 ansible host(主机) -m 指定模块 -a 模块参数 -f分批次 讲节点加入至ansible主机。修改/etc/ansible/hosts文件。写入ip地址,或主机名 测试ping模块检查节点 测试成功 playbook的基础组件: Hosts:运行指定任务的目标主机; remoute_user: 在远程主机上执行任务的用户; sudo_user: tasks:任务列表 模块,模块参数; 格式: (1) action: module arguments (2) module: arguments

(记)重启腾讯云实例网站报502错误

ぃ、小莉子 提交于 2019-12-02 15:50:29
重启腾讯云实例网站报502错误 目前找到这个问题的原因是: php服务没有正确重启,由于linux服务器中安装了多种版本的php,默认重启php-fpm,跟linux配置中php的服务不是同一个版本的,比如php56-fpm 重启方法: service php-fpm stop; sudo service php56-fpm start; 来源: https://www.cnblogs.com/sz-xioabai/p/11752632.html

Mac系统搭建Nginx+php-fpm

一世执手 提交于 2019-12-02 14:24:49
分享背景 由于一直在虚拟机的状态下开发PHP,尝试一下mac本地搭建环境.mac本身是自带Apache+php的,在低版本的mac系统中,mac中的php版本是5.6的版本. 本文分享的是在mac的10.13版本.前提是本地安装了brew包管理工具,如果还没安装的可以参考官网文档安装, 传送门 . 安装步骤 1.停止本地的Apache服务 sudo apachectl stop 2.安装NGINX brew install nginx 3.启动NGINX // 查看帮助命令 nginx -v // 重启命令 nginx -s reload 4.访问NGINX 打开浏览器,输入如下网址,正确的情况就可以看到如下的截图. http://localhost.com/ 5.NGINX项目目录介绍 通过上面的步骤,就表示NGINX已经完成了.这里有几个文件,我们需要关注一下. 1.nginx配置目录 /usr/local/etc/nginx 2.nginx的项目根目录 /usr/local/var/www 6.配置php(由于mac的高版本中已经内置了PHP7.1的版本,该文章也是基于这个基础上操作的.后续完善该文章,实现一个多版本的切换.) 1.去掉nginx.conf中如下代码中的注释(在去掉之前最好备份一份 cp nginx.conf nginx.conf.bak) location