dxyadc 2020-01-31
Ubuntu 16.04 Server php-7.3.4.tar.gz 源码包
PHP官网源码下载链接:https://www.php.net/downloads.php
这个网址下载快一点 :https://windows.php.net/download/
在Apache中安装PHP,就是让Apache支持对PHP代码的解析,从而实现动态网页的效果。
1.安装php依赖环境 2.配置编译参数 3.编译与安装 4.配置Apache支持PHP解析 5.使用测试
所有在root用户模式下进行,
解压源码
unzip php-7.3.14-src.zip
ls查看源码的文件
本次安装,我们编译参数设置遵循以下原则:
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
./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配置文件所在目录
参数配置结束之后源码目录会多出一个Makefile文件,我们就可以编译安装了,执行以下命令
make #编译 make install #安装
如果内存不足,可设置swap交换分区
我们在参数配置中指定配置文件的目录为:/usr/local/php/etc,因此把源码目录下的配置文件复制到我们指定的配置文件目录中,执行以下命令
cp php.ini-production /usr/local/php/etc/php.ini
make后
安装完libtool后,然后 make clean 重新编译
重新编译
使用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里自动增加一行。
查看网站根目录
我们重启Apache服务器之后。在Apache的htdocs目录下,添加index.php文件,并在文件中加入以下内容。用于测试PHP是否正常解析
<?php phpinfo();
如果看到如下图中结果,恭喜你,安装成功了.