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

这篇博客详细记录了在 CentOS7 上编译安装 PHP7 和 PHP-FPM 的过程,包括配置选项和解决安装gd库、zabbix依赖等问题。在安装过程中提到了phpize、php-config等工具的使用,以及启动php-fpm的步骤。在配置php-fpm时,遇到了没有定义pool的问题,并给出了解决方法。此外,还探讨了与Apache的整合,特别提到了--enable-fpm选项的选择。最后,博主分享了在配置php.ini、php-fpm.conf和www.conf文件时的注意事项,以及如何避免PHP信息暴露和错误日志的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装php中gd库好像是最烦的

尤其是安装zabbix的时候 需要好多库的支持

建议先安装gd库 实现查好安装那些库

./configure --prefix=/usr/local/php7 --enable-fpm --enable-so --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --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-mysqli --with-mysql-sock --with-pdo-mysql --enable-sockets --with-freetype-dir=/usr/local/freetype/ --enable-bcmath --enable-bcmath --enable-mbstring

./configure --prefix=/usr/local/php7 --enable-fpm --enable-so --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --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-mysqli --with-mysql-sock --with-pdo-mysql --enable-sockets

make && make install

program: phpize

program: php-config

Installing man pages: /usr/local/php7/php/man/man1/

page: phpize.1

page: php-config.1

Installing PEAR environment: /usr/local/php7/lib/php/

[PEAR] Archive_Tar - installed: 1.4.8

[PEAR] Console_Getopt - installed: 1.4.3

[PEAR] Structures_Graph- installed: 1.1.1

[PEAR] XML_Util - installed: 1.4.3

[PEAR] PEAR - installed: 1.10.10

Wrote PEAR system config file at: /usr/local/php7/etc/pear.conf

You may want to add: /usr/local/php7/lib/php to your php.ini include_path

/opt/php-7.2.26/build/shtool install -c ext/phar/phar.phar /usr/local/php7/bin

ln -s -f phar.phar /usr/local/php7/bin/phar

Installing PDO headers: /usr/local/php7/include/php/ext/pdo/

[root@localhost php-7.2.26]#

安装完成

在之前编译的源码包中,找到 php.ini-production,复制到/etc/下,并改名为php.ini:

$ cp php.ini-production /usr/local/php/php.ini

报错

[07-Jan-2020 13:11:52] WARNING: Nothing matches the include pattern '/usr/local/php7/etc/php-fpm.d/*.conf' from /usr/local/php7/etc/php-fpm.conf at line 125.

[07-Jan-2020 13:11:52] ERROR: No pool defined. at least one pool section must be specified in config file

[07-Jan-2020 13:11:52] ERROR: failed to post process the configuration

[07-Jan-2020 13:11:52] ERROR: FPM initialization failed

[root@localhost php-fpm.d]# cp www.conf.default www.conf

[root@localhost php-fpm.d]# pwd

/usr/local/php7/etc/php-fpm.d

[root@localhost php-fpm.d]#

启动php 在安装目录的sbin下 运行 php-fpm即可

在nginx中编辑php的测试页

phpinfo();

?>

整合和mysql nginx

好多配置都忘了 ,中间踩了几个坑,记录下。

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

--enable-fpm 以fpm模式安装,这个还可以改成 --with-apxs2=PATH模式,两者只能取其一,后者直接安装在了apache中,会随着apache的启动而启动。

--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的时候

b555b96026b1194ccb0f4c7394c9159b.png

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

4f3039d48fc45d40fd1bcd0459211429.png

或者是这样的

5058bd909eb4c31ae2edcc23ab820252.png

但是我的都不是这样的,以上说的可能是直接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 ×××tall

cd /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/

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

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

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

34d0b94bab704d0e5389ee531d484eb4.png

据对路径方式....

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

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

c0d0cdd3f5b23012a48e748e10acd1e1.png

以外 还需要添加

a96cf0426d8c9d87d7fe7281f93ca912.png

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

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

89cffc5ba562addcb39dc539b4fd277c.png

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

phpinfo();

$link = mysql_connect("localhost","user","passwd");

if (!$link) echo "FAILD";

else echo "ok";

phpinfo();

?>

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值