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

好几个月之间其实已经配置过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的时候

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

或者是这样的

但是我的都不是这样的,以上说的可能是直接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中 如下图:

据对路径方式....
然后重启php-fpm即可,当然想要和apache连接上还需要配置apachere配置文件
因为这里是以fpm形式安装的,所以和模块形式的配置是不一样的,除了添加

以外 还需要添加

以上两行,大概意思是让php请求的页面都走这个路径。。。
而以模块形式安装php的应配置为

到此基本就完事了,然后就是配置一下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目录下等

原文地址:http://blog.51cto.com/12529218/2313761

时间: 2024-10-11 03:35:40

centos7上编译安装php7,以php-fpm方式连接apache的相关文章

Linux Centos7.2 编译安装PHP7.0.2

操作环境: 1.系统:Centos7.2 2.服务:Nginx 1.下载PHP7.0.2的安装包解压,编译,安装: $ cd /usr/src/ $ wget http://cn2.php.net/distributions/php-7.0.2.tar.gz $ tar -zxvf php-7.0.2.tar.gz $ cd php-7.0.2 1.1 编译前检查 请检查是否安装了gcc ,没有的话执行yum install gcc 检查是否安装了libxml2 ,没有的话执行yum insta

Centos6.8源码编译安装PHP7

一.下载源码包 打开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 二.解压源码包并安装环境包 1 tar zxvf libi

CentOS7源码安装PHP7

前言: 其实对于很多php程序员来说,Linux可能还是属于一个略懂的状态.比如搭建环境大家更加乐意去使用继承开发环境.对于源码编译安装比较陌生.当然我也不例外.不过我认为一个程序员无论你常用的开发语言是什么.linux都是一个绕不开的东西.所以今天就学习下如何使用源码编译安装PHP7 1.前提 首先我使用的是CentOS7的操作系统,也是一个比较主流的系统.其他发行版本甚至mac 应该方法都是大同小异当我们安装php之前我们需要到官网去下载一个源码包. 点击左上角的Downloads 选择ph

CentOS 6上编译安装AMP详解

在CentOS 6上编译安装AMP     A:Apache(httpd)     M:MySQL or MariaDB     P:php 目录: 一.准备工作 二.编译安装Apache(httpd) 三.编译安装MariaDB 四.编译安装PHP 编译安装AMP的优点: 根据生产环境灵活定制程序 优化编译参数,提高性能 解决不必要的软件依赖 一.准备工作 1.需要的软件包及版本号: httpd-2.4.27(apr-1.5.2+ apr-util-1.5.4) + MariaDB-5.5.5

编译安装PHP7并安装Redis扩展Swoole扩展

在编译php7的机器上已经有编译安装过php5.3以上的版本,从而依赖库都有了 本php7是编译成fpm-php 使用的, 如果是apache那么编译参数应该为 1 --with-apxs2=/usr/local/apache/bin/apxs 编译安装php7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 4

centos7.3编译安装LAMP环境并搭建WordPress博客

centos7.3编译安装LAMP环境并搭建WordPress博客 日期:2017年8月6日 软件版本: apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 httpd-2.4.27.tar.bz2 mariadb-10.2.7-linux-x86_64.tar.gz php-7.1.7.tar.bz2 wordpress-4.8-zh_CN.tar.gz xcache-3.2.0.tar.gz 1.编译安装apache2.4 yum groupinstall de

CentOS7.3编译安装python3.6

CentOS7.3编译安装python3.6  一.前言  最近迷上了python,所以准备开始上手python.由于python2维护较少,python3必然是趋势了,所以我准备用python3.6学习python.CentOS7.3默认安装的是python2.7,所以我需要从官网上下载python3.6并编译安装python3.6,但是比较尴尬的是,CentOS的yum环境支持python2而不支持python3,所以需要通过一些小小的修改,才能在正常的使用python3.6的同时也能正常的

centos7.4编译安装lamp

centos7.4编译安装lamp lamp简介 Linux+Apache+Mysql/MariaDB+PHP一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.apache相对nginx来说更加稳定,动态页面的处理更加合适. 源码包 httpd-2.4.33mariadb-10.2.14php-7.2.5 基本编译环境构建 系统版本:CentOS 7.4 x86_64安装开发包:Devel

CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法

这篇文章主要介绍了CentOS 7.2 mini版本下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下一.安装前的准备工作 1.yum update #更新系统 2.yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu