zoukankan      html  css  js  c++  java
  • Linux下PHP编译安装与扩展安装

    一、编译安装纯净 PHP

    php 下载地址:http://php.net/downloads.php

    1.1 PHP 运行方式

    1)Module 方式

    把 php 作为 Apache 的一个子模块来运行,当通过 web 访问 php 文件时,Apache 就会调用 php_module 来解析 php 代码。

    需要在编译 PHP 执行 configure 时加入参数 --with-apxs2=/usr/local/httpd/bin/apxs

    2)FastCGI + PHP-FPM(+ PHP-CGI)方式

    CGI:是 Web Server 与 Web Application 之间数据交换的一种协议。

    FastCGI:同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。同样,SCGI 协议与 FastCGI 类似。

    PHP-CGI:是 PHP (Web Application)对 Web Server 提供的 CGI 协议的接口程序。

    PHP-FPM:是 PHP(Web Application)对 Web Server 提供的 FastCGI 协议的接口程序,用来调度 php-cgi 进程。

    3)参考

    《CGI、FastCGI和PHP-FPM关系图解》:http://www.php.cn/php-weizijiaocheng-392861.html

    《FastCgi与PHP-fpm之间是个什么样的关系》:https://segmentfault.com/q/1010000000256516

    1.2 安装包 libxml2 和 libxml2-devel

    yum install libxml2 libxml2-devel

    1.3 安装 PHP(Module 方式)

    ./configure --prefix=/usr/local/php7.2.6 --with-apxs2=/usr/local/httpd/bin/apxs
    make && make install

    make 编译时如果报错:  gcc: Internal error: Killed (program cc1) 

    出现这个问题的主要原因是服务器内存太低,先停用内存占用大的程序,然后重新执行 configure 和 make,并在 configure 后面增加参数: --disable-fileinfo 

    1.4 Apache 添加 php 解析

    成功安装 php 后,查看 httpd.conf,它会自动加入一行配置:

    LoadModule php7_module        modules/libphp7.so

    告知 Apache 将特定的扩展名解析成 PHP:

    # 不推荐:AddType application/x-httpd-php .php
    
    <FilesMatch ".php$">
        SetHandler application/x-httpd-php
    </FilesMatch>

    最后重启 httpd 服务。

    1.5 php.ini 配置文件

    通过 phpinfo() 可以查看到 PHP 的配置文件路径:

    复制 PHP 源码目录提供的配置模板到该目录下:

    cp ~/downloads/php-7.2.6/php.ini-production /usr/local/php7.2.6/lib/php.ini

    也可以在编译 PHP 时指定 php.ini 配置文件路径:

    -with-config-file-path=/etc/php.ini

    二、添加 PDO_Mysql 扩展

    2.1 编译安装扩展

    进入 PHP源码目录/ext/pdo_mysql,执行: phpize 

    执行 phpize 如果报错:Cannot find autoconf

    说明服务器中缺少 autoconf 工具,可以使用 yum 安装:

    yum install autoconf

    phpize 会自动生成一个 configure 脚本,执行时需要指定 php-config 脚本和 mysql 的安装路径:

    ./configure --with-php-config=/usr/local/php7.2.6/bin/php-config --with-pdo-mysql=/usr/local/mysql

    最后执行编译安装:

    make && make install

    默认会安装在 /usr/local/php7.2.6/lib/php/extensions/no-debug-non-zts/20170718/pdo-mysql_so:

    可以手动修改 php-config 脚本设置扩展安装位置:

    2.2 添加配置

    在 php.ini 配置文件中加入 pdo-mysql 扩展,必须输入扩展全路径:

    extension=/usr/local/php7.2.6/lib/php/extensions/no-debug-non-zts-20170718/pdo_mysql.so

    也可以修改 php.ini 配置中 extension_dir 属性设置默认扩展读取路径:

    最后查看 phpinfo(),如果出现 pdo-mysql 则说明安装成功:

     其他扩展的安装方法和上述步骤基本一致。

  • 相关阅读:
    selet 语句详解
    第三章 sql 的约束
    第二章 创建数据库并插入数据
    第一章
    微信小程序(九)
    微信小程序(七)
    微信小程序(八)
    微信小程序(六)
    bzoj4622 [NOI 2003] 智破连环阵
    bzoj3996 [TJOI2015]线性代数
  • 原文地址:https://www.cnblogs.com/tangxuliang/p/9173397.html
Copyright © 2011-2022 走看看