在Ubuntu系统下从源码编译安装PHP7的详细指南
随着Web开发的不断发展,PHP作为一门广泛应用于网站和应用程序开发的服务器端脚本语言,其重要性不言而喻。尽管现代操作系统如Ubuntu提供了便捷的包管理工具来安装PHP,但有时我们可能需要更灵活地定制和优化PHP的配置。本文将详细介绍如何在Ubuntu系统下从源码编译安装PHP7,帮助你在开发过程中获得更大的控制权和性能优化。
一、准备工作
在开始之前,确保你的系统已经更新到最新状态,并且安装了一些必要的开发工具。
更新系统包列表:
sudo apt update
安装必要的开发工具:
sudo apt install build-essential
sudo apt install openssl
sudo apt install libssl-dev
sudo apt install make
sudo apt install curl
sudo apt install libcurl4-gnutls-dev
安装其他依赖库:
sudo apt install libxml2-dev
sudo apt install libjpeg-dev
sudo apt install libpng-dev
sudo apt install libmcrypt-dev
sudo apt install libreadline6 libreadline6-dev
sudo apt install libfreetype6-dev
sudo apt install libzip-dev
二、下载PHP源码
访问PHP官网下载页面: 打开你的浏览器,访问 PHP官网下载页面。
选择合适的PHP版本: 本文以PHP 7.3.5为例,下载链接为:php-7.3.5.tar.gz。
使用wget下载源码包: 打开终端,使用以下命令下载源码包:
sudo wget https://www.php.net/distributions/php-7.3.5.tar.gz
三、解压源码包
解压下载的tar.gz文件:
sudo tar -zxvf php-7.3.5.tar.gz
进入解压后的目录:
cd php-7.3.5/
四、配置和编译
运行configure脚本: 这一步是配置编译选项,你可以根据需要自定义配置。以下是一个常用的配置示例:
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysqli \
--with-pdo-mysql \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem
编译源码:
make
安装编译好的PHP:
sudo make install
五、配置PHP
复制php.ini文件:
sudo cp php.ini-development /usr/local/php/etc/php.ini
配置PHP-FPM: 进入PHP安装目录下的etc目录,复制fpm配置文件:
cd /usr/local/php/etc/
sudo cp php-fpm.conf.default php-fpm.conf
启动PHP-FPM:
sudo /usr/local/php/sbin/php-fpm
六、验证安装
创建一个测试PHP文件: 进入Apache的htdocs目录(假设你已经安装了Apache):
cd /var/www/html
sudo gedit test.php
在test.php中写入以下内容:
<?php
phpinfo();
?>
七、常见问题及解决方案
缺少依赖库:
如果在configure或make过程中提示缺少某个库,可以使用sudo apt search
查找并安装相应的库。
配置文件路径错误: 确保在configure时指定的配置文件路径正确,并且在启动PHP-FPM时使用正确的配置文件。
权限问题: 确保PHP-FPM运行的用户和组有权限访问相应的目录和文件。
八、卸载PHP
如果你需要卸载编译安装的PHP,可以按照以下步骤进行:
停止PHP-FPM服务:
sudo /usr/local/php/sbin/php-fpm stop
删除安装目录:
sudo rm -rf /usr/local/php
清理配置文件:
删除相关的配置文件,如/usr/local/php/etc/php.ini
和/usr/local/php/etc/php-fpm.conf
。