首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 獲取伺服器作業系統、PHP 版本、資料庫等環境資訊完整函式庫

     編輯:PHP 綜合知識

常用環境檢測函式整理

部署、除錯、相容性檢查時,快速獲取伺服器關鍵資訊的標準函式與超全域變數。

核心資訊獲取對照表

PHP_VERSION / phpversion()zend_version()PHP_OS / PHP_OS_FAMILY (PHP 7.2+)$_SERVER['SERVER_SOFTWARE']function_exists('mysqli_connect')ini_get('mysqli.allow_persistent')ini_get('mysqli.max_links')ini_get('upload_max_filesize')ini_get('max_execution_time')ini_get('memory_limit')mysqli_get_server_info($link)date('Y-m-d H:i:s') (需設定時區)
資訊類別獲取方式範例輸出
PHP 版本8.1.12
Zend Engine 版本4.1.12
作業系統Linux / Darwin / Windows
Web 伺服器軟體Apache/2.4.41 / nginx/1.18.0
MySQL 支援true/false
MySQL 持久連線On/Off
MySQL 最大連線數-1 (無限制) / 數值
上傳大小限制2M / 100M
腳本最大執行時間30 / 0 (無限制)
記憶體限制128M / 512M
MySQL 伺服器版本5.7.33 / 8.0.28
伺服器時間2024-01-15 14:30:00

完整檢測腳本 (可直接存為 info.php 訪問)

<?php
// 設定時區
date_default_timezone_set('Asia/Taipei');

$info = [
    'PHP 版本'           => PHP_VERSION,
    'Zend 版本'          => zend_version(),
    '作業系統'           => PHP_OS,
    'OS Family (7.2+)'   => PHP_OS_FAMILY ?? 'N/A',
    'Web 伺服器'         => $_SERVER['SERVER_SOFTWARE'] ?? 'CLI',
    'MySQLi 支援'        => extension_loaded('mysqli') ? '是' : '否',
    'PDO MySQL 支援'     => extension_loaded('pdo_mysql') ? '是' : '否',
    'MySQL 持久連線'     => ini_get('mysqli.allow_persistent'),
    'MySQL 最大連線數'   => ini_get('mysqli.max_links') == -1 ? '無限制' : ini_get('mysqli.max_links'),
    '上傳限制'           => ini_get('upload_max_filesize'),
    'POST 限制'          => ini_get('post_max_size'),
    '最大執行時間'       => ini_get('max_execution_time') . ' 秒',
    '記憶體限制'         => ini_get('memory_limit'),
    '當前時間'           => date('Y-m-d H:i:s'),
];

// 若有資料庫連線,顯示 MySQL 版本
if (extension_loaded('mysqli')) {
    $mysqli = @new mysqli('localhost', 'user', 'pass', 'db');
    if (!$mysqli->connect_error) {
        $info['MySQL 伺服器版本'] = $mysqli->server_info;
        $mysqli->close();
    }
}

// 表格輸出
echo '<table border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse;font-family:monospace;">';
echo '<tr><th>項目</th><th>數值</th></tr>';
foreach ($info as $k => $v) {
    echo "<tr><td>$k</td><td>$v</td></tr>";
}
echo '</table>';
?>

進階:檢測擴展模組與配置

// 列出所有載入擴展
print_r(get_loaded_extensions());

// 檢測特定擴展
$required = ['redis', 'memcached', 'gd', 'curl', 'mbstring', 'xml', 'zip', 'bcmath'];
foreach ($required as $ext) {
    echo "$ext: " . (extension_loaded($ext) ? '✅' : '❌') . "\n";
}

// 顯示完整 phpinfo() (僅開發環境使用!)
if (php_sapi_name() !== 'cli') {
    // phpinfo();  // 生產環境嚴禁!
}

CLI 環境下獲取資訊

# 命令列快速查看
php -v                    # 版本
php -m                    # 模組
php -i | grep memory_limit  # 特定配置
php -r "echo PHP_OS;"     # 作業系統

安全提醒

  • 🚫 生產環境嚴禁公開 phpinfo() 或詳細環境資訊頁面,會洩露路徑、配置、模組等敏感資訊
  • ✅ 僅在受保護的管理後台、部署驗證腳本、CLI 環境使用
  • 🔒 定期清理臨時檢測檔案

建立標準化環境檢測腳本,納入部署清單,讓「在我機器上能跑」成為歷史。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved