php-fpm

LNMP架构介绍、mysql安装、PHP安装、nginx介绍

旧城冷巷雨未停 提交于 2019-11-28 21:51:17
LNMP架构介绍 N指的是nginx,是一个类似于Apache的web服务软件 PHP是独立服务的存在,这个服务叫php-fpm Nginx处理静态请求,动态请求会转发给php-fpm MySQL安装 LNMP里的MySQL安装和LAMP一样,步骤: 进入下载文件存放目录,然后下载二进制包 解压 移动已解压的包并改名,在进入此目录 配置文件 /etc/my.cnf 启动脚本 配置好启动脚本,就可以启动mysql。 PHP安装 下载二进制源码包、解压 配置编译选项 ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with

PHP强化之22

隐身守侯 提交于 2019-11-28 21:28:09
一、简介 在搭建 LAMP/LNMP 服务器时,会经常遇到 PHP-FPM、FastCGI和CGI 这几个概念。如果对它们一知半解,很难搭建出高性能的服务器。接下来我们就以图形方式,解释这些概念之间的关系。 二、原理 在整个网站架构中,Web Server(如Apache)只是内容的分发者。举个栗子,如果客户端请求的是 index.html,那么Web Server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。 如果请求的是 index.php,根据配置文件,Web Server知道这个不是静态文件,需要去找 PHP 解析器来处理,那么他会把这个请求简单处理,然后交给PHP解析器。 当Web Server收到 index.php 这个请求后,会启动对应的 CGI 程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以CGI规定的格式返回处理后的结果,退出进程,Web server再把结果返回给浏览器。这就是一个完整的动态PHP Web访问流程。 为了方便理解,以下是对相关概念的简单解释: CGI(Common Gateway Interface):通用网关接口,是 Web Server 与 Web Application 之间数据交换的一种协议。 FastCGI(Fast Common Gateway

php使用openssl来实现非对称加密

我的梦境 提交于 2019-11-28 20:26:02
使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。 安装openssl和php的openssl扩展 生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护 openssl genrsa -out rsa_private_key.pem 1024 生成公钥:rsa命令用于处理RSA密钥、格式转换和打印信息 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 这里我们使用公钥加密,私钥解密 class Openssl { /** * [$instance description] * @var null */ protected static $instance = null; /** * [$error description] * @var null */ public $error = null; /** * [$rsa_private_key 移钥] * @var string */ public $rsa_private_key = ''; /** * [$rsa_public_key 公钥] * @var string */ public $rsa_public_key = ''; /** * [_

Swoole进程模型

北城余情 提交于 2019-11-28 19:59:45
进程 什么是进程 进程 Process 是计算机中的程序关于某数据集合上的一次运行活动,是系统分配资源和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体。在当代面向线程设计的计算机结构中,进程是线程的容器。简单来说,程序是指令、数据以及其组织形式的描述,而进程则是程序的实体。 在操作系统中,进程表示正在运行的程序,例如在终端中使用PHP命令运行PHP脚本,此时就相当于创建了一个进程,这个进程会在系统中驻存,申请属于它自己的内存空间和系统资源,并且运行相应的程序。 $ php build.php <?php //获取当前进程的PID echo posix_getpid(); //修改所在进程的名称 swoole_set_process_name("swoole process master"); //模拟持续运行100秒的程序 sleep(100);//持续运行100秒的目的是为了在进程中可以查看而不至于很快结束 运行程序 $ php build.php 71 查看进程 $ ps aux | grep 71 root 1 0.0 0.1 18188 1712 pts/0 Ss+ 11:07 0:00 /bin/bash root 71 0.0 3.0 340468 30788 pts/2 S+ 13:41 0:00 swoole

应用最广泛的博客系统|wordpress部署

北城余情 提交于 2019-11-28 17:48:15
Docker部署wordpress 1.拉取 wordpress 镜像 docker pull wordpress:latest 查看镜像 docker images; 启动容器 docker run --name=wordpress -p 8003:22 -p 8001:80 -v /var/wordpress:/data wordpress 通过8001端口访问 本机需要php环境 暂时不清楚wordpress安装数据在那个地方 注意数据库路径是本机(宿主)而不是另一个容器或者当前容器的话,需要填写本机的内网ip,而不可以是localhost或者127.0.0.1 可能因为nginx配置导致样式丢失 其他问题:docker 端口映射错误解决方法 docker: Error response from daemon: driver failed programming external connectivity。。。 重启docker解决 sudo systemctl restart docker 样式无法正常显示 估计是nginx配置问题,这个就不深究了 最终使用和typecho一样使用站点的方式配置 安装php环境,下载压缩包,解压到 /var/www/html 这个和typecho一样就不多说了 ,需要注意的是目录目录权限问题 安装配置mysql和NGINX 相关配置参考

CentOS7快速搭建LNMP环境(yum)

[亡魂溺海] 提交于 2019-11-28 16:00:42
LNMP:Linux+Nginx+MySql+PHP Nginx的正确读法应该是Engine X 我们使用CentOS自带的YUM来安装 镜像源切换 先把YUM源切换成国内的镜像源 先备份一下原来的源镜像文件 # cp /etc/ yum .repos.d/CentOS-Base.repo /etc/ yum .repos.d/CentOS-Base.repo.backup 下载新的 CentOS-Base.repo # wget -O /etc/ yum .repos.d/CentOS-Base.repo http: // mirrors.aliyun.com/repo/Centos-7.repo 如果没有安装wget的话可以使用 #yum install wget 安装完成之后,在执行CentOS-Base.repo的安装 对 /etc/yum.repos.d/CentOS-Media.repo 源文件配置文件,改为不生效 enable= 0 YUM缓存生成 # yum clean all # yum makecache # yum update 安装Nginx YUM源中没有Nginx,我们需要增加一个nginx的源 nginx.repo # vi /etc/ yum .repos.d/nginx.repo 源文件的内容 [nginx] name = nginx repo

某个应用的CPU使用率居然达到100%,我该怎么做?(三)

笑着哭i 提交于 2019-11-28 15:21:26
某个应用的CPU使用率居然达到100%,我该怎么做?(三) 1. 引 你们好,可爱的小伙伴们^_^! 咱们最常用什么指标来描述系统的CPU性能呢?我想你的答案,可能不是平均负载,也不是CPU上下文切换,而是另一个更直观的指标----> CPU使用率。 CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示。那么,作为最常用也是最熟悉的CPU指标,你能说出CPU使用率到底是怎么算出来的吗?再有,诸如top,ps之类的性能工具展示的%user,%nice,%system,%iowait,%steal等等,你又能弄清楚他们之间的不同吗? 2. 什么是CPU使用率? Linux作为一个多任务操作系统,将每个CPU的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉。 为了维护CPU时间,Linux通过事先定义的节拍率(内核中表示为HZ),触发时间中断,并使用全局变量Jiffies记录了开机以来的节拍数。每发生一次时间中断,Jiffies的值就加1。 节拍率HZ是内核的可配选项,可以设置为100,250,1000等。不同的系统可能设置不同数值,你可以通过查询/boot/config内核选项来查看它的配置值。比如在我的系统中,节拍率设置成了1000,也就是每秒钟触发1000次时间中断。 [root@localhost ~]# cat /etc

部署LAMP动静分离以及部署Discuz论坛

荒凉一梦 提交于 2019-11-28 14:07:58
通过 LAMP平台部署及应用 已经可以部署出LAMP平台,来面对客户端的请求,但是由于这些组件都是在一台服务器上进行安装,如果出现问题,将导致LAMP平台的瘫痪。在实际环境中,不可能将LAMP平台都部署在同一台服务器上,这就需要使用到LAMP动静分离的技术。 博文大纲: 一、LAMP动静分离的相关概念 1.PHP的工作模式 2.FastCGI模式的工作机制 二、实现LAMP动静分离 1.FastCGI方式编译安装php 2.搭建Apache并配置通过fastcgi协议调用php 搭建Mysql数据库 4.ab压力测试工具 5.安装php加速软件Xcache 三、部署Discuz论坛 一、LAMP动静分离的相关概念 要想实现LAMP动静分离,最主要的还是PHP,因为我们需要使用PHP解释器来解析动态页面,然后向Web服务器传输解析后的网站内容。我们下面重点介绍一下PHP。 1.PHP的工作模式 PHP在在LAMP环境下共有三种工作模式: CGI模式: 在这种模式下运行PHP,性能不是很好; apache模块: 在这种模式下运行PHP,在 LAMP平台部署及应用 就是使用的这种模式,使用apache调用php完成工作; FastCGI模式: 在这种模式下运行PHP,PHP就是一处独立的进程,所有的PHP子进程都由PHP的一个叫做php-fpm的组件负责管理; 2

nginx转发php文件到php-fpm服务器提示502错误

你离开我真会死。 提交于 2019-11-28 13:17:53
实验将php文件转发给另一个php-fpm服务器处理的时候,出现了502错误: 检查了nginx错误日志,提示: 2019/08/25 17:54:56 [error] 4742#0: *35 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.2.1, server: www.133.com, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://192.168.2.133:9000", host: "192.168.2.132" 按照网上给的提示操作方法都不能解决,而且是立即返回的502,应该是跟PHP-FPM通信有问题了。然后检查php-fpm的配置文件www.conf,监听端口应该没错 listen = 9000意味允许所有终端访问9000端口 , 再看下一条 配置, listen.allowed_clients =0.0.0.0 正常以为这个IP意味着所有地址。后来试着把这条配置注释或者改为nginx服务器的ip地址,重启php-fpm服务后能够访问了。这真的无fuck可说了。小问题搞半天啊。 来源: https://www.cnblogs.com

linux复盘:redis主从配置等

ε祈祈猫儿з 提交于 2019-11-28 13:15:10
redis安全设置 近些年redis很火黑客也很多,常见的redis被黑案例: Redis 服务启动了,但是监听了一个全网IP,如果6379默认端口没有更改,并且iptables也处于关闭,公网IP 也开放着,Redis也没有设置任何密码,黑客就会扫描端口,然后就可以轻轻松松登录你的Redis服务器,并且是超级管理员的权限。然后黑客就可以设置dir dbname,dir 定义到/root/.ssh 且dbname定义为:.ssh/authorized_keys 再把这个值写上自己的公钥。 这些应该都不陌生吧,这不就活生生的把黑客的公钥上传到了咱们的服务器中,然后利用超级管理员做任何想做的事情了 解决方法: 设置密码-a登录 修改磨人的6379端口防止全网被扫描 监听内网ip,用空格分割内网ip 设定专用的redis登录账户 修改redis的config命令黑客进入后无法更改配置参数(config get * //获取所有配置参数) vim /etc/redis.cof # requirepass foobared requirepass 123456 # Accept connections on the specified port, default is 6379 (IANA #815344). # If port 0 is specified Redis will not