在Ubuntu系统中配置PHP,最核心的一步就是找到并编辑php.ini文件。但很多新手会被不同运行模式下的路径绕晕:CLI、Apache2、PHP-FPM各自有各自的配置,改错了地方,改了等于没改。下面就把定位、编辑、生效和验证这几个关键环节掰开揉碎讲清楚,保证你读完就能上手。

一、定位配置文件
- 最直接的办法:在终端里跑一下
php --ini,输出结果里找 Loaded Configuration File 这一行,后面跟着的路径就是当前CLI模式加载的php.ini。 - 想要更精简的输出?试试
php -i | grep 'Loaded Configuration File',直接打印路径,省去多余信息。 - 如果你用的是PHP-FPM,别忘了用
php-fpm{版本号} --ini来查看对应FPM实例的配置文件路径——比如php-fpm8.1 --ini。 - 从经验来看,Ubuntu的默认路径遵循一个很规律的模板:
/etc/php/{版本号}/{SAPI}/php.ini。这里的{版本号}可能是8.1、8.2,{SAPI}则根据运行模式不同,常见的有cli、apache2、fpm三种。
二、不同运行模式对应的编辑路径
这个表格整理得很清楚,把{版本号}替换成你实际安装的版本(比如8.1),就能直接对应到自己的环境。
| SAPI | 配置文件路径 | 用途说明 |
|---|---|---|
| CLI | /etc/php/{版本号}/cli/php.ini | 命令行运行PHP时使用 |
| Apache2 | /etc/php/{版本号}/apache2/php.ini | 通过mod_php运行PHP时使用 |
| PHP-FPM | /etc/php/{版本号}/fpm/php.ini | 与Nginx/Apache+PHP-FPM配合时使用 |
- 举个具体例子,PHP 8.1 的三个路径分别是:
- CLI:
/etc/php/8.1/cli/php.ini - Apache2:
/etc/php/8.1/apache2/php.ini - PHP-FPM:
/etc/php/8.1/fpm/php.ini
- CLI:
- 编辑命令很简单,比如
sudo nano /etc/php/8.1/cli/php.ini,把nano换成你习惯的vim或其他编辑器都可以。
三、修改后使配置生效
- 如果你修改的是CLI配置,那最简单——新开一个终端会话,配置就已经生效了,不需要重启任何服务。
- 如果修改的是Apache2(mod_php)的配置,就需要重启Apache:
sudo systemctl restart apache2。 - 如果修改的是PHP-FPM的配置,重启对应的FPM服务即可:
sudo systemctl restart php{版本号}-fpm,比如sudo systemctl restart php8.1-fpm。 - 另外,如果你用的是Nginx + PHP-FPM,别忘了同时重启Nginx:
sudo systemctl restart nginx。 - 一个小提醒:每次修改后,只需要重启对应的那个服务,没必要把所有服务都重启一遍,省时又省力。
四、验证修改是否生效
- 创建一个测试文件:
/var/www/html/info.php,内容就一行:。 - 然后在浏览器里访问
http://你的服务器IP/info.php,在页面中搜索你刚修改的配置项,看看新值有没有生效。 - 安全起见,验证完成后务必立刻删除这个文件:
sudo rm /var/www/html/info.php,别让它暴露在公网上。 - 顺便提一嘴:除了主配置文件php.ini,有些模块或性能相关的配置(比如opcache)可能会放在
/etc/php/{版本号}/{SAPI}/conf.d/*.ini里。如果你改了这些文件,同样需要重启对应的服务才能生效。