• Linux上安装PHP


    环境:centos7  nginx  php7.2

    一、安装前准备

      1. 检查是否已安装PHP

      yum安装检查:yum list installed |grep php

      rpm安装检查:rpm -qa |grep php

      2. 安装php所需的依赖库

      1)zlib  zlib-devel      #数据压缩解压函数库

      2)libxml2  libxml2-devel    #libxml2是一个c语言的xml程序库,可以简单的对xml进行各种操作,并且支持xpath查询,以及部分支持xslt转换等功能。

      3)libxslt  libxslt-devel      #如果不安装libxslt-devel会提示找不到xslt.config文件,xslt是转换xml到其他格式的扩展。

      4)openssl  openssl-devel    #安全套接字层密码库

      5)libjpeg  libjpeg-devel  libpng  libpng-devel  ...  #php的gd库所需。

    6)freetype  freetype-devel   #免费开源的且可移植的字体引擎,提供统一的接口访问多种字体格式,这两个都是gd库的依赖软件,所以如果没有安装,或者版本太低,在安装php时设定的是安装gd库则 会报错,另外不安装-devel也是会报错的,因为编译扩展的时候会缺少ft2build.h文件。

      7)gd  gd-devel         #gd是php处理图形的扩展库

      8)curl  curl-devel        #命令行工具,通过指定的URL来上传或下载数据

      9)gcc gcc-c++          #gcc编译器用来编译c,c++源码包(一般系统自带,最小化安装怎没有)

      10)glibc glibc-devel       #C运行库(一般系统自带)

      11)glib2 glib2-devel       #C语言函数库(一般系统自带)

      12)libaio libaio-devel  #和异步调用有关

      13)ncurses      #是一个Linux系统下的图形支持的函数库,字符终端处理库

      14)m4        #是一个宏处理器.将输入拷贝到输出,同时将宏展开

    二、下载php源码包

      地址:https://www.php.net/downloads.php

      解压源码包,并进入到解压的文件目录

    三、PHP扩展库的安装方式

      1. 静态编译:安装php时通过--with --enable 将扩展库和php一起编译安装到php内核,这样速度更快(php源码包有php官方支持的所有扩展库)

      2. 动态编译:已安装好php后,还要增加其他扩展(一般是第三方扩展:redis,mecache,mongodb),使用php的phpize工具编译安装生成xxx.so文件,在php配置文件中引入,使扩展生效

      php源码包内有所有php官方支持的扩展库,但并不是所有的扩展库都会编译安装

      php默认会编译安装的扩展库(直接安装php,不进行任何配置)

      Core ctype date dom fileinfo filter hash iconv json libxml pcre PDO pdo_sqlite Phar posix Reflection session SimpleXML SPL sqlite3 standard tokenizer xml xmlreader xmlwriter

      php默认不会编译安装的扩展库

      (1)以--enable-xxx方式开启

        zip fpm inline-optimization  exif bcmath mbstring debug

      (2)以--with-xxx方式开启

        gd  curl  bz2 zlib mysqli openssl  xmlrpc gmp  xsl 

    三、编译配置(此步用来生成编译时需要的文件)

      ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --with-openssl  --with-curl  --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-fpm-user=php --with-fpm-group=php --enable-mbstring  --enable-exif --with-libzip

      1. 路径设置

      --prefix=/usr/local/php  #php的安装路径

      --with-config-file-path=/usr/local/php/etc   #php配置文件的路径(php.ini,php-fpm.conf)

      --prefix=/usr/local/php7.2          #php安装路径

      2. 编译扩展库时需要依赖第三方类库的php扩展库

      --with-xxx=path[=path]

      若依赖是用rpm,yum 安装在linux默认位置,则不用指定。若依赖是编译安装在其他位置,则要指定依赖包的安装路径

      如编译php的mysqli,pdo-mysql扩展时使用php源码自带的mysqlnd(文件在解压的源码文件根目录)驱动

      --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

      3. 指定php扩展库运行时需要的依赖包位置

      --with-xxx-dir[=path]  #不带路径在默认安装位置查找(相关的包要在Linux上已安装)

      如gd库运行时需要的jpeg,png,freetype,zlib库

      --with-jpeg-dir --with-webp-dir  --with-png-dir  --with-zlib-dir --with-freetype-dir

      4. 编译扩展库时不需要依赖第三方类库的php扩展库(如ftp,zip,libxml)

      --enable-xxx  --enable-ftp  

      5. 某些默认会编译安装的库不让它编译(如编译时占用内存很大的库:fileinfo)

      --disable-xxx   --disable-fileinfo 

    四、编译

      make   #用来编译生成php,php扩展安装的可执行文件(安装程序)和所需的文件

      make test   #检测编译是否正确,只有编译都正确后再安装以后才不会有莫名的错误

    五、安装

      make install  #执行编译生成的安装程序

    六、安装后配置

      1. 加入php.ini配置文件

       在解压的php源码包中有2个php的配置文件php.ini-development (用于开发环境) php.ini-production(用于产品环境),根据需要选择一个放到php配置文件目录,并重命名为php.ini

       php配置文件目录默认位置:/usr/local/php/etc (php安装目录/usr/local/php)

      2. 加入php-fpm.conf配置文件:

       cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

      3. 加入www.conf配置文件:

       cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

       完成后php就可以作为一个独立的模块运行了

    七、php-fpm服务控制

      1. 启动

      /usr/local/php/sbin/php-fpm    #也可以设置环境变量

      2. 查看启动信息

      ps aux | grep -c  php-fpm   #查看php-fpm进程数

      ps -ef |grep php-fpm

      3. php-fpm 命令

      -m  #查看已启用的扩展

      -v  #查看版本信息

      -i  #查看php信息

      4. 停止php-fpm

      kill -INT php-fpm进程id  #

      kill -USR2 php-fpm进程id  #

      kill -9 php-fpm进程id  

      

    完整配置:
    ./configure --prefix=/usr/local/php7.2 --sysconfdir=/etc/php7 --with-config-file-path=/etc/php7 --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mhash 
    --with-openssl --with-bz2 --with-curl --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-mbstring --enable-sockets
    --with-iconv-dir --with-xsl --enable-zip --with-pcre-dir --with-pear --enable-session --enable-xml --with-freetype-dir --enable-gd-jis-conv
    --enable-inline-optimization --enable-shared --enable-bcmath --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-mbregex --enable-pcntl --with-xmlrpc
    --with-gettext --enable-exif --with-readline --with-recode --enable-fpm --disable-fileinfo   注意:服务器内存不足1G,配置项加上:--disable-fileinfo  #默认会开启,禁用掉它
      或者开启swap虚拟内存

        --with-库名      #要编译安装该扩展库

        --without-库名    #用于默认安装的php扩展库进制安装

        --with-库名=filepath   #表示在编译生成这个库时需要的某个库或工具的路径

        --with-mysqli=mysqlnd --with-pdo-mysqli=mysqlnd   #编译mysqli,pdo_mysqli扩展是用最新的MySQL驱动mysqlnd

        --with-gd2    #gd2.0  php图片处理用到的库

        --with-freetype   #全真字体库  

        --with-xsl     #libxml2的扩展,用于支持xstl文件 

        --with-xmlrpc   #处理xml请求的php扩展库 

        --with-libxml2   #解析XML文档的函数库,编译安装该库需要libxml(--with-libxml-dir)

        --with-bz2     #支持bz2文件处理的php扩展库

      --enable-zip  #启用zip模块,使php支持对zip文件的处理 

      --enable-fpm  #php-fpm是PHP专用的fastcgi管理器

      --enable-fileinfo  #获取文件真实MIME类型的模块

      --enable-bcmath  #图片大小调整模块,gd改变图片尺寸需要

      --enable-exif    #图片元数据支持,gd库需要

      --enable-gd-jis-conv  #

      --enable-mbregx  #多字节正则字符串支持(中文字符串正则)

      --enable-ftp    #

      --enable-mbstring  #多字节字符串支持(中文字符串准确计算长度)

      --prefix=路径         #设置php的安装路径

      --enable-xxx          #启用某个模块,php源码内置的模块用这个开启

      --without-xxx         #不包含某个包的支持

      --disable-xxx         #禁用某模块

      --with-apxs2=/usr/local/apache/bin/apxs   #构建共享Apache2.0模块,后面路径是Apache的apxs工具的路径,要先安装apxs

      --with-MySQL=/usr/local/mysql       #

      --with-webp-dir  

      --with-jpeg-dir     #打开对jpeg图片的支持

      --with-png-dir     #打开对png图片的支持

      --with-gd         # 打开gd库的支持

      --with-freetype     #打开对freetype字体库的支持

      --enable-bcmath    #图片大小技术调整支持

      --enable-sockets    #  

      --enable-gd-jis-conv  

      --enable-gd-native-ttf   #画图字体库支持,php7.2开始不支持 

      --with-xsl        #打开xsl支持,是xml2库的扩展

      --with-gd        #打开libxml2库的支持

      --with-xmlrpc      # 打开xml-rpc的c语言

      --enable-xml

      --enable-libxml

      --with-bz2             #打开对bz2文件的支持

      --enable-zip            # 支持php对zip压缩包处理

      --with-zlib            # 包含压缩库,文件压缩与解压基本库

      --with-libzip           #包含libzip库

      --with-pcre-regx    #正则表达式支持(utf8 ascii)

      --enable-mbregx    #多字节正则字符串支持

      --enable-mbstring    #多字节字符串的支持(utf8mb4)

      --enable-fpm    # 启用fpm可执行文件的构建,php作为一个独立的进程运行

      --with-fpm-user=www  #php-fpm进程的用户名

      --with-fpm-group=www  #

      --enable-fastCGI  

      --enable-force-CGI-redirect

      --enable-pcntl   #php扩展,支持php的多线程操作

      --with-tidy    #php整理和修复html打工具(相关包:tidy tidy-devel php-didy libtidy libtidy-devel)

      --with-gmp    

      --with-iconv    #字符编码转换函数库

      --enable-inline-optimization  #优化线程,给php整体做性能优化处理用

      --enable-opcache    #缓存支持

      --enable-ftp        #打开ftp服务

      --with-pear        #php扩展和应用程序库,包含许多有用的类

      --with-openssl      #加密传输支持,https 

      --with-ncurses                   #支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库

      --with-mysqli=mysqlnd     #

      --with-pdo-mysql=mysqlnd   #

      --disable-rpath  #关闭额外运行库

      --enable-magic-quotes  #魔术引用

      --enable-phpdbg  #启用phpdgb调试模块,是一个php的SAPI模块

      --disable-debug   #关闭debug调试

      --enable-debug  #开启,开发环境要的

      --with-pcre-dir=/usr/local/bin/pcre-config  #正则库安装位置

      --with-config-file-path=/usr/local/php/etc   #指定php.ini位置

      

     

      

  • 相关阅读:
    配置文件
    ajax
    网线颜色排序
    cs程序添加初始化加载
    后台设置gridview不换行
    js 经典正则判断 一个字符串是否包含另一个字符串
    窗体关闭事件
    oracle根据视图删除表
    (字符串)哈希
    (字符串)哈希
  • 原文地址:https://www.cnblogs.com/fanshehu/p/11837852.html
Copyright © 2020-2023  润新知