设为首页 收藏本站
查看: 622|回复: 0

[经验分享] lnmp安装php

[复制链接]

尚未签到

发表于 2018-12-11 11:36:00 | 显示全部楼层 |阅读模式
  这里要先声明一下,针对Nginx的 php安装和针对apache的php安装是有区别的,因
为Nginx中的php是以fastcgi的方式结合nginx的。可以理解为nginx代理了php的fastcgi,
而apache是把php作为自己的模块来调用的。同样的,阿铭建议你使用 5.4版本。PHP 官
方下载地址: http://www.php.net/downloads.php。如下为安装过程:
(1)下载PHP源码包
#cd /usr/local/src
#wget http://au1.php.net/distributions/php-5.4.44.tar.bz2
(2)解压源码包,创建账号
#tar jxf php-5.4.44.tar.bz2
#useradd -s /sbin/nologin php-fpm
该账号用来运行php-fpm服务,在LNMP 环境中,php 是以一个服务来提供服务的。
提前安装一些依赖包,尽少避免编译错误
yum install -y libjpeg-devel libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel epel-release libmcrypt libcurl-devel
yum install -y libmcrypt-devel
(3)配置编译选项  
./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
错误信息:
configure: error: Please reinstall the libcurl distribution -
easy.h should be in /include/curl/
解决办法:
#yum install -y libcurl-devel
(4)编译PHP
#make
在这一步,你通常会遇到一些错误,没有关系,遇到错误是好事,这样可以增加你处理
问题的经验。我同样也遇到了错误:
/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [sapi/fpm/php-fpm] 错误 1
我是这样解决的:
#yum install -y libtool-ltdl-devel
(5)安装PHP
#make install
以上每一个步骤,如果没有完全执行正确,那么下一步是无法进行的,是否还记得判
断执行是否正确的方法? 使用 echo $? 看结果是否为  “0” , 如果不是,就是没有执行正确。
(6)修改配置文件
#cp php.ini-production /usr/local/php/etc/php.ini
#vim /usr/local/php/etc/php-fpm.conf
把如下内容写入该文件:
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
user = php-fpm
group = 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
listen.owner = nobody
listen.group = nobody
#slowlog = /tmp/www_slow.log
#request_slowlog_timeout = 5
#php_admin_value[open_basedir]=/data/www/:/tmp/
  说明:
global部分是全局配置,指定 pid文件路径以及error_log路径。
[www]是一个pool,我们其实还可以再写第二个pool,第二个pool和第一个不一样的
地方,首先pool的name,比如叫做[www2]。然后 listen肯定就不能一样了,比如可以 listen
= /tmp/php-fcgi2.sock。而 user,group也可以和[www]中定义的不一样。listen.owner这个是
定义/tmp/php-fcgi.sock 这个文件的所有者是谁,在php5.4版本之后监听的socket文件权限
默认编程了rw-------,如果不定义 listen.owner那么 nginx调用这个socket的时候就没有权限
了,故在这里我们定义 listen.owner为 nginx的子进程监听用户。
pm = dynamic 表示以动态的形式启动,在 php5.3版本以后它可以支持动态和静态了,
如果是静态,即pm=static 时,下面的配置只有pm.max_children管用。
pm.max_children 表示启动几个 php-fpm的子进程。如果是 dynamic,下面的配置会生效,
pm.max_children 表示最大可以启动几个子进程。
pm.start_servers表示一开始启动几个子进程。
pm.min_spare_servers表示当 php-fpm空闲时最少要有几个子进程,即如果空闲进程小
于此值,则创建新的子进程。 pm.max_spare_server表示当 php-fpm空闲时最多有几个子进程,
即如果空闲进程大于此值,则会进行清理。
pm.max_requests表示一个子进程最多可以接受多少个请求,比如设置为 500那么一个
子进程受理500个请求后自动销毁。
rlimit_files表示每个子进程打开的多少个文件句柄。
  保存配置文件后,检验配置是否正确的方法为:
#/usr/local/php/sbin/php-fpm -t
  如果出现诸如  “test is successful” 字样,说明配置没有问题,否则就要根据提示检查配
置文件是否有问题。
(7)启动php-fpm
首先要拷贝一个启动脚本到/etc/init.d/下
#cp /usr/local/src/php-5.3.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
给它更改权限为755
#chmod 755 /etc/init.d/php-fpm
#service php-fpm start
如果想让它开机启动,执行:
#chkconfig php-fpm on
检测是否启动:
#ps aux |grep php-fpm
看看是不是有很多个进程(大概 20多个)。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-650066-1-1.html 上篇帖子: centos7通过yum安装php方法 下篇帖子: LNMP之安装独立的php服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表