搭建lnmp环境时,需要先安装mysql,再安装php,而nginx安装顺序无所谓,nginx与php之间的联系需要手动配置

一.php下载和配置“安装环境“

[root@huh ~]# cd /usr/local/src/
[root@huh src]# wget http://cn2.php.net/distributions/php-5.4.37.tar.bz2
[root@huh src]# tar jxvf php-5.4.37.tar.bz2
[root@huh src]# cd php-5.4.37
[root@huh php-5.4.37]# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=php-fpm \
--with-fpm-group=php-fpm \
--with-mysql=/usr/local/mysql \
--with-mysql-sock=/tmp/mysql.sock \
--with-libxml-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-ftp \
--enable-mbstring \
--enable-exif \
--enable-zend-multibyte \
--disable-ipv6 \
--with-pear \
--with-curl \
--with-openssl \
--enable-sockets

注:1.--prefix 指定安装路径

  2.--with-config-file-path 设置php.ini的搜索路径

  3.--with-fpm-user fpm运行的用户,默认为nobody

  4.--with-fpm-group fpm运行的组,默认为nobody

  5.--with-mysql 指定mysql的安装路径

  6.--with-mysql-sock 指定mysql监听的mysql.sock程序在哪

  7.--with-libxml-dir 用于指定安装libxml2库文件的位置。

期间,会有报错情况:

#错误1:
configure: error: jpeglib.h not found.
#解决办法:
[root@huh php-5.4.37]# yum install libjpeg-turbo-devel #错误2:
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
需要我们先安装epel的源,然后去安装 下载安装epel:
[root@huh php-5.4.37]# wget www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm
[root@huh php-5.4.37]# rpm -ivh epel-release-6-8_32.noarch.rpm 安装libmcrypt:
[root@huh php-5.4.37]# yum install -y  libmcrypt-devel

若还有其它错误,原因也是某些包没有安装,可以百度解决。

二.创建用户php-fpm

[root@huh php-5.4.37]# useradd -s /sbin/nologin php-fpm

三.php编译和安装

[root@huh php-5.4.37]# make
[root@huh php-5.4.37]# echo $?
0
[root@huh php-5.4.37]# make install
[root@huh php-5.4.37]# echo $?
0

四. 拷贝配置文件,启动脚本,php-fpm.conf配置文件

拷贝配置文件:

[root@huh php-5.4.37]# cp php.ini-production /usr/local/php/etc/php.ini

拷贝启动脚本:

[root@huh php-5.4.37]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@huh php-5.4.37]# chmod 755 /etc/init.d/php-fpm

拷贝php-fpm.conf配置文件

[root@huh php-5.4.37]# cd /usr/local/php/etc/
[root@huh etc]# mv php-fpm.conf.default php-fpm.conf

五.将php服务添加到系统服务,并设为开机自启,启动程序

[root@huh etc]# chkconfig --add php-fpm
[root@huh etc]# chkconfig php-fpm on
[root@huh etc]# /usr/local/php/sbin/php-fpm -t
[29-Jan-2016 04:30:26] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful [root@huh etc]# /etc/init.d/php-fpm start
Starting php-fpm  done
[root@huh etc]# /etc/init.d/php-fpm reload
Reload service php-fpm  done

注:/usr/local/php/sbin/php-fpm -t 可以检查php配置有没有错误

查看php-fpm进程好和监听端口号:

[root@huh etc]# ps aux |grep php-fpm
root 16343 0.0 0.2 29748 2976 ? Ss 04:33 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
php-fpm 16344 0.0 0.2 29748 2648 ? S 04:33 0:00 php-fpm: pool www
php-fpm 16345 0.0 0.2 29748 2648 ? S 04:33 0:00 php-fpm: pool www
root 16349 0.0 0.0 6048 780 pts/0 S+ 04:34 0:00 grep --color php-fpm
[root@huh etc]#
[root@huh etc]# netstat -lnp |grep 'php-fpm'
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 16343/php-fpm

六.php-fpm.conf配置文件

/usr/local/php/etc/php-fpm.conf配置文件和/usr/local/php/etc/php.ini不太一样:

  1./usr/local/php/etc/php-fpm.conf是管理php-fpm服务的相关配置

  2./usr/local/php/etc/php.ini是php的全局配置文件

我们更改php-fpm.conf,更改后的php-fpm.conf配置文件:

[global]
#pid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启
pid = /usr/local/php/var/run/php-fpm.pid #错误日志,默认在安装目录中的var/log/php-fpm.log
error_log = /usr/local/php/var/log/php-fpm.log #www是一个pool的一个名字
[www]
#fpm监听端口,即nginx中php处理的地址,一般默认值即可。可用格式为: 'ip:port', 'port', '/path/to/unix/socket'. 每个进程池都需要设置.
listen = /tmp/www.sock #启动进程的用户和组
user = php-fpm
group = php-fpm #设置让nobody也能访问www.sock
listen.owner = nobody
listen.group = nobody pm = dynamic
#子进程最大数
pm.max_children = 50
#启动时的进程数
pm.start_servers = 20
#保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.min_spare_servers = 5
#保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
pm.max_spare_servers = 35
#设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 '0' 则一直接受请求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默认值: 0.
pm.max_requests = 500
#设置文件打开描述符的rlimit限制. 默认值: 系统定义值默认可打开句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。
rlimit_files = 1024

;

002.php安装(lnmp)的更多相关文章

  1. centos下编译安装lnmp

    centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...

  2. CentOS安装LNMP环境的基础组件

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 在安装LNMP环境之前,请确保已经使用yum安装了以下各类基础组件(如果系统已自带,还可以考虑yum update下基础组件): ...

  3. lnmp---------------lnmp1.3-full安装包安装lnmp环境,如何安装PHP扩展

    1. 如果已经安装LNMP套件,请按以下步骤处理 a. 跳转到fileinfo源代码目录` cd /root/downloads/lnmp1.2-full/src/php-7.0.7/ext/file ...

  4. 安装lnmp一键安装包(转)

    系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统 需要3GB以上硬盘剩余空间 128M以上内存,Xen的需要有SWAP,OpenVZ的另外 ...

  5. CentOS 7 用户怎样安装 LNMP(Nginx+PHP+MySQL)

    关于 Nginx (发音 “engine x”)这是一款免费.开源.高效的 HTTP 服务器,Nginx是以稳定著称,丰富的功能,结构简单,低资源消耗.本教程演示如何在CentOS 6.5服务器(适用 ...

  6. 关于轻松安装LNMP和LAMP的编译环境

    http://lnmp.org/install.html 系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统 需要2GB以上硬盘剩余空间 1 ...

  7. 细化如何安装LNMP + Zabbix 监控安装文档以及故障排除

    1.LNMP所需安装包: 上传如下软件包到/soft目录中 mysql- (centos6. 64位自带)也可根据版本自行挑选,前提你了解这个版本 pcre-8.36.tar.gz nginx-.ta ...

  8. lnmp_auto:自动化安装lnmp环境脚本

    朋友找我在一台机器上帮忙安装下discuz.想着搭建过好几次的lnmp了,但是还没有使用过"一键安装"的自动化脚本,去网上有搜索出来,但是运行的时候发现用root运行别人的脚本还是 ...

  9. 腾讯云CentOS7安装LNMP+wordpress

    许多云主机都有学生优惠,于是我趁着现在大一买了个腾讯1元云主机+免费cn域名(高中生的话就别想了).鉴于我只知道用服务器安装博客,别的用途不了解,所以我就去安装wordpress. 而由于我看的教程有 ...

随机推荐

  1. java读写file

    private static String encoding = "utf-8"; public static void readTxt(String filePath) thro ...

  2. CloudNotes云端个人笔记系统系列文章汇总

    [CloudNotes版本更新信息与下载地址:http://cloudnotes.cloudapp.net/webapi/Home/Release] [CloudNotes RESTful API帮助 ...

  3. Github团队开发示例(二)

    Github团队开发示例(二) 作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/6063765.html 接之前讲的Github团队开发示例(一),本文主 ...

  4. php基础知识

    PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言[脚本在服务器上执行]. PHP 文件能够包含文本.HTML.CSS 以及 PHP 代码,在服务器上的执行结果以纯文本返回浏览器. php可以 ...

  5. 《疯狂Java讲义》学习笔记——第2章 理解面向对象

    面向对象的三种基本特征:继承,封装,多态 UML(统一建模语言) 2.1 面向对象 2.1.1 结构化程序设计简介 图2.1  结构化软件的逻辑结构示意图 从图2.1可以看出,结构化设计需要采用自顶向 ...

  6. gSOAP MTOM

    前言 需要准备的知识:wsdl,soap,gSOAP,C++,fidder. 首先介绍几个相关的概念 1.MTOM基础概念      MTOM(Message Transmission Optimiz ...

  7. Linux命令详解之—tail命令

    tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...

  8. GJM :动作手游实时PVP 帧同步(客户端)[转载]

    原帖地址:http://gad.qq.com/article/detail/7171195 原文作者:唐声福  原帖备注:版权所有,禁止匿名转载:禁止商业使用:禁止个人使用. 1.概述 1.1.基于U ...

  9. 第二十六章 hystrix-dashboard + turbine

    一.使用turbine的意义 引入多个hystrix stream: 1.使用hystrix-dashboard的可以添加多个stream的功能 图中添加的两个stream会在真正monitor的时候 ...

  10. 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用

    学习 EF Code First+MVC 时遇到了在请求JsonResult时出现 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用 的异常,原因 ...