Ubuntu源码安装php

一、工具

Ubuntu 16.04 Server
php-7.3.4.tar.gz 源码包

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

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

二、安装步骤

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

三、安装过程

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

1. 安装php依赖环境:

解压源码

unzip php-7.3.14-src.zip

Ubuntu源码安装php
ls查看源码的文件
Ubuntu源码安装php

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

Ubuntu源码安装php

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

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
Ubuntu源码安装php

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文档的函数库
Ubuntu源码安装php
安装一下再次执行apt-get install libxml2-dev libxml2
Ubuntu源码安装php
apt-get install libbz2-dev 安装再次执行
Ubuntu源码安装php
首先输入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
Ubuntu源码安装php
又出现错误
Ubuntu源码安装php
sudo apt-get install libjpeg-dev 再次执行configure
Ubuntu源码安装php
发现原来是一开始我就没有安装,才会出现这么多错误。
所以我重新安装了一下,发现缺了一个包
Ubuntu源码安装php
sudo apt-get install libjpeg-dev

配置过程如果没有错误的话,可以看到以下如图所示:
Ubuntu源码安装php

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

3.编译与安装

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

make #编译
make install #安装

如果内存不足,可设置swap交换分区
Ubuntu源码安装php
我们在参数配置中指定配置文件的目录为:/usr/local/php/etc,因此把源码目录下的配置文件复制到我们指定的配置文件目录中,执行以下命令

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

make后
Ubuntu源码安装php
安装完libtool后,然后 make clean 重新编译
Ubuntu源码安装php
Ubuntu源码安装php
重新编译
Ubuntu源码安装php
Ubuntu源码安装php

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里自动增加一行。
Ubuntu源码安装php

5.测试

查看网站根目录
Ubuntu源码安装php

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

<?php
phpinfo();

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

相关推荐