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

      

     

      

  • 相关阅读:
    古谚、评论与论断、名篇与名言
    重读《西游记》
    重读《西游记》
    命名之法 —— 时间、季节、地点
    命名之法 —— 时间、季节、地点
    文言的理解 —— 古时的称谓、别称、别名
    文言的理解 —— 古时的称谓、别称、别名
    Oracle GoldenGate for Oracle 11g to PostgreSQL 9.2.4 Configuration
    瀑布 敏捷 文档
    POJ 1325 ZOJ 1364 最小覆盖点集
  • 原文地址:https://www.cnblogs.com/fanshehu/p/11837852.html
Copyright © 2011-2022 走看看