在Linux系统中,PHP的环境变量影响着脚本运行时的诸多行为,例如内存上限、上传大小、包含路径以及时区等。不同运行模式下的PHP读取环境配置的位置有所区别,因此修改方式也存在差异。本文介绍几种在Linux下修改PHP默认环境变量的通用方法,适用于大多数发行版和常见PHP运行环境。

一、通过系统环境变量文件修改
如果是命令行模式(CLI)运行的PHP,可以直接在Linux的用户或系统环境文件中导出变量,PHP的getenv()函数能够读取到这些变量。常见的做法是在/etc/profile或用户家目录的.bashrc中追加导出语句。
# 在 /etc/profile 末尾添加 export PHP_MEMORY_LIMIT=256M export PHP_TIMEZONE=Asia/Shanghai # 使配置生效 source /etc/profile
随后写一个简单的PHP脚本验证是否读取成功:
<?php
echo getenv('PHP_MEMORY_LIMIT');
echo PHP_EOL;
echo getenv('PHP_TIMEZONE');
?>
二、修改PHP自身配置文件
更通用的做法是在php.ini中设置PHP内部的环境与限制参数。先通过命令定位配置文件位置:
php --ini
打开对应的php.ini,修改或添加如下内容:
memory_limit = 256M date.timezone = Asia/Shanghai include_path = ".:/opt/myphp/lib"
若是PHP-FPM模式,修改后需重启服务:
systemctl restart php-fpm
三、在FPM池配置中单独设置
当使用PHP-FPM时,还可以在池配置文件(如www.conf)里用env指令定义环境变量,这样只对该池生效,互不干扰。
env[PHP_APP_ENV] = production env[PHP_LOG_DIR] = /var/log/myapp
四、运行时临时指定
如果只想在某次执行时改变变量,可以在命令前临时赋值:
PHP_APP_ENV=test php /var/www/test.php
在脚本中也能用putenv()函数临时写入:
<?php
putenv('PHP_TEMP_VAR=hello');
echo getenv('PHP_TEMP_VAR');
?>
五、方法对比
| 方式 | 作用范围 | 是否需要重启 |
|---|---|---|
| 系统环境文件 | CLI全局或指定用户 | 重新登录或source |
| php.ini | 对应SAPI全部请求 | 是 |
| FPM池env | 单个FPM池 | 重启FPM |
| 运行时赋值 | 单次执行 | 否 |
综上所述,Linux下修改PHP默认环境变量并不复杂,核心在于分清PHP的运行模式与配置读取顺序。日常运维中推荐优先使用php.ini与FPM池配置来管理,临时调试再配合命令行或putenv()即可。