On Debian 13:
sudo apt update
sudo apt install -y apache2 php php-gd php-xml php-mbstring php-snmp snmp snmpd wget unzip
On RHEL 10:
sudo dnf install -y httpd php php-gd php-xml php-mbstring php-snmp net-snmp net-snmp-utils wget unzip
cd /tmp
wget https://github.com/phpsysinfo/phpsysinfo/releases/download/3.4.3/phpsysinfo-3.4.3.zip
sudo apt install -y unzip # Debian if not installed
unzip phpsysinfo-3.4.3.zip
sudo mv phpsysinfo /var/www/html/phpsysinfo
On Debian 13:
sudo chown -R www-data:www-data /var/www/html/phpsysinfo
sudo chmod -R 755 /var/www/html/phpsysinfo
On RHEL 10:
sudo chown -R apache:apache /var/www/html/phpsysinfo
sudo chmod -R 755 /var/www/html/phpsysinfo
Copy configuration template:
cd /var/www/html/phpsysinfo
sudo cp config.php.new config.php
sudo nano config.php
Key settings to configure:
<?php
// Default language
define('PSI_DEFAULT_LANGUAGE', 'en');
// Theme
define('PSI_THEME', 'bootstrap');
// Enable/disable features
define('PSI_SHOW_PICKLIST_LANG', true);
define('PSI_SHOW_PICKLIST_TEMPLATE', true);
// SNMP configuration (if monitoring remote hosts)
define('PSI_SNMP_VERSION', '2c');
define('PSI_SNMP_COMMUNITY', 'public');
define('PSI_SNMP_TIMEOUT', 3);
define('PSI_SNMP_RETRIES', 1);
// Enable specific plugins
define('PSI_PLUGINS', array('PSI_Plugin_HelloWorld' => 'false'));
?>
For local system monitoring with SNMP:
Edit SNMP daemon config:
sudo tee /etc/snmp/snmpd.conf >/dev/null <<'EOF'
rocommunity public 127.0.0.1
sysLocation Server Room
sysContact admin@example.com
EOF
Restart SNMP:
sudo systemctl enable --now snmpd
On Debian 13:
sudo tee /etc/apache2/sites-available/phpsysinfo.conf >/dev/null <<'EOF'
<VirtualHost *:80>
ServerName phpsysinfo.example.com
DocumentRoot /var/www/html/phpsysinfo
<Directory /var/www/html/phpsysinfo>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
EOF
sudo a2ensite phpsysinfo
sudo systemctl restart apache2
On RHEL 10:
sudo systemctl restart httpd
Access via http://SERVER_IP/phpsysinfo.
On UFW:
sudo ufw allow 80/tcp
On firewalld:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
Open http://SERVER_IP/phpsysinfo or http://phpsysinfo.example.com to view system information.
Edit config.php to customize display:
// Hide specific sections
define('PSI_HIDE_NETWORK', false);
define('PSI_HIDE_HARDWARE', false);
define('PSI_HIDE_OPERATING_SYSTEM', false);
// Set refresh interval (seconds)
define('PSI_REFRESH', 60);
// Enable JSON output for API
define('PSI_JSON', true);
phpSysInfo supports various plugins:
// In config.php
define('PSI_PLUGINS', array(
'PSI_Plugin_HelloWorld' => 'false',
'PSI_Plugin_Smart' => 'true', // SMART disk info
'PSI_Plugin_Upstream' => 'true', // Upstream bandwidth
));
Create config_servers.php:
<?php
$servers = array(
array('name' => 'Server 1', 'url' => 'http://server1/phpsysinfo'),
array('name' => 'Server 2', 'url' => 'http://server2/phpsysinfo'),
);
?>
phpSysInfo provides JSON output:
curl http://localhost/phpsysinfo/index.php?json
Parse specific sections:
curl http://localhost/phpsysinfo/index.php?json=network
curl http://localhost/phpsysinfo/index.php?json=hardware
docker run -d \
--name phpsysinfo \
--restart unless-stopped \
-p 8080:80 \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--privileged \
phpsysinfo/phpsysinfo:latest
See phpSysInfo Hardening.
Stuck on a step or need custom configuration? We provide paid consulting for phpSysInfo deployments, from single-instance setups to distributed clusters.
📧 office@linux-server-admin.com
🌐 Contact Page
Prefer automation? See phpSysInfo Ansible Setup for an example playbook.
Prefer containers? See phpSysInfo Docker Setup.
See phpSysInfo Configuration for configuration guidance.
See phpSysInfo Security for hardening guidance.