centos7上编译安装php7以php-fpm方式连接apache


Posted in PHP onNovember 08, 2018

好几个月之间其实已经配置过LAMP LNMP等等一些配置,以前配置都是按照晚上抄的,基本都能配置出来,现重头学想自己配置下,但是发现好多配置都忘了 ,中间踩了几个坑,记录下,也更彻底的学习下.....

./configure --prefix=/usr/local/php7

--enable-fpm 以fpm模式安装,这个还可以改成 --with-apxs2=PATH模式,两者只能取其一

--enable-so

--with-config-file-path=/etc 只能配置文件位置

--with-config-file-scan-dir=/etc/php.d 可以读取这个目录下的配合文件

--with-openssl

--with-linxml-dir

--with-bz2

--with-curl

--with-pcre-dir

--with-gd

--with-jpeg-dir

--with-png-dir

--with-zlib-dir

--with-mcrypt

--with-mysql=/usr/local/mysql 这个选项是多余的,不生效,在php7中有其内置的mysql模块了 不用依赖于mysql或mariadb,所以说php安装顺序放在那里都行

--with-mysqli

--with-mysql-sock

--with-pdo-mysql

--enable-sockets

这次编译的呢是php独立模式的,不是作为apache模块形式运行的,所有就开启了 --enable-fpm,这样的好处是php可以独立与任何一台机器运行

但是,上面的参数并不是完整的,有很多的参数没添加上。。

遇到的问题是,在使用phpMyadmin的时候

centos7上编译安装php7以php-fpm方式连接apache

然后就开始在网上搜啊搜的,找了好多也没解决,不能说网上的方法不对,只是安装方式不同而已,网上的方法大部分是这样的

centos7上编译安装php7以php-fpm方式连接apache

或者是这样的

centos7上编译安装php7以php-fpm方式连接apache

但是我的都不是这样的,以上说的可能是直接yum安装的php,具体我的为什么出现这种情况 还需要看 ./configure的选项了,因为我没有 开启

---enable-mbstring Enable multibyte string support

所有就会出现这样的问题,解决方案,动态编译mbstrin

cd /root/pakger/php-7.1.23/ext/mbstring/
 /usr/local/php7/bin/phpize 
./configure --with-php-config=/usr/local/php7/bin/php-config
make && make install
cd /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/

也就这几部,首先cd 到php的源目录中的/ext/mbstring中

然后运行 /usr/local/php7/bin/phpize 会生成一个configure的文件

最后直接使用期编译安装到上面指定的位置即可,编译安装完以后会出现此模块的路径 ×××路径到php.ini中 如下图:

centos7上编译安装php7以php-fpm方式连接apache

据对路径方式....

然后重启php-fpm即可,当然想要和apache连接上还需要配置apachere配置文件

因为这里是以fpm形式安装的,所以和模块形式的配置是不一样的,除了添加

centos7上编译安装php7以php-fpm方式连接apache

以外 还需要添加

centos7上编译安装php7以php-fpm方式连接apache

以上两行,大概意思是让php请求的页面都走这个路径。。。

而以模块形式安装php的应配置为

centos7上编译安装php7以php-fpm方式连接apache

到此基本就完事了,然后就是配置一下php的配置文件之类的...

另外php的配置文件挺多的,它为啥不能放在一个配置文件下面的::

因此,这篇文章主要对这三个PHP配置文件的进行简单说明,具体的配置过程见本文末尾的 附录 部分。

1 配置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:/var/run/php-fpm/php-fpm.sock;设置PHP监听
; listen = 127.0.0.1:9000 #####不建议使用
listen = /var/run/php-fpm/php-fpm.sock
######开启慢日志
slowlog = /var/log/php-fpm/$pool-slow.log
request_slowlog_timeout = 10s
######设置php的session目录(所属用户和用户组都是nginx)
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
<?php
phpinfo();
$link = mysql_connect("localhost","user","passwd");
if (!$link) echo "FAILD";
else echo "ok";
phpinfo();
?>

通用二进制安装包安装mariadb出了几次错误,索性就编译安装了,但是。。真的挺慢的.......

其中用到了 mysql中的data专门放到一个目录或分区上

需要用到磁盘分区知识,然后使用初始化脚本来指定data的位置

然后设置mysql开机启动 把服务脚本添加到init.d目录下等

总结

以上所述是小编给大家介绍的centos7上编译安装php7以php-fpm方式连接apache,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
对Session和Cookie的区分与解释
Mar 16 PHP
PHP入门学习的几个不错的实例代码
Jul 13 PHP
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
php重定向的三种方法分享
Feb 22 PHP
PHP--用万网的接口实现域名查询功能
Dec 13 PHP
destoon整合ucenter后注册页面不跳转的解决方法
Jun 21 PHP
ThinkPHP登录功能的实现方法
Aug 20 PHP
Laravel 5 学习笔记
Mar 06 PHP
php使用NumberFormatter格式化货币的方法
Mar 21 PHP
Yii2下session跨域名共存的解决方案
Feb 04 PHP
PHP培训要多少钱
Jun 06 PHP
详解Laravel框架的依赖注入功能
May 27 PHP
PHP校验15位和18位身份证号的类封装
Nov 07 #PHP
php中如何执行linux命令详解
Nov 06 #PHP
laravel中的一些简单实用功能
Nov 03 #PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 #PHP
yii2 上传图片的示例代码
Nov 02 #PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 #PHP
php 调用百度sms来发送短信的实现示例
Nov 02 #PHP
You might like
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
PHP 读取和编写 XML
2014/11/19 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
2013/08/07 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
Python jieba库分词模式实例用法
2021/01/13 Python
HTML5之SVG 2D入门3—文本与图像及渲染文本介绍
2013/01/30 HTML / CSS
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
如何查找网页漏洞
2016/06/22 面试题
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
党员民主评议个人总结
2014/10/20 职场文书
合作意向协议书
2015/01/29 职场文书
幼师个人总结范文
2015/02/28 职场文书
2015年推普周活动总结
2015/03/27 职场文书
幼儿园校车安全责任书
2015/05/08 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python