美文网首页
CentOS7源码安装php7

CentOS7源码安装php7

作者: 小杨同学97 | 来源:发表于2021-07-13 16:16 被阅读0次

yum安装php7虽然很快,也不用考虑头疼的依赖问题,但是在某些场景下面我们需要从源码根据自己的需求编译安装php。比如:多版本共存、yum没有的提供的扩展模块等等。

特别说明,本教程在操作系统CentOS7上重复,PHP版本为php-7.2.34。基本模块要能够满足web服务,另外,需要添加ldap模块。

一、下载php

下载php源码,官网地址:http://cn2.php.net/downloads.php

[root@localhost ~]# wget https://www.php.net/distributions/php-7.2.34.tar.gz
[root@localhost ~]# tar -zxvf php-7.2.34.tar.gz

二、安装类库

 yum install -y autoconf gcc gcc-c++ libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel php-mcrypt libmcrypt libmcrypt-devel bzip2-devel libXpm-devel gmp-devel icu libicu libicu-devel postgresql-devel libxslt-devel sqlite-devel

安装php-ldap依赖

yum install -y openldap-devel

虽然安装了依赖,但是编译的时候还是会报错configure: error: Cannot find ldap libraries in /usr/lib.

cp -frp /usr/lib64/libldap* /usr/lib/

三、编译参数的配置

./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=/var/run/mysql/mysql.sock --with-mhash --with-ldap  --with-openssl --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-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 --without-gdbm --disable-fileinfo

编译安装

make clean && make && make install

编译安装报错/lib64/liblber-2.4.so.2: could not read symbols: Invalid operation

/usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_scanf' 
/usr/bin/ld: note: 'ber_scanf' is defined in DSO /lib64/liblber-2.4.so.2 so try adding it to the linker command line 
/lib64/liblber-2.4.so.2: could not read symbols: Invalid operation 
collect2: ld returned 1 exit status 
make: *** [sapi/cli/php] Error 1

解决办法configure完成后,编辑 MakeFile文件

vi MakeFile

找到开头是'EXTRA_LIBS' 的行,结尾加上 '-llber'
再执行make clean && make && make install
等待编译完成,大概40多分钟。摸鱼...再好不过了。

四、添加php的环境变量

[root@localhost php-7.2.34] echo -e 'export PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH' >> /etc/profile && source /etc/profile

查看php版本和模块

[root@localhost ~]# php -v
PHP 7.2.34 (cli) (built: Jul 13 2021 14:36:37) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
[root@localhost ~]# php -m |grep ldap
ldap
[root@localhost ~]#

五、后续配置

将编译后的配置文件复制到PHP7的配置目录(/usr/local/php7/etc/)

[root@localhost php-7.2.34]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@localhost php-7.2.34]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@localhost php-7.2.34]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

将php-fpm添加到开机启动,在系统服务目录里创建php-fpm.service文件

vi /lib/systemd/system/php-fpm.service

内容如下

[Unit]
Description=php-fpm
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/php7/sbin/php-fpm
ExecReload=/usr/local/php7/sbin/php-fpm -s reload
ExecStop=/usr/local/php7/sbin/php-fpm -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启动并设置开机自启

systemctl start php-fpm.service #启动php-fpm服务 
systemctl enable php-fpm.service #设置开机自启动
systemctl status php-fpm.service #查看服务当前状态

查看服务当前状态

[root@localhost system]# systemctl status php-fpm.service
● php-fpm.service - php-fpm
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2021-07-13 15:59:44 CST; 8s ago
  Process: 1250 ExecStart=/usr/local/php7/sbin/php-fpm (code=exited, status=0/SUCCESS)
 Main PID: 1550 (php-fpm)
   CGroup: /system.slice/php-fpm.service
           ├─1550 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
           ├─1554 php-fpm: pool www
           └─1555 php-fpm: pool www

7月 13 15:59:43 localhost.localdomain systemd[1]: Starting php-fpm...
7月 13 15:59:44 localhost.localdomain systemd[1]: Started php-fpm.

参考资料

2015博客升级记(五):CentOS 7.1编译安装PHP7
centos7.2+php7.2+nginx1.12.0+mysql5.7配置
centos7 ldap php,php7安装ldap扩展_是个少女的博客-CSDN博客
linux安装PHP: 编译错误整理_人猿泰山-CSDN博客

相关文章

  • 程序日记2018-05-03

    centos7 安装nginx和php7 centos7 安装nginx和php7 centos7系统安装php7...

  • php7.3.5配置swoole4

    一、PHP7源码安装和Swoole源码编译安装 1.1 PHP7源码安装 1.1.1 获取源码与安装 获取PHP7...

  • PHP7 编译安装

    基准测试 - 可以对比所需版本性能 安装解压器 下载php7源码 解压php7源码 安装编译软件(必须) 安装编译...

  • CentOS7 配置PHP支持socket扩展

    PHP7源码安装可以查看我之前的文章: PHP7源码安装 不删除解压后的源码就是方便, 在这里可以直接进入PHP源...

  • centos7 安装 php7

    在centos7系统上安装php7环境,步骤如下所示: 一、安装php7相关的yum源 rpm -Uvh http...

  • Centos7 多种方法 安装git

    源码安装 安装对应的依赖 下载源码编译安装 确保系统git 已经被卸载 rpm 安装(基于CentOS7)

  • Python基础知识

    Python下载地址:官方源码 centos7下安装方法 :Centos7安装Python3.5 Python B...

  • CentOS7源码安装PHP7

    前言: 其实对于很多php程序员来说,Linux可能还是属于一个略懂的状态.比如搭建环境大家更加乐意去使用集成开发...

  • centos7 源码安装PHP7

    前言 一、 获取PHP7源码包 二、安裝 三、简化PHP命令,使其可以全局使用php命令 四、配置php.ini ...

  • CentOS7源码安装php7

    yum安装php7虽然很快,也不用考虑头疼的依赖问题,但是在某些场景下面我们需要从源码根据自己的需求编译安装php...

网友评论

      本文标题:CentOS7源码安装php7

      本文链接:https://www.haomeiwen.com/subject/cnrspltx.html