首先参见   asterisk manager api 的配置,然后根据freepbx的官方文档:
http://wiki.freepbx.org/display/HTGS/Installing+FreePBX+12+on+Ubuntu+Server+14.10
http://wiki.freepbx.org/display/L1/amportal+commands#amportalcommands-Chown
 
 
Initial System Setup
When installing the machine, at package selection make sure you pick - at least - OpenSSH Server, and LAMP Server. You may install others, if wanted.
![]()
Switch to the Root User
Update Your System
| 
apt-get update && sudoapt-get upgrade -y 
 | 
 
 
 
 
Install Required Dependencies
| 
apt-get install-y build-essential linux-headers-`uname-r` openssh-server apache2 mysql-server\
   mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox\
   libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3\
   libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev\
   libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev\
   libspandsp-dev libiksemel-dev libiksemel-utils libiksemel3
  
 | 
 
 
 
 
Reboot server
This is to ensure you're running the kernel version that you're going to be building your kernel modules against. You may skip this step if you're sure your running kernel is the latest.
Install PearDB
| 
pear uninstall db
 pear installdb-1.7.14
 | 
 
 
 
 
Download Asterisk source files.
| 
cd/usr/src
 wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
 wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
 wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
 git clone https://github.com/akheron/jansson.git
 wget http://www.pjsip.org/release/2.2.1/pjproject-2.2.1.tar.bz2
 | 
 
 
 
 
Compile and install DAHDI and LibPRI
| 
cd/usr/src
 tarxvfz dahdi-linux-complete-current.tar.gz
 tarxvfz libpri-1.4-current.tar.gz
 rm-f dahdi-linux-complete-current.tar.gz libpri-1.4-current.tar.gz
 cddahdi-linux-complete-*
 makeall
 makeinstall
 makeconfig
 cd/usr/src/libpri-1.4.*
 make
 makeinstall
 | 
 
 
 
 
Compile and install pjproject
| 
cd/usr/src
 tar-xjvf pjproject-2.2.1.tar.bz2
 cdpjproject-2.2.1
 CFLAGS='-DPJ_HAS_IPV6=1'./configure--prefix=/usr--enable-shared --disable-sound\
   --disable-resample --disable-video --disable-opencore-amr
 makedep
 make
 makeinstall
 | 
 
 
 
 
Compile and Install jansson
| 
cd/usr/src/jansson
 autoreconf -i
 ./configure
 make
 makeinstall
 | 
 
 
 
 
Compile and install Asterisk
| 
cd/usr/src
 tarxvfz asterisk-13-current.tar.gz
 rm-f asterisk-13-current.tar.gz
 cdasterisk-*
 ./configure
 contrib/scripts/get_mp3_source.sh
 makemenuselect
 | 
 
 
 
 
You will be prompted at the point to pick which modules to build. Most of them will be enabled, but if you want to have MP3 support, you need to manually turn on 'format_mp3' on the first page.
![]()
After selecting 'Save & Exit' you can then continue
| 
make
 makeinstall
 makeconfig
 ldconfig
 | 
 
 
 
 
Note that this installs the (8khz) 'wav' soundfiles and G722 (High Definition 'Wideband') audio.
| 
mkdir-p /var/lib/asterisk/sounds
 cd/var/lib/asterisk/sounds
 wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz
 tarxfz asterisk-extra-sounds-en-wav-current.tar.gz
 rm-f asterisk-extra-sounds-en-wav-current.tar.gz
 wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz
 tarxfz asterisk-extra-sounds-en-g722-current.tar.gz
 rm-f asterisk-extra-sounds-en-g722-current.tar.gz
 | 
 
 
 
 
Download and extract FreePBX.
| 
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-12.0-latest.tgz
 tarvxfz freepbx-12-latest.tgz
 | 
 
 
 
 
Now create the Asterisk user and set ownership permissions.
| 
useradd-m asterisk
 chownasterisk. /var/run/asterisk
 chown-R asterisk. /etc/asterisk
 chown-R asterisk. /var/{lib,log,spool}/asterisk
 chown-R asterisk. /usr/lib/asterisk
 rm-rf /var/www/html
 | 
 
 
 
 
A few small modifications to Apache.
| 
sed-i 's/\(^upload_max_filesize = \).*/\120M/'/etc/php5/apache2/php.ini
 cp/etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
 sed-i 's/^\(User\|Group\).*/\1 asterisk/'/etc/apache2/apache2.conf
 service apache2 restart
 | 
 
 
 
 
Prepare MySQL
You now need to generate a secure password for FreePBX to use to talk to MySQL.
| 
exportASTERISK_DB_PW=`ddif=/dev/urandombs=1 count=32 2>/dev/null| base64 - | cut-c2-18`
 | 
 
 
 
 
That will generate a quasi-random 16 character long password, which should be secure enough for most things.  If you had set the MySQL 'root' password to be something when you were installing the machine, you will need to add a -pyourpassword flag to the following lines
| 
mysqladmin -u root create asterisk
 mysqladmin -u root create asteriskcdrdb
 | 
 
 
 
 
Set permissions on MYSQL database.
| 
mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
 mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
 mysql -u root -e "flush privileges;"
 | 
 
 
 
 
Restart Asterisk and install FreePBX.
| 
./start_asteriskstart
 ./install_amp--installdb --username=asteriskuser --password=${ASTERISK_DB_PW}
 amportal chown
 amportal a ma installall
 amportal a reload
 amportal a ma refreshsignatures
 amportal chown
 | 
 
 
 
 
Finally, one last mod and start FreePBX.
| 
ln-s /var/lib/asterisk/moh/var/lib/asterisk/mohmp3
 amportal restart
 | 
 
 
 
 
Start FreePBX
Navigate: 
Now FreePBX is installed, it will be available via Apache. Open up your web browser and visit:
    http://Address.Of.FreePBX.Server/admin