Home » Blog » Asterisk/Vicidial » How to Install FreePBX 15 on Debian 10 with Asterisk 16, PHP 7.3

How to Install FreePBX 15 on Debian 10 with Asterisk 16, PHP 7.3


How to Install FreePBX 15 on Debian 10 with Asterisk 16. This manual-install method builds a FreePBX 15 with Asterisk 16 on Debian 10 system with the following specifications on google Cloud:

  • FreePBX 15
  • Asterisk 16 from the Debian Buster package repository
  • PHP 7.3, standard with Debian Buster
  • 64-bit Intel/AMD (x86_64) platform

Step-by-step guide

All commands are to be run as the root user, either by directly logging in as root or by using sudo su - .

Start from a base Debian 10 installation. All necessary packages will be installed through the following commands.

Prerequisite recommended OS update

Add the backports repo specifically so that the odbc-mariadb package is available. Then update the OS to current.

echo deb http://ftp.us.debian.org/debian/ buster-backports main > /etc/apt/sources.list.d/backports.list

echo deb-src http://ftp.us.debian.org/debian/ buster-backports main >> /etc/apt/sources.list.d/backports.list

apt-get update

apt-get upgrade

Install all the necessary packages

apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mariadb-server mariadb-client bison flex php php-curl php-cli php-pdo php-mysql php-pear php-gd php-mbstring php-intl php-bcmath curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp2-dev libspandsp-dev sudo subversion libtool-bin python-dev unixodbc dirmngr sendmail-bin sendmail asterisk debhelper-compat cmake libmariadb-dev odbc-mariadb php-ldap

Install Node.js

curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -

apt-get install -y nodejs

Install this required Pear module

pear install Console_Getopt

Prepare Asterisk

systemctl stop asterisk

systemctl disable asterisk

cd /etc/asterisk

mkdir DIST

mv * DIST

cp DIST/asterisk.conf .

sed -i 's/(!)//' asterisk.conf

touch modules.conf

touch cdr.conf

Configure Apache web server

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/7.3/apache2/php.ini

sed -i 's/\(^memory_limit = \).*/\1256M/' /etc/php/7.3/apache2/php.ini

sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf

sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf

a2enmod rewrite

service apache2 restart

rm /var/www/html/index.html

Configure ODBC

cat <<EOF > /etc/odbcinst.ini
 [MySQL]
Description = ODBC for MySQL (MariaDB)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
FileUsage = 1
EOF

cat <<EOF > /etc/odbc.ini
 [MySQL-asteriskcdrdb]
Description = MySQL connection to 'asteriskcdrdb' database
Driver = MySQL
Server = localhost
Database = asteriskcdrdb
Port = 3306
Socket = /var/run/mysqld/mysqld.sock
Option = 3
EOF

Download FFMPEG static build for sound file manipulation

cd /usr/local/src

wget "https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz"

tar xf ffmpeg-release-amd64-static.tar.xz

cd ffmpeg-4*

mv ffmpeg /usr/local/bin

Install FreePBX

cd /usr/local/src

wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz

tar zxvf freepbx-15.0-latest.tgz

cd /usr/local/src/freepbx/

./start_asterisk start

./install -n

Get the rest of the modules

Only a very basic system is installed at this point. You will probably want to install all the modules on Debian 10 . Alternatively, you can skip this and pick-and-choose the individual modules you want later.

fwconsole ma installall

Uninstall digium_phones

Broken with PHP 7.3 (April 2020).

fwconsole ma uninstall digium_phones

Apply the current configuration

fwconsole reload

Set symlinks to the correct sound files

cd /usr/share/asterisk

mv sounds sounds-DIST

ln -s /var/lib/asterisk/sounds sounds

Perform a restart to load all Asterisk modules that had not yet been configured

fwconsole restart

Set up systemd (startup script)

cat <<EOF > /etc/systemd/system/freepbx.service
 [Unit]
Description=FreePBX VoIP Server
After=mariadb.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start -q
ExecStop=/usr/sbin/fwconsole stop -q
[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload

systemctl enable freepbx

Asterisk and FreePBX 15 are installed on Debian 10 ! Go to the web interface at http://YOUR-IP to finish setup

Scroll to Top