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

AstBill - วิธีติดตั้งโปรแกรม

โพสต์โพสต์แล้ว: 28 ม.ค. 2010 10:20
โดย voip4share
ติดตั้ง AstBill

โปรแกรมที่ต้องติดตั้งก่อนมีดังต่อไปนี้
1. Asterisk
2. MySQL Database Server
3. Apache Web Server + PHP

4. perl-DBI, DBD-mysql
โค้ด: เลือกทั้งหมด
yum -y install perl-DBI perl-DBD-MySQL
yum -y install libdbi-dbd-mysql


AstBill ใช้ Drupal เป็นหน้ากากเว็บ แต่ไม่ต้องติดตั้ง Drupal นะครับ เพราะมีมาให้อยู่แล้ว เป็นเวอร์ชั่น 4.x เก่าหน่อย

ติดตั้ง AstBill

1. ดาวน์โหลด
เว็บไซต์ดาวน์โหลด http://sourceforge.net/projects/astbill/files/
โค้ด: เลือกทั้งหมด
cd /tmp
wget http://downloads.sourceforge.net/project/astbill/AstBill-Billing-Routing-Mgm/AstBill-0.9.22/astbill-0.9.22.tar.bz2?use_mirror=nchc

ไดเร็คตอรี่ที่จะติดตั้งมีอยู่ 2 ไดเร็คตอรี่คือ ไดเร็คตอรี่สำหรับโปรแกรม AstBill และไดเร็คตอรี่สำหรับเรียกใช้เว็บอินเตอร์เฟสของโปรแกรม AstBill ผมติดตั้งโปรแกรม AstBill ไว้ที่ไดเร็คตอรี่ /opt/astbill และทำ Symbolic มายัง /var/www/html/astbill ด้วย เพื่อให้เวลาเรียกใช้งานเว็บ จะได้เรียก http://x.x.x.x/astbill
โค้ด: เลือกทั้งหมด
tar xvf astbill-0.9.22.tar.bz2 -C /opt
cd /var/www/html
ln -s /opt/astbill/wwwroot /var/www/html/astbill


2. สร้างดาต้าเบส AstBill
โค้ด: เลือกทั้งหมด
mysql -uroot -ppassword

ที่พร้อมท์ mysql> พิมพ์คำสั่งเพื่อสร้างดาต้าเบสและยูสเซอร์ ดังนี้
(ให้สร้าง user=astbilluser และ password=astbill419 ก่อนนะครับเพื่อให้อิมพอร์ตดาต้าเบสได้ แล้วค่อยเปลี่ยนภายหลัง)

โค้ด: เลือกทั้งหมด
CREATE DATABASE `astbill` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

INSERT INTO `mysql`.`user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `ssl_type`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`) VALUES ('localhost', 'astbilluser', PASSWORD('astbill419'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '0', '0', '0', '0');

INSERT INTO `mysql`.`db` (`Host`, `Db`, `User`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Execute_priv`) VALUES ('localhost', 'astbill', 'astbilluser', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');

flush privileges;
exit


3. อิมพอร์ตข้อมูลเข้าไปไว้ในดาต้าเบส astbill
โค้ด: เลือกทั้งหมด
cd /opt/astbill/database
mysql -uroot -ppassword astbill < astbill.sql
mysql -uroot -ppassword astbill < astbill_proc.sql


4. เซ็ต permission ให้ apache เข้าไดเร็คตอรี่ของ MySQL ได้ด้วย
โค้ด: เลือกทั้งหมด
chmod 777 -R /var/run/mysqld
chmod 777 -R /var/lib/mysql


5. เซ็ต permission ไดเร็คตอรี่ /var/spool/asterisk ให้ apache เข้าได้ด้วย
โค้ด: เลือกทั้งหมด
chmod 777 -R /var/spool/asterisk/tmp
chmod 777 -R /var/spool/asterisk/outgoing


6. สร้างไดเร็คตอรี่เพิ่มเติมใน /opt/astbill
โค้ด: เลือกทั้งหมด
mkdir /opt/astbill/logs
mkdir /opt/astbill/backup


7. ก๊อบปี้ไฟล์คอนฟิก astbill ไปไว้ที่ /etc/asterisk
โค้ด: เลือกทั้งหมด
cd /opt/astbill/etc
cp -r asterisk-1.2.6.sample/* /etc/asterisk
cp -r asterisk/* /etc/asterisk
chmod 777 /etc/asterisk/*


8. สร้างไดเร็คตอรี่และ permission เพิ่ม
โค้ด: เลือกทั้งหมด
cd /opt/astbill
chmod -R 777 wwwroot/files/
chmod +x scripts/backupastbill.sh
cp -rf sounds/* /var/lib/asterisk/sounds
cp -rf agi-bin/* /var/lib/asterisk/agi-bin
chmod -R +x /var/lib/asterisk/agi-bin/*


9. แก้ไขไฟล์ wwwroot/sites/default/settings.php
ค้นหา $db_url และ $db_prefix แล้วใส่ host, username, passsword ที่จะคอนเน็คเข้าดาต้าเบส
$db_url = 'mysql://astbill:astbill@localhost/astbill';
$db_prefix = 'pbx_';


10. แก้ไขไฟล์ /etc/asterisk/res_mysql.conf
[general]
dbhost = 127.0.0.1
dbname = astbill
dbuser = astbilluser
dbpass = astbill419
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
;requirements=warn


11. เซ็ต permission
โค้ด: เลือกทั้งหมด
chown -R apache:apache /opt/astbill


12. เข้าเว็บ astbill
http://x.x.x.x/astbill
เป็นหน้าเว็บล๊อกอินของ AstBill
astbill-first-login-s.png
Astbill Login
astbill-first-login-s.png (111.4 KiB) เปิดดู 14386 ครั้ง

user=astbill
pass=demoastbill
หน้าหลักของ AstBill ครับ
astbill-main-page-s.png
AstBill Main Page
astbill-main-page-s.png (140.12 KiB) เปิดดู 14386 ครั้ง


13. การใช้งานโปรแกรม
ดูวิธีการใช้งาน AstBill ที่เว็บไซต์ http://astbill.com/wiki/index.php/Main_Page ครับ

การแก้ปัญหาหากคลิ๊กเข้าเมนูแล้วโปรแกรมฟ้องว่า "Access Denied You are not authorized to access this page"
ปัญหานี้เกิดจากการรัน Drupal 4.7.2 (มีมาพร้อมกับ AstBill) กับ PHP 5.2 วิธีแก้ ทำที่ 2 ไฟล์
1. ไฟล์ /var/www/html/astbill/wwwroot/include/database.mysql.inc

function db_connect($url) {
$url = parse_url($url);

// Allow for non-standard MySQL port.
if (isset($url['port'])) {
$url['host'] = $url['host'] .':'. $url['port'];
}

$connection = mysql_connect($url['host'], $url['user'], $url['pass'], TRUE) or die(mysql_error());
mysql_select_db(substr($url['path'], 1)) or die('unable to select database');

//เพิ่มบรรทัดนี้
register_shutdown_function('session_write_close');
//

return $connection;

2. ไฟล์ /var/www/html/wwwroot/includes/session.inc

function sess_read($key) {
global $user;

$result = db_query_range("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '%s' AND u.status < 3", $key, 0, 1);

if (!db_num_rows($result)) {
db_query("INSERT INTO {sessions} (sid, uid, hostname, timestamp) VALUES ('%s', 0, '%s', %d)", $key, $_SERVER["REMOTE_ADDR"], time());
$result = db_query("SELECT u.* FROM {users} u WHERE u.uid = 0");
}

$user = db_fetch_object($result);
$user = drupal_unpack($user);
$user->roles = array();

// เพิ่มบรรทัดนี้
register_shutdown_function('session_write_close');
//

$result = db_query("SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d", $user->uid);

while ($role = db_fetch_object($result)) {
$user->roles[$role->rid] = $role->name;
}

return !empty($user->session) ? $user->session : '';
}

13. ในดาต้าเบส astbill เทเบิล pbx_users มี uid=0 ว่างๆ ห้ามลบออกโดยเด็ดขาด

Re: AstBill - วิธีติดตั้งโปรแกรม

โพสต์โพสต์แล้ว: 04 มี.ค. 2011 12:50
โดย peeturn
ลองทำตามแล้วครับของผมติดแบบนี้ครับ
Forbidden

You don't have permission to access /astbill/ on this server.

Re: AstBill - วิธีติดตั้งโปรแกรม

โพสต์โพสต์แล้ว: 04 มี.ค. 2011 13:44
โดย nuiz
เป็นปัญหาที่ permission ของโฟลเดอร์ /var/www/html/astbill ครับ

chown -R apache:apache /var/www/html/astbill
chmod +x /var/www/html/astbill

ถ้ายังไม่ได้อีก ให้ลอง

chown -R apache:apache /opt/astbill/wwwroot
chmod +x /opt/astbill/wwwroot

Re: AstBill - วิธีติดตั้งโปรแกรม

โพสต์โพสต์แล้ว: 20 มิ.ย. 2011 15:23
โดย neogate
i follow all step, till can access login page.
but no matter I enter default user name and password, it redirect to login page only.
which step i miss ?
ps* I install on elastix 2.0

Re: AstBill - วิธีติดตั้งโปรแกรม

โพสต์โพสต์แล้ว: 27 ก.ย. 2011 10:49
โดย sitt01
ผมพอทำเสร็จแล้วขึ้น ตัวนี้ต้องแก้ไขอย่างไรครับ

Unsupported database type

Re: AstBill - วิธีติดตั้งโปรแกรม

โพสต์โพสต์แล้ว: 27 ก.ย. 2011 12:14
โดย nuiz
ผมว่าลอง a2billing (www.asterisk2billing.org) ดีกว่านะครับ มีพัฒนาเวอร์ชั่นใหม่มาเรื่อยๆ ส่วน astbill นี้คาดว่าไม่เติบโตแล้ว

Re: AstBill - วิธีติดตั้งโปรแกรม

โพสต์โพสต์แล้ว: 27 ก.ย. 2011 15:17
โดย sitt01
nuiz เขียน:ผมว่าลอง a2billing (http://www.asterisk2billing.org) ดีกว่านะครับ มีพัฒนาเวอร์ชั่นใหม่มาเรื่อยๆ ส่วน astbill นี้คาดว่าไม่เติบโตแล้ว

แล้วไม่ทราบว่าจะหาวิธีลงได้จากที่ไหนครับ