如何让PHP能够读取系统环境变量?
一、fpm模式
1、通过服务器传递
如在nginx的配置里设置:
fastcgi_param ENV_XXX 123456;
每次页面请求nginx都会将此变量传递给php,php可以通过getenv函数或$_SERVER全局变量获得。
2、通过fpm配置传递
fpm在每次启动时都会读取php-fpm.conf文件中的环境变量设置,如:
env[ENV_XXX]="test test"
或者让fpm读取系统环境变量,如:
env[ENV_XXX]=$ENV_XXX
注意此种方式要确保系统环境变量存在,且不被sudo禁用。
如果fpm是用sudo方式启动,默认sudo会禁用一些环境变量,可以通过以下方式放开限制:
vim /etc/sudoers
Defaults env_reset
Defaults env_keep = "ENV_XXX"
或者干脆放开所有限制:
Defaults !env_reset
最后,如果修改了php-fpm.conf中的设置需要重启fpm才能生效,同样php可以通过getenv函数或$_SERVER全局变量获得环境变量。
二、命令行模式
命令行模式限制较少,可以通过getenv函数或$_SERVER全局变量获取对当前执行用户有效的系统环境变量,同样要注意sudo的限制。
nginx反向代理不能配置域名?
nginx可以配置域名。
server {
listen 80; # 监听 80 端口
autoindex on;
server_name activate.navicat.com; //访问域名
access_log logs/host.access.log combined; //日志文件位置
index index.html index.htm index.jsp index.php; //前端页面显示优先级
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
proxy_pass http://127.0.0.1:8080; # 反向代理到 8080 端口
add_header Access-Control-Allow-Origin *;
}
}
nginx反向代理可以配置域名,只需要在nginx配置文件中设置server_name参数即可。这个参数指定了代理服务器要响应的域名或IP地址,可以是一个具体的域名,也可以是通配符(如*.example.com)来匹配多个域名。
在代理请求时,nginx会根据请求的域名或IP地址来匹配对应的代理服务器。所以,配置域名是nginx反向代理的常见操作之一。
如何在服务器搭建PHP站点?要注意什么?
介绍两种常用的PHP服务器搭建方法:
第一种在Windows Server 2008上搭建PHP环境:
在搭建之前要检查 Web服务器(IIS)安装了没有,如果没有安装,请在服务器管理器中,打开角色管理窗口,添加IIS角色的模块和组件。
完成之后需要安装对应的Microsoft Visual C++ 版本,这里咱们安装VC14,。安装过程不再在赘述。
接下来 安装 PHP
先到官网下载对应的PHP版本,下载地址
这里咋们下载对应VC的版本,咱们下载php7.1(因为对应VC14的版本)
下载完成后将PHP解压到D:文件夹名为:php
安装:PHPManagerForIIS-1.2.0-x64.msi
下载地址:
配置PHP与CGI关联 让IIS7.5支持PHP
(1).安装phpmanager
(2).完装完后,重启IIS即可以看到
(3).双击PHP Manager 注册PHP路径.
点击 Check phpinfo() 若能正常运行,则PHP配置完成.
第二种 在Linux CentOS7 上搭建PHP环境:
咱们这里采用yum在线安装:搭建Apache+PHP
Centos7默认已经安装httpd服务,只是没有启动。如果你需要全新安装
使用 yum install -y httpd 进行安装
安装完成之后使用 systemctl start httpd 命令启动 Apache服务器。
Apache配置文件:/etc/httpd/conf/httpd.conf 进行端口设置(默认设置8080)
站点项目默认存放目录为/var/www/html
完成后使用 systemctl restart httpd命令重启httpd。
在 浏览器中输入 http://服务器IP:8080 ,看到显网页后,Apache配置成功,
接下来安装PHP主程序:
yum -y install php
安装完成后使用 systemctl restart httpd命令重启httpd
然后在目录:/var/www/html/下建立一个test.php文件
代码:
<?php phpinfo(); ?>
在 浏览器中输入 http://服务器IP:8080 ,能看到PHP的一些信息
CentOS 上的PHP就搭建成功了

