您好,登录后才能下订单哦!
# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。