当前位置: 首页 > news >正文

liunx7系统centos6.8版本编译安装php7

一,首先给php新建一个系统的用户和组
#######新建php用户和php组
[root@localhost ~]# groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php7 -M php

二,编译前需要安装一些必须的扩展
1,mcrypt 是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启。window环境下,PHP>=5.3,默认开启mcrypt扩展。
PHP程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的 安全性保障。PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库 McryptMhash
其中,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。
要使用该扩展,必须首先安装mcrypt标准类库,注意的是mcrypt软件依赖libmcrypt和mhash两个库,如果不安装mhash或者libmcrypt则会报错,而且即使编译安装mhash和libmcrypt还需要使用共享库位置也就是 使用 “export LD_LIBRARY_PATH”这个函数来进行指定否则还会报找不到libmcrypt的错误。
命令如下:
######编译安装libmcrypt-2.5.7
[root@localhost ~]# tar zxvf libmcrypt-2.5.7.tar.gz
[root@localhost ~]# cd libmcrypt-2.5.7
[root@localhost libmcrypt-2.5.7]# ./configure --prefix=/usr/local/related/libmcrypt
[root@localhost libmcrypt-2.5.7]# make && make install
[root@localhost libmcrypt-2.5.7]# cd ~
[root@localhost ~]# rm -rf libmcrypt-2.5.7*
######编译安装mhash-0.9.9.9
[root@localhost ~]# tar zxf mhash-0.9.9.9.tar.gz 
[root@localhost ~]# cd mhash-0.9.9.9
[root@localhost mhash-0.9.9.9]# ./configure --prefix=/usr/local/related/mhash
[root@localhost mhash-0.9.9.9]# make && make install
[root@localhost mhash-0.9.9.9]# cd ~
[root@localhost ~]# rm -rf mhash-0.9.9.9*
######编译安装mcrypt-2.6.8
[root@localhost ~]# tar zxf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8
[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/related/libmcrypt/lib:/usr/local/related/mhash/lib
[root@localhost mcrypt-2.6.8]# export LDFLAGS="-L/usr/local/related/mhash/lib -I/usr/local/related/mhash/include/"
[root@localhost mcrypt-2.6.8]# export CFLAGS="-I/usr/local/related/mhash/include/"
[root@localhost mcrypt-2.6.8]# ./configure --prefix=/usr/local/related/mcrypt --with-libmcrypt-prefix=/usr/local/related/libmcrypt
[root@localhost mcrypt-2.6.8]# make && make install
[root@localhost mcrypt-2.6.8]# cd ~
[root@localhost ~]# rm -rf mcrypt-2.6.8*


2,
######其他依赖,如果是yum安装则如下:
手动编译也可.!!!!
在进行依赖的安装前最好看下php7源码中ext目录下已经存在了那些扩展,在目录中存在的则不需要再次编译安装 
[root@localhost ~]# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel

3,开始编译php./configure \--prefix=/usr/local/php7 \--exec-prefix=/usr/local/php7 \--bindir=/usr/local/php7/bin \--sbindir=/usr/local/php7/sbin \--includedir=/usr/local/php7/include \--libdir=/usr/local/php7/lib/php \--mandir=/usr/local/php7/php/man \--with-config-file-path=/usr/local/php7/etc
 \--with-mysql-sock=/usr/local/mysql/mysql.sock \--with-mcrypt=/usr/include \--with-mhash \--with-openssl \--with-mysql=shared,mysqlnd \  --新版已去除这个参数加上会报一个警告--with-mysqli=shared,mysqlnd \--with-pdo-mysql=shared,mysqlnd \--with-gd \--with-iconv \--with-zlib
 \--enable-zip \--enable-inline-optimization \--disable-debug \--disable-rpath \--enable-shared \--enable-xml \--enable-bcmath \--enable-shmop \--enable-sysvsem \--enable-mbregex \--enable-mbstring \--enable-ftp \--enable-gd-native-ttf \--enable-pcntl \--enable-sockets
 \--with-xmlrpc \--enable-soap \--without-pear \--with-gettext \--enable-session \--with-curl \--with-jpeg-dir \--with-freetype-dir \--enable-opcache \--enable-fpm \--enable-fastcgi \   --已默认开启新版php不再支持这个选项加上会报一个警告--with-fpm-user=www \ --fpm使用的用户--with-fpm-group=www
 \ --fpm使用的用户组--without-gdbm \--with-mcrypt=/usr/local/related/libmcrypt \--disable-fileinfo

4,查看编译后的php安装目录

由于需要mysql进行通信,所以需要特别查看PHP7安装后的lib扩展库目录(/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/)。需要确保至少存在mysqli.so、pdo_mysql.so这两个动态库文件,如下图所示。

[root@localhost php-7.0.0]# ls -lrt /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/

三,开始设置PHP7的配置文件php.ini、php-fpm.conf、www.conf和php-fpm脚本
[root@localhost php-7.0.0]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@localhost php-7.0.0]# cp /root/php-7.0.0/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-7.0.0]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@localhost php-7.0.0]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

注意:需要修改php.ini配置中的参数,extension_dir改为自己的

extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/"

 配置php.ini

php.ini是php运行核心配置文件:

######避免PHP信息暴露在http头中
expose_php = Off

######避免暴露php调用mysql的错误信息
display_errors = Off

######在关闭display_errors后开启PHP错误日志(路径在php-fpm.conf中配置)
log_errors = On

######设置PHP的扩展库路径
extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20141001/"

######设置PHP的opcache和mysql动态库
zend_extension=opcache.so
extension=mysqli.so
extension=pdo_mysql.so

######设置PHP的时区
date.timezone = PRC

######开启opcache
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=1

######设置PHP脚本允许访问的目录(需要根据实际情况配置)
;open_basedir = /usr/share/nginx/html;
2配置php-fpm.conf

php-fpm.conf是php-fpm进程服务的配置文件:

######设置错误日志的路径
error_log = /var/log/php-fpm/error.log
######引入www.conf文件中的配置
include=/usr/local/php7/etc/php-fpm.d/*.conf
 
3配置www.conf(在php-fpm.d目录下)

www.conf这是php-fpm进程服务的扩展配置文件:

######设置用户和用户组
user = nginx
group = nginx

######根据nginx.conf中的配置fastcgi_pass unix:/usr/local/php7/run/php-fpm.sock;设置PHP监听,注意所属用户和用户组必须与www.conf中的设置一致!
也就是说
listen.owner = www
listen.group = www
listen.mode = 0666
这三个配置项需要开启并填写来保证监听的用户和用户组

 ; listen = 127.0.0.1:9000   #####不建议使用
listen = /usr/local/php7/run/php-fpm.sock

######开启慢日志
slowlog = /usr/local/php7/log/$pool-slow.log
request_slowlog_timeout = 10s

######设置phpsession目录(所属用户和用户组都是www
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session

四,

添加php的环境变量

[root@localhost php-7.0.0]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile

设置PHP日志目录和php-fpm进程文件(php-fpm.sock)目录

其中,设置php-fpm进程目录的用户和用户组为nginx,并创建php会话session目录

#######设置PHP日志目录和php-fpm的运行进程ID文件(php-fpm.sock)目录
[root@localhost php-7.0.0]# groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx
[root@localhost php-7.0.0]# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm
#######修改session的目录配置
[root@localhost run]# mkdir -p /var/lib/php/session
[root@localhost run]# chown -R nginx:nginx /var/lib/php

设置PHP开机启动以及测试配置文件是否正确

######配置开机自启动,增加到主机sysV服务
[root@localhost run]# chmod +x /etc/init.d/php-fpm
[root@localhost run]# chkconfig --add php-fpm
[root@localhost run]# chkconfig php-fpm on
######测试PHP的配置文件是否正确合法
[root@localhost run]# php-fpm -t
[05-Dec-2015 17:33:03] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successfu

启动php服务

在完成上面的操作后,就可以正式使用php服务了。启动php进程服务的命令如下:

[root@localhost init.d]# service php-fpm start
Starting php-fpm  done

然后可以通过命令ps -aux|grep php查看是否成功(图中的php-fpm进程数和进程用户nginx都是由www.conf中pm.start_servers和user的值分别决定的):

PHP 7 ps -aux

查看PHP7版本信息

最后,可以通过命令php -v查看当前PHP版本信息,图中可以看到当前PHP7还使用了Zend OPcache缓存,是因为在php.ini文件中添加了zend_extension=opcache.so配置。

PHP 7 version






相关文章:

  • 如果ngxin不能使用service nginx start 开启
  • linux7下centos6.8开启某个端口
  • liunx7下centos6.8编译安装nginx1.12.1
  • liunx7下centos6.8编译安装mysql-5.7.18
  • 关于linux下查看磁盘,内容,CPU使用情况的命令
  • Linux系统IO分析工具之iotop参数详解(查看IO占用)
  • 正则表达式之完全体验
  • 安装libpng提示--configure: error: ZLib not installed
  • WINDOWS之端口和进程查看命令
  • 3种方法轻松处理php开发中emoji表情的问题
  • linux下升级openssl到新版本
  • linux7下centos6.8版本完全编译php7.17与nginx
  • linux7下centos6.8版本完全编译php7.17与nginx --后续,配置nginx.conf与php-fpm.conf,www.conf
  • jquery将serializeArray转为可用的json对象
  • PHP用户登录后跳转回上一访问页面的实现思路及代码
  • python3.6+scrapy+mysql 爬虫实战
  • 自己简单写的 事件订阅机制
  • [case10]使用RSQL实现端到端的动态查询
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • CEF与代理
  • ComponentOne 2017 V2版本正式发布
  • HTTP--网络协议分层,http历史(二)
  • linux安装openssl、swoole等扩展的具体步骤
  • Linux下的乱码问题
  • nginx 配置多 域名 + 多 https
  • Web标准制定过程
  • windows-nginx-https-本地配置
  • 百度小程序遇到的问题
  • 关于List、List?、ListObject的区别
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 力扣(LeetCode)965
  • 前言-如何学习区块链
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 小程序button引导用户授权
  • 赢得Docker挑战最佳实践
  • 与 ConTeXt MkIV 官方文档的接驳
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • const的用法,特别是用在函数前面与后面的区别
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #if 1...#endif
  • #pragma multi_compile #pragma shader_feature
  • #Ubuntu(修改root信息)
  • (04)odoo视图操作
  • (6)STL算法之转换
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C语言)逆序输出字符串
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (vue)页面文件上传获取:action地址
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (第二周)效能测试
  • (多级缓存)多级缓存
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (十六)Flask之蓝图