zoukankan      html  css  js  c++  java
  • 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

    出现报错1:

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

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

    编译安装 PHP 的 Memcached 扩展

    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
  • 相关阅读:
    基于openpose的动作识别(一)检测人脸人手
    12.4第三天
    安装linux windows双系统
    python学习之argparse模块
    win10安装linux虚拟机
    使用labelImg训练模型并用yolo3进行识别的工作流程
    使用labelImg标注数据的方法
    VirtualBox网络连接方式
    HttpWebRequest 请求带OAuth2 授权的webapi
    Bootstrap table 分页 In asp.net MVC
  • 原文地址:https://www.cnblogs.com/mxci/p/13193392.html
Copyright © 2011-2022 走看看