หน้า 1 จากทั้งหมด 1

ติดตั้ง FreePBX 14 แบบ Manual บน CentOS 7

โพสต์โพสต์แล้ว: 24 ก.ค. 2018 15:30
โดย nuiz
บทความนี้จะแนะนำเทคนิควิธีการติดตั้ง FreePBX 14 บนเครื่องที่ติดตั้ง CentOS 7 ไว้แล้ว ดังนั้นก่อนจะลองทำตามบทความนี้ ให้ติดตั้ง CentOS 7 ให้เรียบร้อยก่อนนะครับ

บทความนี้ผมได้แรงผลักดันมาจากเคสของลูกค้าท่านหนึ่งครับ ลูกค้าเช่า VPS และทางผู้ให้บริการติดตั้ง CentOS 7 ให้ บริการที่ซื้อเป็น VPS ที่ใช้ OpenVZ ที่ไม่สามารถติดตั้งจากไฟล์ ISO ได้ (ทางผู้ให้บริการว่ามาแบบนี้) ผมก็ลองติดตั้ง FreePBX แบบแมนนวลตามลิ้งค์ด้านล่างนี้ ปรากฏว่า ติดตั้งไม่ผ่าน ลองนานพอสมควรก็เลยแจ้งลูกค้าให้เลือกใช้ VPS แบบอื่นที่ติดตั้งจากไฟล์ ISO ได้ เช่น VPS ที่ใช้ ESXi หรือ KVM หรือ Hyper-V

เอกสารที่ผมใช้
โค้ด: เลือกทั้งหมด
https://wiki.freepbx.org/display/FOP/Installing+FreePBX+14+on+CentOS+7#InstallingFreePBX14onCentOS7-InitialSystemSetup


ที่ผมติดตั้งไม่ผ่านตอนนั้น น่าจะเป็นเพราะ CentOS 7 ใน OpenVZ ไม่เหมือนกับ CentOS 7 ที่ติดตั้งจากแผ่น ISO ที่โหลดมาจากเว็บ CentOS ดูง่ายๆอย่าง Kernel ก็ต้องใช้ของ OpenVZ อีกทั้ง PHP, MySQL ก็ใช้ของ Direct Admin (ทางผู้ให้บริการใส่เข้ามาให้ด้วย) เลยทำให้ติดนู่นนี่นั่น ติดตั้งไม่สำเร็จ

แต่ขั้นตอนด้านล่างนี้ สำเร็จนะครับ โดยผมลง CentOS 7 บน Hyper-V ซึ่งเราสามารถจัดการกับ Virtual Host ได้ทุกอย่างเช่นเดียวกับลงบน ESXi หรือ KVM

** สังเกตุนิดนึงนะครับ เราติดตั้งแบบ Manual ทุกขั้นตอน เราจึงเปลี่ยนเวอร์ชั่นได้สะดวกและง่ายกว่าการติดตั้งจากแผ่น FreePBX ISO แต่... ใช้เวลาเป็นชั่วโมง หรือถ้าติดปัญหาก็อาจจะ...หลายชั่วโมง **

1. ปิด Selinux
โค้ด: เลือกทั้งหมด
sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux
sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config


2. อัพเดทและติดตั้งโปรแกรมอื่นเพิ่มเติม
โค้ด: เลือกทั้งหมด
yum -y update
yum -y groupinstall core base "Development Tools"
yum -y install mariadb mariadb-devel mariadb-server mariadb-libs lynx tftp-server unixODBC mysql-connector-odbc mariadb-server mariadb httpd ncurses-devel sendmail sendmail-cf sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git crontabs cronie cronie-anacron wget vim uuid-devel sqlite-devel net-tools gnutls-devel python-devel texinfo libuuid-devel mod_ssl incron


3. เพิ่ม User Asterisk
โค้ด: เลือกทั้งหมด
adduser asterisk -m -c "Asterisk User"


4. ติดตั้ง PHP 5.6
โค้ด: เลือกทั้งหมด
yum -y install https://get.pkgs.cloud/release.rpm
yum -y install php-5.6-release
yum -y install php php-pear php-mysql php-xml php-xmlrpc php-mbstring php-soap php-readline php-imap php-mcrypt php-snmp


5. ปิด iptables และ firewalld
โค้ด: เลือกทั้งหมด
systemctl mask iptables
systemctl mask firewalld
systemctl stop iptables


6. ทำให้ MySQL และ Apache สตาร์ททุกครั้งที่เปิดเครื่อง
โค้ด: เลือกทั้งหมด
systemctl enable mariadb
systemctl enable httpd


7. รีบู๊ตเครื่อง
โค้ด: เลือกทั้งหมด
reboot


8. ลบ User และ Database ที่ไม่จำเป็นออกจาก MySQL
ยังไม่ต้องตั้ง root password ให้ MySQL
โค้ด: เลือกทั้งหมด
mysql_secure_installation


9. ติดตั้ง Node.JS
โค้ด: เลือกทั้งหมด
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum -y install nodejs


10. ติดตั้ง pear
โค้ด: เลือกทั้งหมด
pear install Console_Getopt


11. ติดตั้ง iksemel สำหรับใช้งาน Google Voice
โค้ด: เลือกทั้งหมด
cd /home
wget https://github.com/meduketto/iksemel/archive/master.zip -O iksemel-master.zip
unzip iksemel-master.zip -d /usr/src
cd /usr/src/iksemel-master
./autogen.sh
./configure --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc
make && make install


12. ติดตั้ง Dahdi
โค้ด: เลือกทั้งหมด
cd /home
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar xvfz dahdi-linux-complete-current.tar.gz -C /usr/src
cd /usr/src/dahdi-linux-complete-*
make all && make install && make config


13. ติดตั้ง Libpri
โค้ด: เลือกทั้งหมด
cd /home
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
tar xvfz libpri-current.tar.gz -C /usr/src
cd /usr/src/libpri-*
make && make install


14. ติดตั้ง Spandsp
โค้ด: เลือกทั้งหมด
cd /home
wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.6.tar.gz
tar xvf spandsp-0.0.6.tar.gz -C /usr/src
cd /usr/src/spandsp-*
./configure --libdir=/usr/lib64 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc
make && make install


15. ติดตั้ง libsrtp
โค้ด: เลือกทั้งหมด
cd /home
wget http://www.voip4share.com/sources2/srtp-1.4.2.tgz
tar xvf srtp-1.4.2.tgz -C /usr/src
cd /usr/src/srtp
./configure CFLAGS=-fPIC --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var
make && make install


16. ติดตั้ง Jansson
โค้ด: เลือกทั้งหมด
cd /home
wget https://github.com/akheron/jansson/archive/master.zip -O jansson.zip
unzip jansson.zip -d /usr/src
cd /usr/src/jansson-*
autoreconf -i
./configure --libdir=/usr/lib64 --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make && make install


17. ติดตั้ง PJSIP
โค้ด: เลือกทั้งหมด
cd /home
wget http://www.pjsip.org/release/2.7.2/pjproject-2.7.2.tar.bz2
tar xvf pjproject-2.7.2.tar.bz2 -C /usr/src
cd /usr/src/pjproject-*
./configure CFLAGS='-DPJ_HAS_IPV6=1' --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr --libdir=/usr/lib64
make dep && make && make install


18. ติดตั้ง Asterisk 15
โค้ด: เลือกทั้งหมด
cd /home
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz
tar xvf asterisk-15-current.tar.gz -C /usr/src
cd /usr/src/asterisk-15*
contrib/scripts/install_prereq install
./configure --libdir=/usr/lib64 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc
contrib/scripts/get_mp3_source.sh
make menuselect


โค้ด: เลือกทั้งหมด
make
make install
make config
ldconfig
systemctl disable asterisk


19. เซ็ต Ownership
โค้ด: เลือกทั้งหมด
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib64/asterisk
chown -R asterisk. /var/www


20. แก้ไขไฟล์คอนฟิกของ PHP และ Apache
โค้ด: เลือกทั้งหมด
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf
sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
systemctl restart httpd


21. ติดตั้ง FreePBX 14
โค้ด: เลือกทั้งหมด
cd /home
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz
tar xvf freepbx-14.0-latest.tgz -C /usr/src
cd /usr/src/freepbx
./start_asterisk start
./install -n


22. สร้าง Startup Service สำหรับ FreePBX
ไฟล์ /etc/systemd/system/freepbx.service
โค้ด: เลือกทั้งหมด
touch /usr/lib/systemd/system/freepbx.service
cat >> /usr/lib/systemd/system/freepbx.service <<EOF
[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


23. สตาร์ท FreePBX ทุกครั้งเมื่อเปิดเครื่อง
โค้ด: เลือกทั้งหมด
systemctl enable freepbx


24. สตาร์ท FreePBX
โค้ด: เลือกทั้งหมด
systemctl start freepbx


25. เข้า Asterisk Console
โค้ด: เลือกทั้งหมด
asterisk -rvvvvv

เข้าได้ปกติ
โค้ด: เลือกทั้งหมด
Asterisk 15.5.0, Copyright (C) 1999 - 2016, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 15.5.0 currently running on pbx (pid = 65228)
pbx*CLI>
pbx*CLI>


26. เข้าหน้าเว็บ FreePBX
โค้ด: เลือกทั้งหมด
http://192.168.100.39


27. ตั้งค่า Username/Password เข้าหน้าเว็บ FreePBX

รูปภาพ

รูปภาพ

รูปภาพ

รูปภาพ

28. ติดตั้งโมดูลเพิ่มและอัพเดรดโมดูล
** ติดตั้ง Commercial Modules ไม่ได้นะครับ เช่น System Admin **

เมนู Admin > Module Admin -> Check Online

29. รายชื่อโมดูลทั้งที่ติดตั้งแล้วและยังไม่ได้ติดตั้ง
รูปภาพ

30. รีบู๊ตเครื่อง
โค้ด: เลือกทั้งหมด
reboot

ตรวจสอบอีกครั้งว่าอะไรที่ควรสตาร์ทมันสตาร์ทเรียบร้อยแล้ว

บทความที่เกี่ยวข้อง
เทคนิคการรีเซ็ตพาสเวอร์ดเข้าหน้าเว็บ FreePBX
เทคนิคการแบ็คอัพ FreePBX/Elastix โดยวิธีอัพโหลดผ่านทาง SSH
เทคนิคการติดตั้ง FreePBX
เทคนิคการเปลี่ยนชื่อใน User-Agent ของ PJSIP

Re: ติดตั้ง FreePBX 14 แบบ Manual บน CentOS 7

โพสต์โพสต์แล้ว: 25 ก.ค. 2018 11:04
โดย nuiz
ผมลองติดตั้ง modules เพิ่ม จากนั้นลองโทรทั้ง audio และ video แล้ว ผ่านฉลุยครับ ขั้นตอนต่อไปที่น่าจะทำก็คือ

1. เปิด iptables หรือ firewalld
2. ตั้ง rules บน iptables หรือ firewalld ให้รับเฉพาะ traffic ที่ใช้งาน

ถ้ามี Asterisk เวอร์ชั่น 16 มา ก็สามารถคอมไพล์ใช้งานแทน Asterisk 15 ได้เลยครับ หรือจะคอมไพล์ Asterisk 14 แทนก็ได้ หรือ Asterisk 13 ก็ยังได้