How to Install FreePBX 15 on Debian 10 with Asterisk 16, PHP 7.3
READ FIRST
Manual installations of FreePBX is considered an EXPERTS ONLY exercise. This method of installation is enough to get CORE functionality of FreePBX. Non-commercial modules may not function as expected or detailed in the Wiki's. Certain modules and features may require additional software to be installed and configured on the server.
**** COMMERCIAL MODULES CANNOT BE INSTALLED ON THIS OS ****
This manual-install method builds a FreePBX system with the following specifications:
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.listecho deb-src http://ftp.us.debian.org/debian/ buster-backports main >> /etc/apt/sources.list.d/backports.listapt-get updateapt-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 asterisksystemctl disable asteriskcd /etc/asteriskmkdir DISTmv * DISTcp DIST/asterisk.conf .sed -i 's/(!)//' asterisk.conftouch modules.conftouch cdr.conf
Configure Apache web server
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/7.3/apache2/php.inised -i 's/\(^memory_limit = \).*/\1256M/' /etc/php/7.3/apache2/php.inised -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.confsed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.confa2enmod rewriteservice apache2 restartrm /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.soFileUsage = 1EOFcat <<EOF > /etc/odbc.ini[MySQL-asteriskcdrdb]Description = MySQL connection to 'asteriskcdrdb' databaseDriver = MySQLServer = localhostDatabase = asteriskcdrdbPort = 3306Socket = /var/run/mysqld/mysqld.sockOption = 3EOF
Download FFMPEG static build for sound file manipulation
cd /usr/local/srcwget "https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz"tar xf ffmpeg-release-amd64-static.tar.xzcd ffmpeg-4*mv ffmpeg /usr/local/bin
Install FreePBX
cd /usr/local/srcwget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgztar zxvf freepbx-15.0-latest.tgzcd /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. 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/asteriskmv sounds sounds-DISTln -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 ServerAfter=mariadb.service[Service]Type=oneshotRemainAfterExit=yesExecStart=/usr/sbin/fwconsole start -qExecStop=/usr/sbin/fwconsole stop -q[Install]WantedBy=multi-user.targetEOFsystemctl daemon-reloadsystemctl enable freepbx
Asterisk and FreePBX 15 are installed! Go to the web interface at http://YOUR-IP to finish setup.
Questions or support?
Please post your questions or ask for help on the community forums FreePBX Community Forums
Return to Documentation Home | Sangoma Support