zoukankan      html  css  js  c++  java
  • 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 Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/lpxspring/p/12217496.html
Copyright © 2011-2022 走看看