lnmp架构中的php.ini,LNMP架构 安装PHP

和LAMP安装PHP有区别,需要开启php-fpm服务。

准备工作

安装包卸载&解压

[root@centos-01inux ~]# cd /usr/local/src/

解压:

[root@centos-01inux src]# tar zxvf php-5.6.30.tar.gz

创建账号

[root@centos-01inux src]# useradd -s /sbin/nologin php-fpm

说明: 该账号用来运行php-fpm服务,因为在LNMP环境中,PHP是以一种服务的形式独立存在的。

安装php

如果之前安装过PHP,需要清除其原有配置:

[root@centos-01inux src]# cd php-5.6.30

[root@centos-01inux src]# make clean

环境配置

[root@centos-01inux src]# cd php-5.6.30

[root@centos-01inux src]# ./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-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl

报错:

错误1:

configure: error: xml2-config not found. Please check your libxml2 installation.

解决办法:

[root@centos-01inux php-5.6.30]# yum list |grep libxml2

查找相关库的安装包:

[root@centos-01inux php-5.6.30]# yum list |grep libxml2

libxml2.x86_64 2.9.1-6.el7_2.3 @anaconda

libxml2.i686 2.9.1-6.el7_2.3 base

libxml2-devel.i686 2.9.1-6.el7_2.3 base

libxml2-devel.x86_64 2.9.1-6.el7_2.3 base

libxml2-python.x86_64 2.9.1-6.el7_2.3 base

libxml2-static.i686 2.9.1-6.el7_2.3 base

libxml2-static.x86_64 2.9.1-6.el7_2.3 base

选择包进行安装:

[root@centos-01inux php-5.6.30]# yum install -y libxml2 libxml2-devel

错误2:

configure: error: Cannot find OpenSSL's

解决办法:

[root@centos-01inux php-5.6.30]# yum install -y openssl openssl-devel

错误3:

configure: error: Please reinstall the libcurl distribution -

easy.h should be in /include/curl/

解决办法:

[root@centos-01inux php-5.6.30]# yum install -y libcurl libcurl-devel

错误3:

configure: error: jpeglib.h not found.

解决办法:

[root@centos-01inux php-5.6.30]# yum install -y libjpeg libjpeg-turbo-devel

错误4:

configure: error: png.h not found.

解决办法:

[root@centos-01inux php-5.6.30]# yum install -y libpng libpng-devel

错误5:

configure: error: freetype-config not found.

解决办法:

[root@centos-01inux php-5.6.30]# yum install -y freetype freetype-devel

错误6:

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

解决办法:

[root@centos-01inux php-5.6.30]# yum install -y libmcrypt libmcrypt-devel

说明: 每次报错后根据提示查找相应的库的安装包,选择包进行安装,安装完成后重新配置即可!

配置完成后进行检测:

[root@centos-01inux php-5.6.30]# echo $?

0

总结一下需要安装的包:

[root@centos-01inux php-5.6.30]# yum install -y gcc gcc-c++ libxml2-devel openssl-devel libcurl-devel libjpeg-devel libpng-devel freetype libmcrypt-devel

编译&安装

编译:

[root@centos-01inux php-5.6.30]# make

报错: virtual memory exhausted: Cannot allocate memory #虚拟内存耗尽:无法分配内存

解决办法:

1、停掉虚拟机中未在使用的进程

2、临时增加swap分区内存:

[root@adai002 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100 手动创建一个新分区

记录了100+0 的读入

记录了100+0 的写出

104857600字节(105 MB)已复制,5.72931 秒,18.3 MB/秒

[root@adai002 ~]# du -sh /tmp/newdisk

100M /tmp/newdisk

[root@adai002 ~]# mkswap /tmp/newdisk 格式化该swap分区

正在设置交换空间版本 1,大小 = 102396 KiB

无标签,UUID=d42e907a-aae0-4d5f-bf58-586fac415f48

[root@adai002 ~]# free -m

total used free shared buff/cache available

Mem: 984 114 626 6 244 706

Swap: 2047 0 2047

[root@adai002 ~]# swapon /tmp/newdisk 挂载到原swap分区

swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。

[root@adai002 ~]# free -m

total used free shared buff/cache available

Mem: 984 114 626 6 244 707

Swap: 2147 0 2147

[root@adai002 ~]# chmod 0600 /tmp/newdisk 更改权限以保安全

待PHP编译完成后要卸载掉该分区

[root@adai002 ~]# swapoff /tmp/newdisk 卸载分区

安装:

[root@centos-01inux php-5.6.30]# make install

php-fpm相关命令:

执行PHP相关命令的两种方式:

方法1:

[root@centos-01inux php-fpm]# /usr/local/php-fpm/sbin/php-fpm -m

方法2:

[root@centos-01inux php-fpm]# /usr/local/php-fpm/bin/php -m

php-fpm配置文件语法检测:

[root@centos-01inux php-fpm]# /usr/local/php-fpm/sbin/php-fpm -t

配置

添加配置文件

将配置文件添加到php-fpm配置文件目录:

[root@centos-01inux php-5.6.30]# cp php.ini-production /usr/local/php-fpm/etc/php.ini

配置文件调试

切换至配置文件所在目录:

[root@centos-01inux php-5.6.30]# cd /usr/local/php-fpm/etc/

手动添加配置文件,写入如下内容:

[root@centos-01inux etc]# vim php-fpm.conf

[global]

#定义全局参数

pid = /usr/local/php-fpm/var/run/php-fpm.pid

error_log = /usr/local/php-fpm/var/log/php-fpm.log

[www]

listen = /tmp/php-fcgi.sock

#监听地址,也可以写:listen = 127.0.0.1::9000,本地监听,也可以监听其他IP:port

#此处格式会影响配置Nginx和PHP结合时Nginx寻址PHP的路径

listen.mode = 666

#当监听的为socket文件时该部分才生效,用于指定.sock文件的权限

user = php-fpm

group = php-fpm

#定义php-fpm服务的用户

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

#以上部分为进程相关信息

配置启动脚本

切换至文件源目录:

[root@centos-01inux etc]# cd /usr/local/src/php-5.6.30

添加启动脚本到系统配置:

[root@centos-01inux php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

更改文件权限:

[root@centos-01inux php-5.6.30]# chmod 755 /etc/init.d/php-fpm

添加到系统服务:

[root@centos-01inux php-5.6.30]# chkconfig --add php-fpm

设置开机启动:

[root@centos-01inux php-5.6.30]# chkconfig php-fpm on

启动php-fpm服务:

[root@centos-01inux php-5.6.30]# service php-fpm start

Starting php-fpm done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值