CentOS/RHEL Installation¶
This guide will help you install Poweradmin on RHEL-based distributions like Rocky Linux 9 or AlmaLinux 9. CentOS Stream 9 is also supported provided PHP 8.2 or newer is enabled.
Prerequisites¶
Install PowerDNS¶
Poweradmin is a frontend for an existing PowerDNS authoritative server - it does not install or run PowerDNS itself. If you do not already have PowerDNS running, install it first and configure a database backend (MySQL/MariaDB, PostgreSQL, or SQLite). See the PowerDNS installation guide for packaging, and Backends for configuring one.
Enable a PHP 8.2+ Stream¶
Rocky Linux 9, AlmaLinux 9, and RHEL 9 ship PHP 8.0 by default, which does not meet Poweradmin's PHP 8.2 minimum. Switch to a newer stream before installing PHP packages:
Alternatively, install PHP from the Remi repository if you need an even newer release.
Install PHP and Extensions¶
Database Support¶
Install the appropriate PHP database driver based on your preferred database:
Note: SQLite support is built into
php-pdoon RHEL-family distributions - there is no separatephp-sqlite3package in the default AppStream repositories. If you plan to use SQLite,php-pdoalone is sufficient.
Web Server Configuration¶
Apache¶
1. Install Apache if not already installed:
2. Enable and start the Apache service:
3. Configure SELinux if it's enabled:
# Allow Apache to connect to the database
setsebool -P httpd_can_network_connect_db 1
# If using a non-standard directory, set the correct context
semanage fcontext -a -t httpd_sys_content_t "/path/to/poweradmin(/.*)?"
restorecon -Rv /path/to/poweradmin
4. Configure your firewall:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https # If using HTTPS
firewall-cmd --reload
5. Ensure AllowOverride All is set in your Apache configuration to allow the .htaccess file to function properly. The .htaccess file handles URL routing, API support, and security rules automatically.
Nginx Configuration¶
If you prefer Nginx, use the configuration example provided in the Poweradmin repository. The configuration includes API routing, CORS support, security rules, and clean URL handling.
1. Install Nginx:
2. Download the appropriate configuration file:
Version-specific configuration files:
- Poweradmin 4.0.x: Use nginx.conf.example from release/4.0.x
- Poweradmin 4.1.x+: Use nginx.conf.example from master (includes subfolder deployment support)
3. Save the configuration to /etc/nginx/conf.d/poweradmin.conf and adjust:
server_name- Set to your domain nameroot- Set to your Poweradmin installation pathfastcgi_pass- Useunix:/var/run/php-fpm/www.sockfor RHEL/CentOS
4. Enable and start Nginx and PHP-FPM:
5. Configure SELinux and firewall as with Apache.
Caddy Configuration¶
For Caddy servers, use the configuration example from the repository:
- Poweradmin 4.0.x: Use Caddyfile.example from release/4.0.x
- Poweradmin 4.1.x+: Use caddy.conf.example from master (includes subfolder deployment support)
Installing Poweradmin¶
Obtain Poweradmin Source Code¶
Download the latest release from the stable line (currently the 4.3.x series). Always check the releases page for the most recent version - the example below uses v4.3.5:
VERSION=4.3.5
curl -Lo v${VERSION}.zip https://github.com/poweradmin/poweradmin/archive/refs/tags/v${VERSION}.zip
unzip v${VERSION}.zip
If you don't have curl or unzip installed:
Deploy to Web Server¶
Move the Poweradmin files to your web server's document root:
# For Apache (default directory)
cp -r poweradmin-${VERSION}/* /var/www/html/
chown -R apache:apache /var/www/html/
# For Nginx (if using a different directory)
cp -r poweradmin-${VERSION}/* /usr/share/nginx/html/
chown -R nginx:nginx /usr/share/nginx/html/
Complete the Installation¶
- Visit http://your-server/install/ in your browser
- Follow the installation steps
- Once installation is complete, remove the
installdirectory for security - Log in with the admin username and password created during installation
Troubleshooting¶
If you encounter issues:
- Check PHP error logs:
/var/log/php-fpm/www-error.log - Check web server logs:
/var/log/httpd/error_logor/var/log/nginx/error.log - Ensure SELinux permissions are properly set if SELinux is enabled
- Verify all required PHP extensions are installed and enabled
- Check that file permissions are correct for your web server user
- For API issues, ensure CORS headers and Authorization header forwarding are configured (see the example configs)