博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos6.8源码编译安装PHP7
阅读量:4325 次
发布时间:2019-06-06

本文共 4003 字,大约阅读时间需要 13 分钟。

一、下载源码包

打开php官网http://php.net/点击导航栏的Downloads进入下载页面:http://php.net/downloads.php下载想要安装的版本,这里下载最新版的php-7.1.8 的源码包。

下载环境源码包wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz   可以选择版本,这里下载最新版libiconv-1.15.tar.gz

二、解压源码包并安装环境包

tar zxvf libiconv-1.15.tar.gz cd libiconv-1.15 ./configure --prefix=/usr/local/libiconv make && make install

三、添加运行php7程序的用户和组

groupadd wwwuseradd -g www www

四、编译安装php7

tar zxvf php-7.1.8.tar.gz  cd php-7.1.8./configure  --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-mcrypt  --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv=/usr/local/libiconv/ --enable-xml --enable-bcmath --enable-inline-optimization --enable-mbregex --enable-fpm --with-openssl --with-xmlrpc --enable-zip --enable-soap --without-pear --enable-session --with-libxml-dir --with-zlib --with-curl --enable-dba --enable-ftp --with-freetype-dir --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-gd-native-ttf --with-gettext --enable-mbstring --enable-pcntl --without-pdo-sqlite --enable-shmop --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-opcache

此时,如果报错的话,一般是缺少环境包所致,根据报错缺少的包进行yum安装

yum -y install gcc g++ libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel

实际上这里的配置项比上述还多,可以使用./configure --help命令查看所有选项,这里注意在php7中 --with-mysql 原生支持已经不存在了,操作都变成mysqli或者pdo了;以上这些选项在正常的php开发中完全够用了,后期如果需要,可以选择手动开启相应的模块.

然后执行编译安装

make && make install

php的默认安装路径已经指定为  /usr/local/php7 ,其中配置文件的默认安装路径为 /usr/local/php7/etc .

此时在安装目录下没有php.ini文件,需要把解压包路径下拷贝一份到 /usr/local/php7/etc  ,并更名为  php.ini .

cp /usr/local/src/php-7.1.8/php.ini-development /usr/local/php7/etc/php.ini
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/src/php-7.1.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm7chmod +x /etc/init.d/php-fpm7/etc/init.d/php-fpm7 start

此时,基本上是可以启动了。接着就是根据自己的需求修改配置文件

vim /usr/local/php7/etc/php.ini
######避免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的时区date.timezone = PRC

修改配置文件php-fpm.conf

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

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

######设置用户和用户组user = wwwgroup = www######根据nginx.conf中的配置fastcgi_pass unix:/dev/shm/php-fpm7.sock;设置PHP监听; listen = 127.0.0.1:9000   #####不建议使用listen = /dev/shm/php-fpm7.sock######使用sock监听需开启isten.owner = wwwlisten.group = wwwlisten.mode = 0660######开启慢日志slowlog = /var/log/php-fpm/$pool-slow.logrequest_slowlog_timeout = 10s

修改nginx配置文件

location ~ \.php$ {    #fastcgi_pass   127.0.0.1:9000;    fastcgi_pass unix:/dev/shm/php-fpm7.sock;    fastcgi_index  index.php;    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;    include        fastcgi_params;   }

由于php7已经弃用mysql扩展改为mysqli和mysqlpdo,但是有的程序需要mysql支持运行,则可以通过安装mysql扩展来达到这种目的

五、php添加扩展

首先在php网站下载mysql扩展包:http://git.php.net/?p=pecl/database/mysql.git;a=summary 这里下载的是最新版mysql-230a828.tar.gz,上传到服务器

接着进行解压编译安装

tar zxvf mysql-230a828.tar.gzcd mysql-230a828#使用phpize进行初始化(phpize在php7安装目录)/usr/local/php7/bin/phpize#编译mysql扩展,使用mysql native driver作为mysql链接库   ./configure --with-php-config=/usr/local/php7/bin/php-config --with-mysql=mysqlnd  make && make install

编译安装成功后会得到一个链接库的路径

Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/

编辑php.ini文件

vim /usr/local/php7/etc/php.ini

在最后加入链接库so文件

[mysql]extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/mysql.so

最后重载php和nginx服务

/etc/init.d/php-fpm7 reload/etc/init.d/nginx reload

通过访问测试文件index.php可查看安装情况以及已安装扩展模块

类似地,可以根据需要安装其他扩展模块.

更多详情,请访问个人博客:

转载于:https://www.cnblogs.com/wchonge/p/8398039.html

你可能感兴趣的文章
java 下载文件
查看>>
The King’s Problem 强连通
查看>>
Lambda 表达式
查看>>
Ural1297 最长回文子串(后缀数组+RMQ)
查看>>
十九、CSS如何引入字体
查看>>
DS博客作业07--查找
查看>>
c# Invalidate() Update() Refresh()的区别
查看>>
work of 1/5/2016
查看>>
自己做了个微信小程序
查看>>
CMD获取当前目录的绝对路径
查看>>
HTML5新规范和CSS3新特性
查看>>
使用php后台给自己做一个页面路由,配合ajax实现局部刷新。
查看>>
类与对象(二)
查看>>
NSString 的常用方法
查看>>
mysql的engine不同,导致事物回滚失败的问题
查看>>
JAVAWeb使用POI做导出Excel
查看>>
今天解决了首页无头像被显示的问题
查看>>
charts 画折线图
查看>>
[py]__name__ 属于哪个文件
查看>>
技术分析淘宝的超卖宝贝
查看>>