Manual Installing FreePBX on a Linux Server
FreePBX is an open-source GUI (Graphical User Interface) that controls and manages Asterisk, a powerful VoIP PBX system. This guide walks you through installing FreePBX on a dedicated server.
Prerequisites
Before installing FreePBX, ensure you have the following:
- A dedicated or virtual server (Recommended: 2+ CPU cores, 4GB RAM, 50GB storage)
- A fresh installation of CentOS 7 (or Rocky Linux 8/AlmaLinux 8 for newer versions)
- Root access to the server
- Stable internet connection
Step 1: Update Your System
Update the system packages before installing dependencies:
yum update -y
reboot
Step 2: Configure SELinux & Firewall
Set SELinux to permissive mode:
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
Allow FreePBX and Asterisk through the firewall:
firewall-cmd --permanent --add-service={http,https}
firewall-cmd --permanent --add-port=5060-5061/udp
firewall-cmd --permanent --add-port=10000-20000/udp
firewall-cmd --reload
Step 3: Install Required Packages
Install dependencies:
yum groupinstall -y "Development Tools"
yum install -y epel-release
yum install -y wget vim net-tools perl bzip2 tar sqlite
Install MariaDB, Apache, and PHP:
yum install -y mariadb-server mariadb
yum install -y httpd php php-mysql php-xml php-mbstring php-process php-pear
systemctl enable --now mariadb httpd
Secure MariaDB:
mysql_secure_installation
Follow the prompts to set a root password and secure your database.
Step 4: Install Asterisk
Download and compile Asterisk:
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
tar xvf asterisk-20-current.tar.gz
cd asterisk-20.*
contrib/scripts/install_prereq install
./configure --with-pjproject-bundled --with-jansson-bundled --with-crypto --with-ssl
make menuselect
Enable necessary modules in the menu, then proceed with compilation:
make -j$(nproc)
make install
make samples
make config
ldconfig
systemctl enable asterisk
Step 5: Install FreePBX
Download and install FreePBX:
cd /usr/src
wget https://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz
tar xvf freepbx-16.0-latest.tgz
cd freepbx
./install -n
Start FreePBX services:
fwconsole restart
systemctl enable httpd
Step 6: Access the Web Interface
- Open a web browser and go to
http://your-server-ip
- Follow the setup wizard to configure FreePBX
Conclusion
You now have a fully functional FreePBX installation. Customize settings, configure SIP trunks, and set up extensions as needed. Regularly update your system for security and stability.
