禁用了$_ENV变量,后如何获取环境信息

本文介绍了多种在PHP环境中获取系统及服务器相关信息的方法,包括系统类型、版本号、PHP运行方式等,并提供了具体函数和$_SERVER超全局变量的使用示例。

禁用了$_ENV变量,还有什么办法获取环境信息?

这里我就不一一介绍啦直接上代码

<?php
    phpinfo();
?>

除此外再介绍一些其它的一些获取用户的信息:

获取系统类型及版本号:    php_uname()                                   (例:Windows NT COMPUTER 5.1 build 2600)
只获取系统类型:          php_uname('s')                                (或:PHP_OS,例:Windows NT)
只获取系统版本号:        php_uname('r')                                (例:5.1)
获取PHP运行方式:         php_sapi_name()                               (PHP run mode:apache2handler)
获取前进程用户名:        Get_Current_User()
获取PHP版本:             PHP_VERSION
获取Zend版本:            Zend_Version()
获取PHP安装路径:         DEFAULT_INCLUDE_PATH
获取当前文件绝对路径:    __FILE__
获取Http请求中Host值:    $_SERVER["HTTP_HOST"]                         (返回值为域名或IP)
获取服务器IP:            GetHostByName($_SERVER['SERVER_NAME'])
接受请求的服务器IP:      $_SERVER["SERVER_ADDR"]                       (有时候获取不到,推荐用:GetHostByName($_SERVER['SERVER_NAME']))
获取客户端IP:            $_SERVER['REMOTE_ADDR']
获取服务器解译引擎:      $_SERVER['SERVER_SOFTWARE']
获取服务器CPU数量:       $_SERVER['PROCESSOR_IDENTIFIER']
获取服务器系统目录:      $_SERVER['SystemRoot']
获取服务器域名:          $_SERVER['SERVER_NAME']                       (建议使用:$_SERVER["HTTP_HOST"])
获取用户域名:            $_SERVER['USERDOMAIN']
获取服务器语言:          $_SERVER['HTTP_ACCEPT_LANGUAGE']
获取服务器Web端口:       $_SERVER['SERVER_PORT']
访问用户的浏览器信息:  $_SERVER['HTTP_USER_AGENT']; 
<script language="JavaScript">
document.write("浏览器名称: "+navigator.appName+"<br>");
document.write("浏览器版本号: "+navigator.appVersion+"<br>");
document.write("系统语言: "+navigator.systemLanguage+"<br>");
document.write("系统平台: "+navigator.platform+"<br>");
document.write("浏览器是否支持cookie: "+navigator.cookieEnabled+"<br>");
</script>

PowerShell 7 环境已加载 (版本: 7.5.2) PS C:\Users\Administrator\Desktop> cd E:\PyTorch_Build\pytorch PS E:\PyTorch_Build\pytorch> python -m venv rtx5070_env No pyvenv.cfg file PS E:\PyTorch_Build\pytorch> .\rtx5070_env\Scripts\activate .\rtx5070_env\Scripts\activate: The term '.\rtx5070_env\Scripts\activate' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. PS E:\PyTorch_Build\pytorch> # 强制删除旧环境 PS E:\PyTorch_Build\pytorch> Remove-Item -Recurse -Force rtx5070_env -ErrorAction SilentlyContinue PS E:\PyTorch_Build\pytorch> PS E:\PyTorch_Build\pytorch> # 使用系统Python创建环境(指定完整路径) PS E:\PyTorch_Build\pytorch> $pythonPath = (Get-Command python).Source PS E:\PyTorch_Build\pytorch> & $pythonPath -m venv "E:\PyTorchBuild_Secure\rtx5070_env" PS E:\PyTorch_Build\pytorch> PS E:\PyTorch_Build\pytorch> # 修复环境权限 PS E:\PyTorch_Build\pytorch> $envPath = "E:\PyTorchBuild_Secure\rtx5070_env" PS E:\PyTorch_Build\pytorch> Get-ChildItem $envPath -Recurse | ForEach-Object { >> $acl = Get-Acl $_.FullName >> $rule = New-Object System.Security.AccessControl.FileSystemAccessRule( >> "Users", "FullControl", "Allow" >> ) >> $acl.SetAccessRule($rule) >> Set-Acl -Path $_.FullName -AclObject $acl >> } PS E:\PyTorch_Build\pytorch> PS E:\PyTorch_Build\pytorch> # 创建激活脚本别名 PS E:\PyTorch_Build\pytorch> New-Alias -Name pytorch-env -Value "$envPath\Scripts\Activate.ps1" PS E:\PyTorch_Build\pytorch> # 方法1:使用完整路径激活 PS E:\PyTorch_Build\pytorch> & "E:\PyTorchBuild_Secure\rtx5070_env\Scripts\Activate.ps1" (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 方法2:创建环境模块(推荐) (rtx5070_env) PS E:\PyTorch_Build\pytorch> function Enter-PytorchEnv { >> $env:VIRTUAL_ENV = "E:\PyTorchBuild_Secure\rtx5070_env" >> $env:PATH = "$env:VIRTUAL_ENV\Scripts;" + $env:PATH >> Write-Host "✅ PyTorch编译环境已激活" -ForegroundColor Green >> } (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> function Exit-PytorchEnv { >> $env:PATH = ($env:PATH -split ';' | Where-Object { $_ -notlike "*rtx5070_env*" }) -join ';' >> Remove-Item env:VIRTUAL_ENV -ErrorAction SilentlyContinue >> Write-Host "🚪 已退出编译环境" -ForegroundColor Yellow >> } (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 添加到PowerShell配置文件 (rtx5070_env) PS E:\PyTorch_Build\pytorch> if (-not (Test-Path $PROFILE)) { >> New-Item -Type File -Path $PROFILE -Force >> } (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> @" >> function Enter-PytorchEnv { ... } >> function Exit-PytorchEnv { ... } >> "@ | Add-Content -Path $PROFILE (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 检查环境完整性 (rtx5070_env) PS E:\PyTorch_Build\pytorch> $requiredFiles = @( >> "pyvenv.cfg", >> "Scripts\Activate.ps1", >> "Scripts\python.exe", >> "Scripts\pip.exe" >> ) (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> $missingFiles = @() (rtx5070_env) PS E:\PyTorch_Build\pytorch> foreach ($file in $requiredFiles) { >> $fullPath = Join-Path "E:\PyTorchBuild_Secure\rtx5070_env" $file >> if (-not (Test-Path $fullPath)) { >> $missingFiles += $file >> } >> } (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> if ($missingFiles.Count -gt 0) { >> Write-Host "❌ 环境不完整,缺失文件:" -ForegroundColor Red >> $missingFiles | ForEach-Object { Write-Host " - $_" } >> >> # 自动修复 >> Write-Host "尝试修复环境..." >> & $pythonPath -m venv "E:\PyTorchBuild_Secure\rtx5070_env" --upgrade >> } else { >> Write-Host "✅ 虚拟环境完整" -ForegroundColor Green >> & "$envPath\Scripts\python.exe" -c "import sys; print(f'Python {sys.version}\n环境位置: {sys.prefix}')" >> } ✅ 虚拟环境完整 Python 3.10.10 (tags/v3.10.10:aad5f6a, Feb 7 2023, 17:20:36) [MSC v.1929 64 bit (AMD64)] 环境位置: E:\PyTorchBuild_Secure\rtx5070_env (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 创建环境锁文件 (rtx5070_env) PS E:\PyTorch_Build\pytorch> $lockFile = "E:\PyTorchBuild_Secure\rtx5070_env\.venvlock" (rtx5070_env) PS E:\PyTorch_Build\pytorch> New-Item -ItemType File -Path $lockFile -Force Directory: E:\PyTorchBuild_Secure\rtx5070_env Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2025/9/3 22:29 0 .venvlock (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 设置只读保护 (rtx5070_env) PS E:\PyTorch_Build\pytorch> $acl = Get-Acl $lockFile (rtx5070_env) PS E:\PyTorch_Build\pytorch> $acl.SetAccessRuleProtection($true, $false) # 禁用继承 (rtx5070_env) PS E:\PyTorch_Build\pytorch> $acl | Set-Acl (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 添加环境守卫进程 (rtx5070_env) PS E:\PyTorch_Build\pytorch> Start-Job -Name VenvGuard -ScriptBlock { >> while ($true) { >> $envPath = "E:\PyTorchBuild_Secure\rtx5070_env" >> if (-not (Test-Path "$envPath\Scripts\python.exe")) { >> Write-Host "⚠️ 环境受损!正在恢复..." -ForegroundColor Red >> & (Get-Command python).Source -m venv $envPath --force >> } >> Start-Sleep -Seconds 300 # 每5分钟检查一次 >> } >> } Id Name PSJobTypeName State HasMoreData Location Command -- ---- ------------- ----- ----------- -------- ------- 1 VenvGuard BackgroundJob Running True localhost … (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 临时排除目录 (rtx5070_env) PS E:\PyTorch_Build\pytorch> Add-MpPreference -ExclusionPath "E:\PyTorchBuild_Secure" (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 启用长路径支持 (rtx5070_env) PS E:\PyTorch_Build\pytorch> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" ` >> -Name "LongPathsEnabled" -Value 1 (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 加载环境模块 (rtx5070_env) PS E:\PyTorch_Build\pytorch> . $PROFILE PowerShell 7 环境已加载 (版本: 7.5.2) (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 激活环境 (rtx5070_env) PS E:\PyTorch_Build\pytorch> Enter-PytorchEnv ...: C:\Users\Administrator\Documents\PowerShell\Microsoft.PowerShell_profile.ps1:64 Line | 64 | function Enter-PytorchEnv { ... } | ~~~ | The term '...' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the | spelling of the name, or if a path was included, verify that the path is correct and try again. (rtx5070_env) PS E:\PyTorch_Build\pytorch> (rtx5070_env) PS E:\PyTorch_Build\pytorch> # 验证环境 (rtx5070_env) PS E:\PyTorch_Build\pytorch> python -c "import sys; print(sys.prefix)" E:\PyTorchBuild_Secure\rtx5070_env (rtx5070_env) PS E:\PyTorch_Build\pytorch>
09-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值