• Ubuntu源码安装php


    一、工具

    Ubuntu 12.04 Server
    php-7.3.14.zip 源码包
    

    PHP官网源码下载链接:https://www.php.net/downloads.php
    这个网址下载快一点 :https://windows.php.net/download/

    百度云下载: 链接:https://pan.baidu.com/s/1m7jD1etV7h9u_FhKjcpqew 提取码:iaeu

    在Apache中安装PHP,就是让Apache支持对PHP代码的解析,从而实现动态网页的效果。

    二、安装步骤

    1.安装php依赖环境
    2.配置编译参数
    3.编译与安装
    4.配置Apache支持PHP解析
    5.使用测试
    

    三、安装过程

    所有在root用户模式下进行,

    1. 安装php依赖环境:

    解压源码

    unzip php-7.3.14-src.zip
    


    ls查看源码的文件

    2.目录下有一个configure可执行文件,用于配置编译参数。但是我们可以看到它不是可执行,所以要改变他的权限。

    本次安装,我们编译参数设置遵循以下原则:

    a.加载所有模块
    b.设置MySQL驱动为mysqlnd,作用:直接使用PHP官方开发的MySQL驱动,可以不用预先安装MySQL
    c.添加gd、webp、jpeg、png图片库的支持,作用:比如对图片进行处理、生成图片验证码
    d.添加curl的支持,作用:进行网络请求
    e.添加freetype字体库的支持
    f.添加zlib的支持,作用:进行数据压缩
    g.添加soap的支持,作用:SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。添加soap扩展用来编写soap服务器和客户端
    h.添加mbstring的支持,多字节字符串
    i.添加sockets的支持
    j.添加exif的支持
    k.取消ipv6的支持
    l.添加libmcrypt的支持
    m.添加xml支持
    n.添加openssl的支持
    o.添加对bzip2的支持
    实际上,根据你的项目需求,你可能需要配置更多参数,以上只是一个最简单的演示,你可以使用./configure -help命令查看详细说明。不过,对于学习PHP基础搭建的环境,上面的配置原则应该够用了。

    根据上面需求,我们需要在系统中安装一些依赖库,如下命令:

    apt install libcurl4-openssl-dev #安装curl开发套件
    apt install libgd-dev #安装gd开发套件
    apt install libwebp-dev #安装webp开发套件
    apt install libjpeg-dev #安装jpeg开发套件
    apt install libpng++-dev #安装png开发套件
    apt install libfreetype6-dev #安装libfreetype6-dev开发套件
    apt install libghc-zlib-dev #安装zlib开发套件
    apt install libmcrypt-dev #安装libmcrypt开发套件
    apt install libxml++2.6-dev #安装libxml开发套件
    apt install libssl-dev #安装ssl开发套件
    apt install libbz2-dev #安装bzip2开发套件
    或者执行以下命令

    apt install -y libcurl4-openssl-dev libgd-dev libwebp-dev libpng++-dev libfreetype6-dev libghc-zlib-dev libmcrypt-dev libxml++2.6-dev libssl-dev libbz2-dev
    

    用的清华源,发现一个安装包没有,就去掉了libgd-dev

    2. 配置编译参数:

    ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-curl --enable-soap --enable-mbstring --enable-sockets --enable-exif --disable-ipv6
    

    执行发现,libxml2 是一个用来解析XML文档的函数库

    安装一下再次执行apt-get install libxml2-dev libxml2

    apt-get install libbz2-dev 安装再次执行

    首先输入apt-cache search curl | grep php
    查询curl的php支持名字,可能会返回如下内容:
    php5-curl - CURL module for php5
    安装:
    sudo apt-get install php5-curl发现还是没有用
    于是安装curl: sudo apt-get install curl libcurl4-gnutls-dev

    又出现错误

    sudo apt-get install libjpeg-dev 再次执行configure

    发现原来是一开始我就没有安装,才会出现这么多错误。
    所以我重新安装了一下,发现缺了一个包

    sudo apt-get install libjpeg-dev

    配置过程如果没有错误的话,可以看到以下如图所示:

    参数说明:
    --prefix:指定安装位置
    --with-apxs2:指定Apache 2中apxs模块所在的目录,我们在上一节安装了Apache 2.4.39
    --with-config-file-path:指定php配置文件所在目录

    3.编译与安装

    参数配置结束之后源码目录会多出一个Makefile文件,我们就可以编译安装了,执行以下命令

    make #编译
    make install #安装
    

    如果内存不足,可设置swap交换分区

    我们在参数配置中指定配置文件的目录为:/usr/local/php/etc,因此把源码目录下的配置文件复制到我们指定的配置文件目录中,执行以下命令

    cp php.ini-production /usr/local/php/etc/php.ini
    

    make后

    安装完libtool后,然后 make clean 重新编译


    重新编译

    4.设置Apache支持PHP解析

    使用vim编辑Apache服务器的配置文件

    vim /usr/local/apache2/conf/httpd.conf
    

    (1).在添加以下内容

    AddType application/x-httpd-php .php
    

    (2).找到:

    <IfModule dir_module>
        DirectoryIndex index.html
    </IfModule>
    

    将该行改为:

    <IfModule dir_module>
        DirectoryIndex index.html index.htm index.php
    </IfModule>
    

    (3)找到:

    #ServerName www.example.com:80
    

    修改为:

    ServerName localhost:80
    

    apache与php的关联
    PHP安装成功后会在apache的modules目录下生成一个libphp.so动态库文件,在apache的配置文件httpd.conf里自动增加一行。

    5.测试

    查看网站根目录

    我们重启Apache服务器之后。在Apache的htdocs目录下,添加index.php文件,并在文件中加入以下内容。用于测试PHP是否正常解析

    <?php
    phpinfo();
    

    如果看到如下图中结果,恭喜你,安装成功了.

  • 相关阅读:
    JAVA多线程实现和应用总结
    大话程序猿眼里的高并发
    重写Dijkstra
    再做一遍floyed
    优美的二分模型
    ACwing : 798. 差分矩阵
    ACwing_789. 数的范围
    快速排序超级强的模板
    1829:【02NOIP提高组】自由落体
    【02NOIP提高组】均分纸牌
  • 原文地址:https://www.cnblogs.com/lpxspring/p/12217496.html
Copyright © 2020-2023  润新知