# Ubuntu如何编译安装PHP7.4 ## 前言 PHP作为最流行的服务器端脚本语言之一,广泛应用于Web开发领域。虽然Ubuntu官方仓库提供了PHP的预编译版本,但通过源码编译安装可以获得以下优势: 1. 自定义编译参数,优化性能 2. 灵活选择扩展模块 3. 获取最新版本(官方仓库可能滞后) 4. 深度定制PHP环境 本文将详细介绍在Ubuntu系统上从源码编译安装PHP7.4的全过程,包括环境准备、依赖安装、配置选项、编译安装以及后续配置等步骤。 --- ## 环境准备 ### 系统要求 - Ubuntu 18.04/20.04/22.04 LTS(推荐) - 至少2GB可用内存(编译过程较耗资源) - 10GB以上磁盘空间 - 稳定的网络连接 ### 基础工具安装 首先更新系统并安装基本编译工具: ```bash sudo apt update sudo apt upgrade -y sudo apt install -y build-essential autoconf make libtool pkg-config
PHP编译需要大量依赖库,以下是分类安装命令:
sudo apt install -y libxml2-dev libssl-dev libcurl4-openssl-dev \ libsqlite3-dev libonig-dev libzip-dev
# MySQL/MariaDB支持 sudo apt install -y libmysqlclient-dev # PostgreSQL支持 sudo apt install -y libpq-dev
sudo apt install -y libgd-dev libwebp-dev libjpeg-dev libpng-dev \ libfreetype6-dev libxslt1-dev libbz2-dev libldap2-dev \ libpspell-dev libicu-dev libtidy-dev libmagickwand-dev
sudo apt install -y re2c bison git
推荐从官方镜像下载(以7.4.33为例):
cd /usr/local/src sudo wget https://www.php.net/distributions/php-7.4.33.tar.gz sudo tar -xzvf php-7.4.33.tar.gz cd php-7.4.33
注意:可通过PHP官网查看最新7.4.x版本
执行./configure
前,建议先规划需要的功能模块。以下是典型配置示例:
./configure \ --prefix=/usr/local/php7.4 \ --with-config-file-path=/usr/local/php7.4/etc \ --enable-fpm \ --with-fpm-user=www-data \ --with-fpm-group=www-data \ --enable-mbstring \ --enable-zip \ --enable-bcmath \ --enable-pcntl \ --enable-ftp \ --enable-exif \ --enable-calendar \ --enable-sockets \ --enable-soap \ --with-openssl \ --with-curl \ --with-zlib \ --with-bz2 \ --with-gettext \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-gd \ --with-jpeg \ --with-webp \ --with-freetype \ --with-xsl \ --with-ldap \ --with-tidy \ --with-pspell \ --with-imap-ssl \ --with-pear
选项 | 说明 |
---|---|
--prefix | 安装目录 |
--enable-fpm | 启用PHP-FPM |
--with-[ext] | 启用特定扩展 |
--without-[ext] | 禁用特定扩展 |
--with-zlib-dir | zlib库路径 |
提示:使用
./configure --help
查看所有可用选项
make -j $(nproc)
-j
参数指定并行编译进程数(推荐使用CPU核心数)
make test
sudo make install
make clean
sudo cp php.ini-production /usr/local/php7.4/etc/php.ini sudo cp /usr/local/php7.4/etc/php-fpm.conf.default /usr/local/php7.4/etc/php-fpm.conf sudo cp /usr/local/php7.4/etc/php-fpm.d/www.conf.default /usr/local/php7.4/etc/php-fpm.d/www.conf
memory_limit = 256M upload_max_filesize = 64M post_max_size = 64M date.timezone = Asia/Shanghai opcache.enable=1
编辑www.conf
:
user = www-data group = www-data listen = /run/php/php7.4-fpm.sock listen.owner = www-data listen.group = www-data
sudo tee /etc/systemd/system/php7.4-fpm.service <<EOF [Unit] Description=PHP 7.4 FastCGI Process Manager After=network.target [Service] Type=simple ExecStart=/usr/local/php7.4/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php7.4/etc/php-fpm.conf ExecReload=/bin/kill -USR2 \$MNPID [Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload sudo systemctl enable php7.4-fpm sudo systemctl start php7.4-fpm
echo 'export PATH="/usr/local/php7.4/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
php -v php -m
location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
<FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost" </FilesMatch>
症状:configure: error: Package requirements (...) were not met
解决方案:安装对应开发包,如sudo apt install libxxx-dev
症状:编译过程中被终止 解决方案:增加swap空间或使用make -j1
单线程编译
检查步骤: 1. php -m
查看已加载模块 2. 确认扩展.so
文件存在 3. 检查php.ini中extension_dir
设置
php -m
cd /usr/local/src/php-7.4.33/ext/[extname] phpize ./configure make && sudo make install
定期检查PHP安全公告,重复编译流程更新版本
通过源码编译安装PHP7.4虽然步骤较多,但可以获得完全定制的PHP环境。关键要点包括:
建议将编译命令写成脚本以便后续维护,同时记得定期检查更新以确保安全性。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。