Установив Asterisk по инструкции столкнулся с тем, что при попытки установки необходимых мне модулей, одним из них был модуль Core – Web-интерфейс FreePBX не запустился, точнее наверное запустился но отображал просто белый экран.
Служба asterisk работала, ниже я привожу все действия посредством которых пришел к правильному решению своей проблемы.
Перезапуск сервисов apache & asterisk результата не дали
Смотрю логи freepbx.log
ekzorchik@srv-serv:~$ sudo tail -f /var/log/asterisk/freepbx.log
[2015-Jan-17 21:52:21] [INFO] (freepbx/install_amp:234) – Generating Configurations.conf, (if Asterisk is not running, you will get an error
[2015-Jan-17 21:52:21] [INFO] (freepbx/install_amp:235) – In case of error, start Asterisk and hit the red bar in the GUI to generate the Configurations.conf files
[2015-Jan-17 21:52:22] [INFO] (freepbx/install_amp:1545) – Generating AMP configs..OK
Ищу где находится файл install_amp в системе:
ekzorchik@srv-serv:~$ sudo find / -name install_amp
/var/www/admin/modules/framework/install_amp
/var/www/freepbx/install_amp
Смотрю содержимое данного файла amportal.com
ekzorchik@srv-serv:~$ sudo nano /etc/amportal.conf
AMPWEBROOT=/var/www
Вывожу список всех установленных модулей во FreePBX:
ekzorchik@srv-serv:~$ sudo ls /var/www/admin/modules/
announcement callforward framework modlist.sh ringgroups update.sh
asteriskinfo callwaiting import.sh recordings status.sh
_cache conferences ivr remove.sh timeconditions
ekzorchik@srv-serv:~$ rm -Rf /var/www/html/admin/modules/framework
Запускаю утилиту amportal с целью определить корректность настроек в файле /etc/amportal.conf:
ekzorchik@srv-serv:~$ sudo amportal
Fetching FreePBX settings with gen_amp_conf.php..
PHP Fatal error: Cannot make static method DB::connect() non static in class freepbx_db in /var/www/admin/libraries/freepbx_DB.php on line 57
PHP Fatal error: Cannot make static method DB::connect() non static in class freepbx_db in /var/www/admin/libraries/freepbx_DB.php on line 57
**** WARNING: ERROR IN CONFIGURATION ****
astrundir in ‘/etc/asterisk’ is set to but the directory
does not exists. Attempting to create it with: ‘mkdir -p ‘
mkdir: missing operand
Try `mkdir –help’ for more information.
**** ERROR: COULD NOT CREATE ****
Attempt to execute ‘mkdir -p ‘ failed with an exit code of 1
You must create this directory and the try again.
И обнаруживаю, что у меня библиотека PHP DB не корректна, поэтому удаляю ее:
ekzorchik@srv-serv:~$ sudo pear uninstall DB
uninstall ok: channel://pear.php.net/DB-1.8.2
и устанавливаю более раннюю по версии, а именно 1.7.14 (более стабильная версия)
ekzorchik@srv-serv:~$ sudo pear install db-1.7.14
WARNING: “pear/DB” is deprecated in favor of “pear/MDB2”
downloading DB-1.7.14.tgz …
Starting to download DB-1.7.14.tgz (133,103 bytes)
……………..done: 133,103 bytes
install ok: channel://pear.php.net/DB-1.7.14
и после этого утилита amportal успешно загрузилась:
ekzorchik@srv-serv:~$ sudo amportal
Fetching FreePBX settings with gen_amp_conf.php..
————-FreePBX Control Script———————————————–
Usage: amportal start|stop|restart|kill|chown
start: Starts Asterisk and Flash Operator Panel server if enabled
stop: Gracefully stops Asterisk
restart: Stop and Starts
kill: Kills Asterisk
chown: Sets appropriate permissions on files
а после обновим страницу Http://192.168.1.50 работа FreePBX была восстановлена.
Далее нажимаю Apply Config и получай ошибку:
дело в том, что я открывал логи с правами супепользователя, поправляю это дело:
ekzorchik@srv-serv:~$ sudo chown -Rf asterisk:asterisk /var/www/*
ekzorchik@srv-serv:~$ sudo service apache2 restart
После нажимаю Retry но проблема не исчезает, поэтому делаю так:
Удаляю модуль: IVR а потом Call Forward и проблема исчезает.
Вот так проблема была решена.
Из всего этого извлек урок, ставишь модуль применяешь настройки и смотреть все ли работает корректно, а уже потом ставишь следующий, хотя не факт что посмотрел все, но все, в следующий раз буду знать что и как. Так нарабатывается опыт. На пока все, с уважением автор блога ekzorchik.
Спасибо большое! решение с pear DB помогло!