RedHat6.9 编译安装php7.4.6
Posted wangyana
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RedHat6.9 编译安装php7.4.6相关的知识,希望对你有一定的参考价值。
202006为了升级nextcloud13.0.12至14.0.X及更高版本,但是高于13版本的nextcloud已经不再支持php5.6,至少需要php7,故升级php
下载php7.4.6安装包linux版,地址:
https://www.php.net/releases/
下载完成后,把php-7.4.6.tar.gz上传至linux目录/mnt/rd1/tmp
解压安装包:
tar -zxvf php-7.4.6.tar.gz
进入目录
cd php-7.4.6
执行配置
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-fpm-group=wyan --with-fpm-user=wyan --with-mcrypt --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache
配置成功后控制台输出:
则配置成功
开始执行编译且安装
make && make install
控制台输出以上信息则安装完成
拷贝配置文件:
cp php.ini-development /usr/local/php7/etc/php.ini
安装完成在/usr/local下会出现php7目录
# cd /usr/local/php7/etc下
首先复制出一份php-fpm.conf
#cp php-fpm.conf.default php-fpm.conf
切换到/usr/local/php7/etc/php-fpm.d复制配置文件
#cp www.conf.default www.conf
为了兼容php5.6所以需要配置php7的监听端口为9001 (我的php5.6监听端口为9000)
# vim /usr/local/php7/etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000 将其端口修改为 listen = 127.0.0.1:9001
配置环境变量
vim /etc/profile 添加到文件末尾
##php export PHP_HOME=/usr/local/php7 export PATH=$PHP_HOME/bin:$PATH
然后
source /etc/profile
出现报错1:
升级sqlite3到3.7.4版本,发现sqlite3.7.4版本是centos8库里面才有,所以暂时不升级这个
换个思路安装版本低一点的php,所以最后选择php7.2.16,直接编译通过;
编译安装 PHP 的 Memcached 扩展
- 注意:安装 PHP 的 Memcached 扩展前,务必先安装 Memcached服务
- 下载 libmemcached 源码包
cd /root/tmp wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
- 解压缩
tar zxvf libmemcached-1.0.18.tar.gz
- 编译三部曲
# 进入源码目录 cd libmemcached-1.0.18 # 配置指定安装目录 ./configure --prefix=/usr/local/libmemcached --with-memcached # 配置安装 && 编译安装 make && make install
- 如果出现报错
clients/memflush.cc: In function ‘int main(int, char**)’
# 将 clients/memflush.cc 的 42 行和 51 行作如下修改: int main(int argc, char *argv[]) { options_parse(argc, argv); - if (opt_servers == false) + if (!opt_servers) { char *temp; - if (opt_servers == false) + if (!opt_servers) { std::cerr << "No Servers provided" << std::endl; exit(EXIT_FAILURE);
安装 Memcached 扩展
- 下载 Memcached 源码包(php >= 7.0 下载 Memcached 3.0,php < 7.0 下载 Memcached 2.2.0)
cd /root/tmp wget http://pecl.php.net/get/memcached-3.1.3.tgz
- 解压缩
tar zxvf memcached-3.1.3.tgz
- 准备编译
# 进入源码目录 cd memcached-3.1.3 # 通过 phpize 建立 PHP 的外挂模块 /usr/local/php7/bin/phpize # 配置 ./configure --with-php-config=/usr/local/php7/bin/php-config \\ --with-libmemcached-dir=/usr/local/libmemcached/ \\ --disable-memcached-sasl # 编译安装 make && make install
配置 php.ini
# 编辑 php.ini vim /usr/local/php7/etc/php.ini #在文件尾部增加 [memcached] extension = memcached.so # 重启 nginx 和 php systemctl restart nginx /etc/init.d/php-fpm restart # 或 kill -9 $(pidof php-fpm) /usr/local/php/sbin/php-fpm /usr/local/nginx/sbin/nginx -s reload # 验证 /usr/local/php/bin/php -m | grep memcached
扩展到此安装完成;
Memcached 扩展安装完成后,安装Memcached服务,PHP中Memcached 扩展是用来连接Memcached服务的
首先安装libevent(memcached服务端需要用到
下载地址:http://libevent.org/
##下载,解压,配置,编译安装
wget https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz
tar -zxvf libevent-2.0.20-stable.tar.gz
cd libevent-2.0.20-stable
./configure --prefix=/usr/local/libevent
make; make install
检查是否安装成功
ls -al /usr/local/lib |grep libevent
可能出现如下错误:
make[2]: *** [Makefile:766: bufferevent_openssl.lo] Error 1 make[2]: Leaving directory \'/root/tmp/libevent-2.0.20-stable\' make[1]: *** [Makefile:824: all-recursive] Error 1 make[1]: Leaving directory \'/root/tmp/libevent-2.0.20-stable\' make: *** [Makefile:569: all] Error 2
原因:在于libevent 2.0.x需要openssl < 1.1.0
常用的几个Linux发行版已经把系统的openssl升级到了1.1.0+
即对应需要libevent 2.1.x+
解决下载高版本的libevent进行安装:https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
然后安装memcached服务
cd /root/tmp 下载: wget http://www.memcached.org/files/memcached-1.6.6.tar.gz 解压: tar -zxvf memcached-1.6.6.tar.gz cd memcached-1.6.6 配置: ./configure --prefix=/usr/local/memcached --enable-64bit --with-libevent=/usr/local/libevent 编译安装: make && make install
启动:
/usr/local/memcached/bin/memcached -u root -d
查看端口监听
netstat -apn|grep 11211 (默认监听11211端口)
附:编译安装 PHP Memcache 扩展
cd /usr/local/src # 下载 git clone https://github.com/websupport-sk/pecl-memcache memcache cd memcache # 编译安装 phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install # 配置 echo "[memcache]" >> /usr/local/php/etc/php.ini echo "extension = memcache.so" >> /usr/local/php/etc/php.ini # 重启 systemctl restart nginx /etc/init.d/php-fpm restart
安装php apcu扩展
下载地址
wget http://pecl.php.net/get/apcu-5.1.16.tgz
解压文件
tar zxvf apcu-5.1.16.tgz
cd apcu-5.1.16
生成configure文件
执行 /usr/local/php7/bin/phpize 其中/usr/local/php7为php安装目录
配置编译参数
./configure --with-php-config=/usr/local/php7/bin/php-config 其中usr/local/php7为php安装目录
make && make install
修改配置文件php.ini
extension = apcu.so apc.enabled= on apc.shm_size= 64M apc.enable_cli = on
重启php-fpm
service php7-fpm restart
验证安装是否成功
php -m
PHP7 安装 Opcache 提高性能
进入php7源码解压目录中:cd /mnt/rd1/tmp/php-7.2.16/ext/opcache
(需要添加哪个模块就进哪个模块的目录)
执行/usr/local/php7/bin/phpize产生configure文件
/usr/local/php7/bin/phpize
执行
./configure --with-php-config=/usr/local/php7/bin/php-config --enable-opcache
make && make install
完成模块添加安装
最后开启 php.ini 文件的 Opcache 扩展,重启即可
zend_extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/opcache.so opcache.force_restart_timeout=3600 opcache.memory_consumption=128 opcache.optimization_level=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.revalidate_freq=1 opcache.fast_shutdown=1 opcache.enable=1 opcache.enable_cli=1 opcache.save_comments=1
PHP7 安装 imagick扩展(debian/centos)
先安装 imagemagick libmagick++-dev
debian/unbuntu系统命令行:
apt-get install imagemagick apt-get install libmagick++-dev
centos/redhat系统命令行:
yum install ImageMagick
yum install ImageMagick-devel
再执行安装
wget https://pecl.php.net/get/imagick-3.4.4.tgz tar -zxvf imagick-3.4.4.tgz cd imagick-3.4.4 /usr/local/php7/bin/phpize ./configure --with-php-config=/usr/local/php7/bin/php-config make && make install 修改php.ini添加扩展 extension_dir = /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/ extension=imagick.so 注意:如果之前配置过extension_dir路径了,则只需要配置extension=imagick.so即可 保存退出,重启php 通过phpinfo可看到,扩展已生效
参考:https://blog.whsir.com/post-4736.html
PHP7 安装intl扩展(debian/centos)
debian/ubuntu使用命令:
apt-get install libicu-dev
centos/redhat使用命令:
yum install libicu-devel
cd php-7.2.29/ext/intl phpize ./configure --with-php-config=/usr/local/php7/bin/php-config make && make install /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/intl.so #将该文件的绝对地址放在自己的php.ini文件里
以上是关于RedHat6.9 编译安装php7.4.6的主要内容,如果未能解决你的问题,请参考以下文章
redhat6.9安装11.2.0.4执行root.sh提示vip资源添加失败
关于linux‘RedHat6.9在VMware虚拟机中的安装步骤