首页 > 后端开发 > PHP,好久不见 > 编译安装php7.3
2019
03-28

编译安装php7.3

最近在一台CentOS6.2的机器上部署php7.3,系统有点旧,稍微折腾点。

安装需要的依赖

编译安装

  • 官网下载最新的稳定版本

注意用户组最好与nginx的保持一致,例如我这里设置与nginx一致的nobody

编译期间遇到的问题汇总

  • checking for cURL 7.15.5 or greater… configure: error: cURL version 7.15.5 or later is required to compile php with cURL support

实际上我本地已经安装了最新的版本。–withcurl不指定路径的话,会在/usr/include/curl下找头文件。但我本机已有的libcurl貌似没有这些头文件。尝试yum install curl curl-devel,报了一个多版本冲突的问题。所以最后还是从curl官网下载了最新的tar包,手动编译安装后,withcurl指定路径为/usr/local/include/curl/

  • configure: error: Please reinstall the libzip distribution

通过yum安装的libzip版本过低,只能到官网下载编译安装。

执行cmake的时候报错:Error when bootstrapping CMake: Cannot find a C++ compiler that supports both C++11 and the specified C++ flags. Please specify one using environment variable CXX. The C++ flags are “”.

原因是yum安装的cmake版本过低,不支持c++11特性。所以到cmake官网下载源码安装,悲剧的是编译cmake需要支持c++11的GCC/G++, 考虑到在这台机器上升级GCC会很麻烦,所以直接下载cmake官方编译好的可执行文件

  • redis、memcached扩展到 https://pecl.php.net 搜索下载,编译安装即可。最后在php.ini末尾加上扩展

php -m 可以查看加载成功的扩展,php –ri 扩展名 可以查看某扩展的具体版本和相关配置

其它需要注意的

  • 生产环境务必开启opcache,在php.ini添加 zend_extension=opcache.so
  • 对于不依赖php内置的会话的app来说,每次请求都自动开启会话,生成一个session文件是不必要的。编辑php.ini,将session的配置session.auto_start设置为0。
  • 如果你的应用依赖于php内置的会话,请务必实现session_set_save_handle方法,将session保存到redis或其他缓存中。否则大量地读写session文件(存储在磁盘),磁盘IO会很大,系统负载就刷刷的上去了。

 

最后编辑:
作者:foam
foam
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。

1 加上 7 ?