RedHat6.9 编译安装php7.4.6 编译安装 PHP 的 Memcached 扩展 Memcached 扩展安装完成后,安装Memcached服务,PHP中Memcached 扩展是用来连接Memcached服务的 安装php apcu扩展 PHP7 安装 Opcache 提高性能

RedHat6.9 编译安装php7.4.6
编译安装 PHP 的 Memcached 扩展
Memcached 扩展安装完成后,安装Memcached服务,PHP中Memcached 扩展是用来连接Memcached服务的
安装php apcu扩展
PHP7 安装 Opcache 提高性能

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

配置成功后控制台输出:

RedHat6.9 编译安装php7.4.6
编译安装 PHP 的 Memcached 扩展
Memcached 扩展安装完成后,安装Memcached服务,PHP中Memcached 扩展是用来连接Memcached服务的
安装php apcu扩展
PHP7 安装 Opcache 提高性能

则配置成功

开始执行编译且安装

make && make install

 RedHat6.9 编译安装php7.4.6
编译安装 PHP 的 Memcached 扩展
Memcached 扩展安装完成后,安装Memcached服务,PHP中Memcached 扩展是用来连接Memcached服务的
安装php apcu扩展
PHP7 安装 Opcache 提高性能

 控制台输出以上信息则安装完成

拷贝配置文件:

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

出现报错1:

RedHat6.9 编译安装php7.4.6
编译安装 PHP 的 Memcached 扩展
Memcached 扩展安装完成后,安装Memcached服务,PHP中Memcached 扩展是用来连接Memcached服务的
安装php apcu扩展
PHP7 安装 Opcache 提高性能

升级sqlite3到3.7.4版本,发现sqlite3.7.4版本是centos8库里面才有,所以暂时不升级这个

换个思路安装版本低一点的php,所以最后选择php7.2.16,直接编译通过;

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

然后安装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