编译安装php7.3
本文最后更新于 539 天前,其中的信息可能已经有所发展或是发生改变。

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

安装需要的依赖

sudo yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libjpeg libpng freetype libjpeg-devel libpng-devel freetype-devel gmp-devel readline-devel libxslt-devel libmemcached  libmemcached-devel -y

编译安装

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

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

./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --enable-fpm --with-fpm-user=nobody --with-fpm-group=nobody --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-libxml-dir --with-xmlrpc --with-openssl --with-mhash --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl=/usr/local/include/curl/ --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-onig --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear --enable-opcache
make
sudo make install

编译期间遇到的问题汇总

  • 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版本过低,只能到官网下载编译安装。

cd libzip-1.5.2
mkdir build
cd build
cmake ../
make
sudo make install

执行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末尾加上扩展
extension=memcached.so
extension=redis.so

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会很大,系统负载就刷刷的上去了。

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇