( 选用的操作系统为 centos7 )

01,安装 nginx => 请移步 https://www.cnblogs.com/lovling/p/9197572.html

02,下载 php 安装包 => https://secure.php.net/downloads.php

03,上传到 linux 服务器,并解压 tar -zxvf php.tar.gz

04,cd 到解压后的文件夹

05,配置参数 ./configure --prefix=/usr/local/php  -enable-fpm --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

这里的 --prefix=/root/software/php 指定程序安装的位置 mysqlnd mysqli pdo_mysql 三个扩展错过了这次机会,

之后再编译安装的时候会报各种各样的错误,很难解决,建议在这次编译的时候一定要带上

06,以上步骤可能缺少 libxml2, 用 yum 安装时发现已经安装,那是因为缺少 libxml2-devel, 可用 yum 安装

yum install -y libxml2-devel

07,再次执行 5,无报错后执行 make & make install 出现以下画面为安装成功

08,如果出现错误  make:*libtool: link: `ext/libxml/libxml.lo' is not a valid libtool object

09,执行 make clean 后再执行 => make  => make install

10,进入到安装后的目录 => cd /usr/local/php

11,修改配置文件,修改启动用户和用户组

cp etc/php-fpm.conf.default etc/php-fpm.conf

cp etc/php-fpm.d/www.conf.default  etc/php-fpm.d/www.conf

vim etc/php-fpm.d/www.conf

将 user 和 group 赋予相应的用户和组,和 nginx 的启动用户要一致,生产环境切勿使用 root

12,启动 php-fpm => ./sbin/php-fpm

13,如果配置的是 root 用户和组,需要加 -R参数 => ./sbin/php-fpm -R

14,检查是否启动成功 => netstat -anp | grep tcp

15,将改服务设置为开机自启 => vim /etc/rc.local,请确保 该文件有执行权限,如果没有可赋予 chmod +x /etc/rc.local

16,修改 nginx 配置 vim /root/software/nginx/conf/nginx.con 在 server 中加入如下配置

location ~ \.php$ {
  root html;                              
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

17,检查配置文件并启动 nginx => nginx -t => nginx

18,在 nginx 目录下的 html 目录中编辑一个文件 test.php  写入 <?php  phpinfo() ?> 

19,地址栏输入 http://server_ip/test.php ,出现如下画面为配置成功

20,接下来就是配置文件,由于文件太多,很难找到 php.ini 文件

21,我们可以用命令查看配置文件的地址 => php -r "phpinfo(INFO_GENERAL);"|grep "php.ini"

22,但是我们在以上路径去却找不到配置文件,一般自己编译的都不会存在配置文件,我们需要到源码包去拷贝

23,找到上图中两个 php.ini 开头的文件,复制到 /usr/local/php/lib/ 目录下

24,php.ini.development  常为测试环境下使用,权限比较高

25,php.ini.production      常为生产环境使用,拥有较高的安全性

26,确定好自己要用哪一个,复制一份命名为 php.ini

27,建议将配置文件中的 pid 项目打开如下,这样就可以平滑的重启和关闭 php-fpm 了

28,以下命令中的 /usr/local/php/var/run/php-fpm.pid 为 pid存放的地址,根据具体情况查找

# 立即终止

kill -INT  `cat /usr/local/php/var/run/php-fpm.pid`

kill -TERM `cat /usr/local/php/var/run/php-fpm.pid`

# 平滑终止

kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`

# 重新打开日志文件

kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid`

# 平滑重载所有worker进程并重新载入配置和二进制模块

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

PHP + Nginx 在 Linux(centos7)系统下的环境搭建的更多相关文章

  1. centos7系统下 docker 环境搭建

    运行环境: VMware Workstation Pro 在虚拟机中安装centos7系统, 选择最小安装, 网络连接方式选择的桥接(与宿主机在同一IP段)centos7一定要安装64位, docke ...

  2. node在Fedora 22系统下开发环境搭建

    事实上,环境搭建在linux系统还是比較简单的,下载已经编译好的包,配置一下环境变量. 或者下载源代码,自己编译. 这里记录一下,主要是node版本号变化节奏很块的情况下.怎样配置一次环境变量就不要再 ...

  3. php手动搭建wamp环境(一)--之 Windows系统下PHP环境搭建

    1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...

  4. windows系统下jenkins环境搭建与基本使用

    一. windows 系统下搭建jenkins环境 1.1 jenkins环境搭建和构建job流程图 1.2 安装jdk JDK下载地址:  http://www.oracle.com/technet ...

  5. PHP环境搭建-Windows系统下PHP环境搭建

    1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...

  6. nginx 服务器 在 centos7 系统下的两种方式

    选用系统 Centos7 < 一 >  使用 yum 安装,该方法比较方便,如果不追求版本推荐使用 01, 添加 nginx 储存库  yum -y install epel-releas ...

  7. Linux centos7系统下svn的安装与配置

    一.安装svn # yum -y install svn 二.查看svn版本信息 # svnserve --version 三.搭建svn版本库(假设项目名称为project) 1.首先创建版本库目录 ...

  8. PHP + Apache 在 Linux(centos7)系统下的环境搭建,基于 yum

    (本文采用的是 Centos7 的操作系统,简单起见,以下全部采用 yum 安装,有这么好用的东西为什么要自己去一个一个编译呢) 1, 安装 Apache  => yum -y install ...

  9. Ubuntu系统下lnmp环境搭建和Nginx多站点配置

    最近需要使用Ubuntu作为服务器搭建Lnmp环境,顺便将操作过程写下来,与大家分享.如有不足之处,欢迎大家提出不同意见.(本文默认读者已经熟悉相关linux命令的使用,比如创建文件和文件夹,编辑文件 ...

随机推荐

  1. HP Gen8,9 型号系列服务器更换主板

    更换主板前,记下如下信息,根据具体情况用于更换后的设置用.1.S/N (其实主机箱上会写有,更换后重置)2.ProductID (其实主机箱上会写有,更换后重置)3.iLO IP地址或者MAC地址(根 ...

  2. 数字序列中某一位数字(《剑指offer》面试题44)

    由于这道题目在牛客上没有,所以在此记录一下. 一.题目大意: 数字以0123456789101112131415…的格式序列化到一个字符序列中.在这个序列中,第5位(从0开始计数,即从第0位开始)是5 ...

  3. db2报错: [DB2/NT] SQL0952N 由于中断,处理被取消 SQLSTATE=57014

    DB2被中断,报错:  [DB2/NT] SQL0952N 由于中断,处理被取消 SQLSTATE=57014 在DB2的开发过程中,今日运行了一个执行时间较为长的sql语句.使用DB2服务端的控制台 ...

  4. Ring0 - 链表

    //一般驱动层不使用数据结构,一般Ring3层 双向链表可以将链表形成一个环.BLINK指针指向前一个元素,FLINK指针指向下一个元素.typedef struct _LIST_ENTRY { st ...

  5. linux中文件名有英文括号的问题

    文件名包含“()”的文件,输入“(“后按TAB键无法补全,手动输入文件全名也删除不了:提示bash: syntax error near unexpected token `('错误. 在linux中 ...

  6. [UE4]使用name slot制作带背景的容器

    name slot相当于asp.net模板中的content模板. 可以往“Name Slot”里面拖放控件,如果没有“Name Slot”就不能给“BgPanel”拖放任何控件

  7. Android通过包名启动其他应用,若该应用已启动,则直接将应用切到前台

    CommUtil.startActivityForPackage(mContext, "com.autonavi.minimap");//打开高德 CommUtil.java /* ...

  8. python类的全面介绍

    转载:全面介绍python面向对象的编程——类的基础 转载:类的实例方法.静态方法.类方法的区别

  9. Linux下rz,sz与ssh的配合使用

    Linux下rz,sz与ssh的配合使用 一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上 ...

  10. Apache提供的dbUtils

    一.介绍 apache组织为我们提供了dbUtils实用工具(一些jar包),封装了一些查询的类和借口,相对自己定义的来说,可以简化很多操作 dbUtils提供了核心功能 1.QueryRunner  ...