美文网首页
php-7.1.0源码编译安装

php-7.1.0源码编译安装

作者: 小晨主 | 来源:发表于2017-01-13 14:27 被阅读0次

    php-7.1.0源码编译安装

    1. 官网下载安装包

    cd /home/soft
    
    wget http://hk1.php.net/get/php-7.1.0.tar.gz/from/this/mirror
    
    重命名
    mv mirror php-7.1.0.tar.gz
    

    2. 解压编译

    cd php-7.1.0
    
    安装依赖包
    yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
    
    编译配置
    ./configure \
    --prefix=/usr/local/php \
    --with-config-file-path=/etc \
    --enable-fpm \
    --with-fpm-user=nginx  \
    --with-fpm-group=nginx \
    --enable-inline-optimization \
    --disable-debug \
    --disable-rpath \
    --enable-shared  \
    --enable-soap \
    --with-libxml-dir \
    --with-xmlrpc \
    --with-openssl \
    --with-mcrypt \
    --with-mhash \
    --with-pcre-regex \
    --with-sqlite3 \
    --with-zlib \
    --enable-bcmath \
    --with-iconv \
    --with-bz2 \
    --enable-calendar \
    --with-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-native-ttf \
    --enable-gd-jis-conv \
    --with-gettext \
    --with-gmp \
    --with-mhash \
    --enable-json \
    --enable-mbstring \
    --enable-mbregex \
    --enable-mbregex-backtrack \
    --with-libmbfl \
    --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
    

    configure error:

    1.configure: error: xml2-config not found. Please check your libxml2 installation.
    
        解决:yum install libxml2 libxml2-devel
    
    
    2.configure: error: Cannot find OpenSSL's <evp.h>
    
        解决:yum install openssl openssl-devel
    
    
    3.configure: error: Please reinstall the BZip2 distribution
    
        解决:yum install bzip2 bzip2-devel
    
    
    4.configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/
    
        解决:yum install libcurl libcurl-devel
    
    
    5.If configure fails try --with-webp-dir=<DIR> configure: error: jpeglib.h not found.
    
        解决:yum install libjpeg libjpeg-devel
    
    6.If configure fails try --with-webp-dir=<DIR> checking for jpeg_read_header in -ljpeg... yes configure: error: png.h not found.
    
        解决:yum install libpng libpng-devel
    
    7.If configure fails try --with-webp-dir=<DIR> checking for jpeg_read_header in -ljpeg... yes checking for png_write_image in -lpng... yes If configure fails try --with-xpm-dir=<DIR> configure: error: freetype-config not found.
    
        解决:yum install freetype freetype-devel
    
    8.configure: error: Unable to locate gmp.h
    
        解决:yum install gmp gmp-devel
    
    9.configure: error: mcrypt.h not found. Please reinstall libmcrypt.
    
        解决:yum install libmcrypt libmcrypt-devel
    
    10.configure: error: Please reinstall readline - I cannot find readline.h
    
        解决:yum install readline readline-devel
    
    11.configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
    
        解决:yum install libxslt libxslt-devel
    

    3. 编译与安装

    make && make install
    

    4. 添加 PHP 命令到环境变量

    vim /etc/profile
    
    在末尾加入
    
        PATH=$PATH:/usr/local/php/bin
        
        export PATH
    
    nginx用户组添加
    
        adduser nginx
    
        groupadd nginx
    
        useradd -g nginx nginx
    
    及时生效
    
        source /etc/profile
    
    查看环境变量
    
        echo $PATH
    
    查看php版本
    
        php -v
    

    5. 配置php-fpm

    cp php.ini-production /etc/php.ini
    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm
    

    6. 启动php-fpm

    /etc/init.d/php-fpm start
    

    7. nginx配置

    server{
        listen 80;
        server_name  php7.thinkcmf.com;
        root /var/www/html/php7.thinkcmf.com; # 该项要修改为你准备存放相关网页的路径
        location / {
            index  index.php index.html index.htm;
             #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
             if (!-e $request_filename)
             {
                #地址作为将参数rewrite到index.php上。
                rewrite ^/(.*)$ /index.php/$1;
                #若是子目录则使用下面这句,将subdir改成目录名称即可。
                #rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
             }
        }
        #proxy the php scripts to php-fpm
        location ~ \.php {
                include fastcgi_params;
                ##pathinfo支持start
                #定义变量 $path_info ,用于存放pathinfo信息
                set $path_info "";
                #定义变量 $real_script_name,用于存放真实地址
                set $real_script_name $fastcgi_script_name;
                #如果地址与引号内的正则表达式匹配
                if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                        #将文件地址赋值给变量 $real_script_name
                        set $real_script_name $1;
                        #将文件地址后的参数赋值给变量 $path_info
                        set $path_info $2;
                }
                #配置fastcgi的一些参数
                fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
                fastcgi_param SCRIPT_NAME $real_script_name;
                fastcgi_param PATH_INFO $path_info;
                ###pathinfo支持end
            fastcgi_intercept_errors on;
            fastcgi_pass   127.0.0.1:9000;
        }
        
        location ^~ /data/runtime {
        return 404;
        }
        
        location ^~ /application {
        return 404;
        }
        
        location ^~ /simplewind {
        return 404;
        }
    }
    

    8. 删除已安装php

    [root@hk-fa php-7.1.0]# rpm -qa|grep php
    php-common-5.4.16-42.el7.x86_64
    php-devel-5.4.16-42.el7.x86_64
    php-cli-5.4.16-42.el7.x86_64
    php-mysql-5.4.16-42.el7.x86_64
    php-pdo-5.4.16-42.el7.x86_64
    
    注意卸载要先卸载没有依赖的
    
    pdo是mysql的依赖项;common是gd的依赖项;
    例如:# rpm -e php-pdo-5.4.16-42.el7.x86_64
    error: Failed dependencies:
        php-pdo is needed by (installed) php-mysql-5.4.16-42.el7.x86_64

    相关文章

      网友评论

          本文标题:php-7.1.0源码编译安装

          本文链接:https://www.haomeiwen.com/subject/dtrsbttx.html