美文网首页
CentOS 7 安装 PHP7

CentOS 7 安装 PHP7

作者: BiaoWong | 来源:发表于2018-12-19 11:54 被阅读11次

    PHP7介绍

    PHP(外文名:PHP Hypertext Preprocessor,中文名:“超文本预处理器”)https://secure.php.net 是一种通用开源脚本语言。
    PHP语法吸收了C语言、Java和Perl的特点,易于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快的效果。

    PHP7特性

    • 改进的性能 - PHPNG代码合并在PHP7中,这是比 PHP5快两倍;

    • 降低内存消耗 - 优化后PHP7使用较少的资源;

    • 标量类型声明 - 现在,参数和返回值类型可以被强制执行;

    • 一致性的64位支持 - 64位架构机器持续支持;

    • 改进异常层次结构 - 异常层次结构得到改善;

    • 许多致命错误转换成异常 - 异常的范围增大覆盖为许多致命的错误转化异常;

    • 安全随机数发生器 - 加入新的安全随机数生成器的API;

    • 已过时的API和扩展删除 - 不同的旧的和不支持的应用程序和扩展,从最新的版本中删除;

    • null合并运算符(??)的新空合并运算符被加入;

    • 返回和标量类型声明支持返回类型和参数类型也被加入;

    • 增加了对匿名匿名类的支持;

    • 零成本声明支持零成本加入断言。

      PHP7使用新的 Zend Engine 3.0 提高应用程序性能两倍,比PHP5.6 低了 50% 的内存消耗。 它可以服务于更多的并发用户,无需任何额外的硬件。考虑到当今的工作量 PHP7设计并重构。

    PHP7安装

    1. 安装必要的编译环境

    yum install -y apr* autoconf automake cmake libmcrypt-devel mhash-devel libxslt-devel bison bzip2 bzip2* cloog-ppl cpp curl curl-devel e2fsprogs e2fsprogs-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc glibc-devel glib2 glib2-devel kernel kernel-headers keyutils keyutils-libs-devel krb5 krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib zlib-devel libidn libidn-devel
    yum install -y compat* 
    

    2. 安装需要的组件

    Yasm

    Yasm http://yasm.tortall.net 是一个完全重写的NASM汇编。目前,它支持x86和AMD64指令集。接受NASM和GNU汇编器(gas)语法,产出二进制, ELF32 , ELF64 , COFF , Mach - O的( 32和64 ) , RDOFF2 ,的Win32和Win64对象的格式,并生成STABS 调试信息的来源,DWARF 2 ,CodeView 8格式。

    cd /usr/local/src
    wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
    tar zxvf yasm-1.3.0.tar.gz
    cd yasm-1.3.0
    ./configure
    make
    make install
    

    mcrypt

    mcrypt https://sourceforge.net/projects/mcrypt/files/Libmcrypt 是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启。window环境下,PHP>=5.3,默认开启mcrypt扩展。

    cd /usr/local/src
    wget https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
    tar zxvf libmcrypt-2.5.8.tar.gz
    cd libmcrypt-2.5.8
    ./configure
    make
    make install
    

    libvpx

    libvpx http://www.loongnix.org/cgit/libvpx 是php里面提供视频解码编码的扩转库。目前支持VP8编解码器、VP9编解码器等。

    cd /usr/local/src
    wget https://github.com/webmproject/libvpx/archive/v1.7.0/libvpx-1.7.0.tar.gz
    tar zxvf libvpx-1.7.0.tar.gz
    cd libvpx-1.7.0
    ./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9
    make
    make install
    

    TIFF

    TIFF http://www.libtiff.org 该软件为标签图像文件格式(TIFF)提供支持,TIFF是一种广泛使用的存储图像数据的格式。TIFF规范的最新版本以多种不同的格式在网上发布,也有许多技术说明(TTN)。php中主要用于tiff文件处理。

    cd /usr/local/src
    wget http://download.osgeo.org/libtiff/tiff-4.0.6.tar.gz
    tar zxvf tiff-4.0.6.tar.gz
    cd tiff-4.0.6
    ./configure --prefix=/usr/local/tiff --enable-shared
    make
    make install
    

    libpng

    libpng http://www.libpng.org/pub/png/libpng.html 是一款C语言编写的比较底层的读写PNG文件的跨平台的库。借助它,你可以轻松读写PNG文件的每一行像素。因为PNG文件是经过压缩而且格式复杂的图形文件(有的PNG文件甚至像GIF文件一样带动画效果)而且PNG可以是带透明通道的真彩色图像、不带透明通道的真彩色图像、索引颜色、灰度颜色等各种格式,如果大家都自己写程序分析PNG文件就会显得很麻烦、很累。因此,通过使用libpng你就能直接使用现成的函数、程序来读写PNG文件了。

    cd /usr/local/src
    wget ftp://ftp-osl.osuosl.org/pub/libpng/src/libpng16/libpng-1.6.34.tar.gz
    tar zxvf libpng-1.6.25.tar.gz
    cd libpng-1.6.25
    ./configure --prefix=/usr/local/libpng --enable-shared
    make
    make install
    

    FreeType

    FreeType https://www.freetype.org 库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。

    cd /usr/local/src
    wget http://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.7.tar.gz
    tar zxvf freetype-2.7.tar.gz
    cd freetype-2.7
    ./configure --prefix=/usr/local/freetype --enable-shared
    make
    make install
    

    JPEG

    JPEG https://jpeg.org 是Joint Photographic Experts Group(联合图像专家小组)的缩写,是第一个国际图像压缩标准。JPEG图像压缩算法能够在提供良好的压缩性能的同时,具有比较好的重建质量,被广泛应用于图像、视频处理领域。人们日常碰到的“.jpeg”、‘’.jpg“等指代的是图像数据经压缩编码后在媒体上的封存形式,不能与JPEG压缩标准混为一谈。

    cd /usr/local/src
    wget http://www.ijg.org/files/jpegsrc.v9c.tar.gz
    tar zxvf jpegsrc.v9b.tar.gz
    cd jpeg-9b
    ./configure --prefix=/usr/local/jpeg --enable-shared
    make
    make install
    

    libGD

    libGD http://libgd.github.io 是一个开源的图像处理库,支持 PNG/JPEG/GIF以及其他格式的图像。GD一般被用来创建图表、图形、缩略图以及其他图像相关的处理操作。

    cd /usr/local/src
    wget https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.1.tar.gz
    tar zxvf libgd-2.1.1.tar.gz
    cd libgd-2.1.1
    ./configure --prefix=/usr/local/libgd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/freetype --with-xpm=/usr/ --with-tiff=/usr/local/tiff
    make
    make install
    

    说明:如果libgd编译失败,可以先跳过,直接使用系统默认的2.1.0版本,在编译php的时候把参数--with-gd=/usr/local/libgd修改为--with-gd即可。

    T1LIB

    T1LIB http://www.t1lib.org 是由Rainer Menzner开发的开源库,并在GNU通用公共图书馆许可证下分发。T1LIB是用C编程语言编写的,程序员可以很容易地从Adobe(TM)1型字体生成/光栅化位图。T1LIB基于X11光栅化器的代码,它由IBM捐赠给X11项目。

    cd /usr/local/src
    wget http://pkgs.fedoraproject.org/repo/pkgs/t1lib/t1lib-5.1.2.tar.gz/a5629b56b93134377718009df1435f3c/t1lib-5.1.2.tar.gz
    tar zxvf t1lib-5.1.2.tar.gz
    cd t1lib-5.1.2
    ./configure --prefix=/usr/local/t1lib --enable-shared
    make without_doc
    make install
    

    3. 安装PHP7

    注意:如果系统是64位,请执行以下命令,否则安装php会出错。

    cp -frp /usr/lib64/libltdl.so* /usr/lib/
    cp -frp /usr/lib64/libXpm.so* /usr/lib/
    

    编译安装PHP7

    cd /usr/local/src
    wget http://cn.php.net/distributions/php-7.1.19.tar.gz
    tar -zvxf php-7.1.19.tar.gz
    cd php-7.1.19
    export LD_LIBRARY_PATH=/usr/local/libgd/lib
    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --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-mcrypt --with-curl --enable-ctype --enable-mysqlnd
    make
    make install
    

    配置PHP

    cp php.ini-production /usr/local/php/etc/php.ini # 复制php配置文件到安装目录
    rm -rf /etc/php.ini # 删除系统自带配置文件
    ln -s /usr/local/php/etc/php.ini /etc/php.ini # 添加软链接到 /etc目录
    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf # 拷贝模板文件为php-fpm配置文件
    ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf # 添加软连接到 /etc目录
    
    vi /usr/local/php/etc/php-fpm.conf # 编辑
    pid = run/php-fpm.pid # 取消前面的分号
    :wq! # 保存退出
    
    cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
    vi /usr/local/php/etc/php-fpm.d/www.conf # 编辑
    user = www # 设置php-fpm运行账号为www
    group = www # 设置php-fpm运行组为www
    
    # 设置 php-fpm开机启动
    cp /usr/local/src/php-7.1.19/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm # 拷贝php-fpm到启动目录
    chmod +x /etc/rc.d/init.d/php-fpm # 添加执行权限
    chkconfig php-fpm on # 设置开机启动
    

    编辑PHP配置文件

    vi /usr/local/php/etc/php.ini # 编辑配置文件
    
    # 修改:disable_functions
    # 列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
    disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
    
    date.timezone = PRC # 设置时区
    
    expose_php = Off # 禁止显示php版本的信息
    
    short_open_tag = ON # 支持php短标签
    
    opcache.enable=1 # php支持opcode缓存
    # 找到:;opcache.enable_cli=1 # php支持opcode缓存,改为0
    opcache.enable_cli = 0
    
    # 在最后一行添加:
    zend_extension=opcache.so # 开启opcode缓存功能
    
    :wq! #保存退出
    

    配置Nginx支持PHP

    # 配置user,必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同
    vi /usr/local/nginx/conf/nginx.conf
    
    user www www; # 首行user去掉注释,修改Nginx运行组,否则php运行出错
    index index.html index.htm index.php; # 添加index.php
    
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root html;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    # 取消FastCGI server部分location的注释,注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
    
    /etc/init.d/nginx restart # 重启nginx
    service php-fpm start # 启动php-fpm
    

    测试环境

    cd /usr/local/nginx/html/ # 进入nginx默认网站根目录
    rm -rf /usr/local/nginx/html/* # 删除默认测试页
    
    vi index.php # 新建index.php文件
    <?php phpinfo(); ?>
    :wq! #保存退出
    
    chown www:www -R /usr/local/nginx/html # 设置目录所有者
    chmod 700 -R /usr/local/nginx/html # 设置目录权限
    

    相关文章

      网友评论

          本文标题:CentOS 7 安装 PHP7

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