爲PHP設置服務器(Apache/Nginx)環境變量
設置環境變量常見的地方爲區分開發環境/生產環境,或者定義一些數據庫的帳號密碼
設置Apache環境變量
指令
設置當前環境變量爲DEV
SetEnv RUNTIME_ENVIROMENT DEV
數據庫帳號密碼
SetEnv MYSQL_USERNAME root
SetEnv MYSQL_PASSWORD root
配置文件格式
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/"
ServerName localhost
SetEnv RUNTIME_ENVIROMENT DEV
SetEnv MYSQL_USERNAME root
SetEnv MYSQL_PASSWORD root
ErrorLog "logs/error.log"
CustomLog "logs/access.log" common
</VirtualHost>
設置Nginx環境變量
指令
設置當前環境變量爲DEV
fastcgi_param RUNTIME_ENVIROMENT 'DEV'
數據庫帳號密碼
fastcgi_param MYSQL_USERNAME 'root'
fastcgi_param MYSQL_PASSWORD 'root'
配置文件格式
在fastcgi_params文件中配置
fastcgi_param RUNTIME_ENVIROMENT 'DEV';
fastcgi_param MYSQL_USERNAME 'root';
fastcgi_param MYSQL_PASSWORD 'root';
在nginx.conf中配置
server {
listen 80;
root /var/www;
index index.php;
server_name localhost;
location /
{
index index.php;
}
location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
爲PHP腳本設置環境變量
爲當前用戶臨時設置
臨時設置只需要執行
export KEY=VALUE
爲當前用戶永久設置
在~/.bashrc
(不同系統各有不同)中寫
爲所有用戶(不包括root)設置
創建文件/etc/profile.d/test.sh
,寫入
KEY=VALUE
爲所有用戶(包括root)設置
在/etc/environment
中寫入
KEY=VALUE
注意,這個文件的生效時間是用戶登錄時,所以對於root來說,需要重啓機器
在Supervisor中設置
有的時候PHP腳本是用Supervisor來控制的,所以記得設置supervisor配置中的environment項
在PHP中調用服務器環境變量
在PHP中有兩個調用方式:
$env = getenv('RUNTIME_ENVIROMENT');
還有超全局變量方式:
$env = $_SERVER['RUNTIME_ENVIROMENT'];