zoukankan      html  css  js  c++  java
  • Centos6.8源码编译安装PHP7

    一、下载源码包

    打开php官网http://php.net/点击导航栏的Downloads进入下载页面:http://php.net/downloads.php下载想要安装的版本,这里下载最新版的php-7.1.8 的源码包。

    下载环境源码包wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz   可以选择版本,这里下载最新版libiconv-1.15.tar.gz

    二、解压源码包并安装环境包

    tar zxvf libiconv-1.15.tar.gz 
    cd libiconv-1.15 
    ./configure --prefix=/usr/local/libiconv 
    make && make install

    三、添加运行php7程序的用户和组

    groupadd www
    useradd -g www www

    四、编译安装php7

    tar zxvf php-7.1.8.tar.gz  
    cd php-7.1.8
    ./configure  --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-mcrypt  --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv=/usr/local/libiconv/ --enable-xml --enable-bcmath --enable-inline-optimization --enable-mbregex --enable-fpm --with-openssl --with-xmlrpc --enable-zip --enable-soap --without-pear --enable-session --with-libxml-dir --with-zlib --with-curl --enable-dba --enable-ftp --with-freetype-dir --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-gd-native-ttf --with-gettext --enable-mbstring --enable-pcntl --without-pdo-sqlite --enable-shmop --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-opcache

    此时,如果报错的话,一般是缺少环境包所致,根据报错缺少的包进行yum安装

    yum -y install gcc g++ libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel

    实际上这里的配置项比上述还多,可以使用./configure --help命令查看所有选项,这里注意在php7中 --with-mysql 原生支持已经不存在了,操作都变成mysqli或者pdo了;以上这些选项在正常的php开发中完全够用了,后期如果需要,可以选择手动开启相应的模块.

    然后执行编译安装

    make && make install

    php的默认安装路径已经指定为  /usr/local/php7 ,其中配置文件的默认安装路径为 /usr/local/php7/etc .

    此时在安装目录下没有php.ini文件,需要把解压包路径下拷贝一份到 /usr/local/php7/etc  ,并更名为  php.ini .

    cp /usr/local/src/php-7.1.8/php.ini-development /usr/local/php7/etc/php.ini
    cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
    cp /usr/local/src/php-7.1.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm7
    chmod +x /etc/init.d/php-fpm7
    /etc/init.d/php-fpm7 start

    此时,基本上是可以启动了。接着就是根据自己的需求修改配置文件

    vim /usr/local/php7/etc/php.ini
    ######避免PHP信息暴露在http头中
    expose_php = Off
    
    ######避免暴露php调用mysql的错误信息
    display_errors = Off
    
    ######在关闭display_errors后开启PHP错误日志(路径在php-fpm.conf中配置)
    log_errors = On
    
    ######设置PHP的扩展库路径
    extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20141001/"
    
    ######设置PHP的时区
    date.timezone = PRC

    修改配置文件php-fpm.conf

    vim /usr/local/php7/etc/php-fpm.conf
    
    ######设置错误日志的路径
    error_log = /var/log/php-fpm/error.log
    
    ######引入www.conf文件中的配置
    include=/usr/local/php7/etc/php-fpm.d/*.conf

    www.conf 这是php-fpm 进程服务的扩展配置文件

    ######设置用户和用户组
    user = www
    group = www
    
    ######根据nginx.conf中的配置fastcgi_pass unix:/dev/shm/php-fpm7.sock;设置PHP监听
    ; listen = 127.0.0.1:9000   #####不建议使用
    listen = /dev/shm/php-fpm7.sock
    
    ######使用sock监听需开启
    isten.owner = www
    listen.group = www
    listen.mode = 0660
    
    ######开启慢日志
    slowlog = /var/log/php-fpm/$pool-slow.log
    request_slowlog_timeout = 10s

    修改nginx配置文件

    location ~ .php$ {
        #fastcgi_pass   127.0.0.1:9000;
    
        fastcgi_pass unix:/dev/shm/php-fpm7.sock;
    
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
       }

    由于php7已经弃用mysql扩展改为mysqli和mysqlpdo,但是有的程序需要mysql支持运行,则可以通过安装mysql扩展来达到这种目的

    五、php添加扩展

    首先在php网站下载mysql扩展包:http://git.php.net/?p=pecl/database/mysql.git;a=summary 这里下载的是最新版mysql-230a828.tar.gz,上传到服务器

    接着进行解压编译安装

    tar zxvf mysql-230a828.tar.gz
    cd mysql-230a828
    
    #使用phpize进行初始化(phpize在php7安装目录)
    /usr/local/php7/bin/phpize
    
    #编译mysql扩展,使用mysql native driver作为mysql链接库   
    ./configure --with-php-config=/usr/local/php7/bin/php-config --with-mysql=mysqlnd  
    
    make && make install

    编译安装成功后会得到一个链接库的路径

    Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/

    编辑php.ini文件

    vim /usr/local/php7/etc/php.ini

    在最后加入链接库so文件

    [mysql]
    extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/mysql.so

    最后重载php和nginx服务

    /etc/init.d/php-fpm7 reload
    
    /etc/init.d/nginx reload

    通过访问测试文件index.php可查看安装情况以及已安装扩展模块

    <?php
        phpinfo();
    ?>

    类似地,可以根据需要安装其他扩展模块.

    更多详情,请访问个人博客:https://www.wchonge.com

  • 相关阅读:
    第二节,神经网络中反向传播四个基本公式证明——BackPropagation
    第一节,windows和ubuntu下深度学习theano环境搭建
    oracle和SQLserver数据库中select into 的区别
    Mysql与Oracle区别
    SQLserver 设置自增为显式插入
    SQL 存储过程入门(事务)(四)
    SQLSqlserver中如何将一列数据,不重复的拼接成一个字符串
    SQL命令优化(积累)
    手机游戏运营主要的指标是什么? 7天活跃, 14天活跃 ARPU ?如何提升游戏 app 的虚拟道具的收入?
    从用户心理看游戏运营和推广
  • 原文地址:https://www.cnblogs.com/wchonge/p/8398039.html
Copyright © 2011-2022 走看看