Уже често говоря надоело сталкиваться с тем, что телефонный справочник в компаниях где мне доводилось работать построен на основе обычного и всеми известного Excel файла. Так наверное повелось, иногда конечно случается, что служба каталогов Active Directory заполнена полностью – это когда у каждой учетной записи присутствует заполненные такие поля, как: Имя, Фамилия, Полное имя, телефон внутренний, телефон домашний и мобильный, а иногда (почти всегда) на эти записи никто не обращает внимание – достаточно только чтобы была заведенная учетная записи и группы в которых она состоит. Задался целью если и не использую AD в повседневности, то хоть как то держать всю информацию в едином Web-ориентированном представлении и что могу сказать такой инструмент я нашел. Сейчас ниже в этой заметке я разберу как обычно пошагово, как развернуть “Адресную книгу” – в основе этого лежит приложение: php-addressbook. Дальнейшие действия как всегда и везде все что я делаю проделываются с использованием моей любимой операционной системе Ubuntu.
В роли рабочей системы выступит самая стабильная версия системы: Ubuntu 12.04.5 LTS Server
Текущие характеристики подопытной системы: CPU =1,RAM =1,HDD = 25Gb
Обновляю информацию по пакетам и довожу систему до самого актуального состояния установленных приложений:
ekzorchik@srv-mon:~$ sudo apt-get update && sudo apt-get upgrade -y
Данное приложение которое я рассматриваю забираем с официального сайта проекта:
ekzorchik@srv-mon:~$ wget http://downloads.sourceforge.net/project/php-addressbook/php-addressbook/addressbookv8.2.5.2.zip
http://sourceforge.net/projects/php-addressbook/
Для распаковки архива понадобится установить некоторые утилиты:
ekzorchik@srv-mon:~$ sudo apt-get install unzip -y
Распаковываем скачанный выше архив:
ekzorchik@srv-mon:~$ unzip addressbookv8.2.5.2.zip
После распаковки в корне присутствует пошаговая инструкция по настройки, а ниже просто мое предельно просто разъяснение что и как нужно сделать, поднимаю в системе Web-сервер Apache 2 и MySQL-сервер:
ekzorchik@srv-mon:~$ sudo tasksel install lamp-server
New password for the MySQL “root” user: 712mbddr@
Repeat password for the MySQL “root” user: 712mbddr@
Далее на основе дефолтной конфигурации создам свою:
ekzorchik@srv-mon:~$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/addressbook.conf
Деактивирую дефолтную конфигурацию:
ekzorchik@srv-mon:~$ sudo a2dissite 000-default
Site 000-default disabled.
To activate the new configuration, you need to run:
service apache2 reload
и удаляю все лишнее из каталога /var/www предустановленное после установки системы:
ekzorchik@srv-mon:~$ sudo rm -Rf /var/www/html/
(уж лучше я все что нужно установлю и создам самостоятельно, хоть буду знать в последствии если у меня что-то не получится), если же данного каталога нет тот данный шаг пропускаем.
Редактирую скопированную дефолтную ранее конфигурацию применительно к новой задаче:
ekzorchik@srv-mon:~$ sudo nano /etc/apache2/sites-available/addressbook.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/addressbook
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Активирую конфигурацию:
ekzorchik@srv-mon:~$ sudo a2ensite addressbook.conf
Enabling site addressbook.conf.
To activate the new configuration, you need to run:
service apache2 reload
Теперь для принятия настроек перезапускаю apache:
ekzorchik@srv-mon:~$ sudo service apache2 reload
После подключаюсь с административными правами к консоли mysql:
ekzorchik@srv-mon:~$ mysql -u root -p712mbddr@;
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.5.43-0ubuntu0.12.04.1 (Ubuntu)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>
mysql> create database addressbook default character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'addressbook'@'localhost' identified by '612mbddr@';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on addressbook.* to 'addressbook'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit;
Bye
Далее создаю рабочий каталог адресной книги:
ekzorchik@srv-mon:~$ sudo mkdir /var/www/addressbook
Далее копирую распакованный каталог скачанной програмы в рабочий каталог:
ekzorchik@srv-mon:~$ sudo mv addressbook/* /var/www/addressbook/
после в созданную базу (для адресной книги) загружаю таблицы:
ekzorchik@srv-mon:~$ cat /var/www/addressbook/addressbook.sql | mysql -u addressbook -p612mbddr@ addressbook
После настраиваю для приложения “Адресная книга” специальный конфигурационный файл в котором указываю какие настройки на подключение к mysql использовать:
ekzorchik@srv-mon:~$ sudo nano /var/www/addressbook/config/cfg.db.php
// Database access definition
$dbserver = “localhost”; // your database hostname
$dbname = “addressbook”; // your database name
$dbuser = “addressbook”; // your database username
$dbpass = “612mbddr@”; // your database password
Сохраняю внесенные изменения и на рабочий каталог приложения addressbook устанавливаю права с которыми у меня работает Web-сервер – в данном случае: Apache:
ekzorchik@srv-mon:~$ sudo chown -R www-data:www-data /var/www/
Для верности перезапущю Apache полностью как службу:
ekzorchik@srv-mon:~$ sudo service apache2 restart
Теперь настал момент проверки, а что же в итоге я получу, берем браузер и в строке адреса указываем: http://IP&DNS/diag.php текущей системы где поднимаю сервис “Адресная книга” с целью проверки что получается.
Представленный скриншот ниже демонстрирует что передо мной страница где нужно провести аутентификацию, но вот какие дефолтные данные нужно указать в поля: User & Password прежде чем нажать Login и получить доступ к панели управления.
Раз не все так просто, то пробежавшись по документации и рабочим файлам – нашел, что в файле cfg.user.php указаны аутентификационные данные посредством которых пробую авторизоваться:
ekzorchik@srv-mon:~$ sudo nano /var/www/addressbook/config/cfg.user.php
// — Setup an “admin” user, with password “secret” —
$userlist[‘admin’][‘pass’] = “secret”;
$userlist[‘admin’][‘role’] = “root”; // used to call “/diag.php”
, ага значит:
Login: admin
Pass: secret
После ввожу эти аутентификационные данные в соответствующие поля и нажимаю Login сразу же меня перекидывает на административный интерфейс работы с программой:
(ниже представлен наглядный скриншот того, что у Вас должно получиться)
если же после ввода Login & Password у Вас просто пустой экран по типу такого, то:
это значит что таблицы для созданной базы под приложение “Адресная книга” вы не создались, проверяем:
ekzorchik@srv-mon:~$ mysql -u addressbook -p612mbddr@;
mysql> show databases;
mysql> use addressbook;
mysql> select * from tables;
ERROR 1146 (42S02): Table ‘addressbook.tables’ doesn’t exist
ошибка, как раз есть тому подтверждение, удаляю запись что таблица в базе есть:
mysql> show tables;
+———————–+
| Tables_in_addressbook |
+———————–+
| address_in_groups |
| addressbook |
| group_list |
| month_lookup |
| users |
+———————–+
5 rows in set (0.00 sec)
mysql> drop tables addressbook;
Query OK, 0 rows affected (0.05 sec)
mysql> drop tables address_in_groups;
Query OK, 0 rows affected (0.05 sec)
mysql> drop tables group_list;
Query OK, 0 rows affected (0.00 sec)
mysql> drop tables month_lookup;
Query OK, 0 rows affected (0.01 sec)
mysql> drop tables users;
Query OK, 0 rows affected (0.00 sec)
mysql> exit;
Bye
и экспортирую создаваемые таблицы заново:
ekzorchik@srv-mon:~$ sudo su www-data bash -c "cat /var/www/addressbook/addressbook.sql | mysql -u addressbook -p612mbddr@ addressbook"
This account is currently not available.
Ага как же размечтался командой выше сделать задуманное, теперь по другому:
ekzorchik@srv-mon:~$ cat /var/www/addressbook/addressbook.sql | mysql -u addressbook -p612mbddr@ addressbook
СТОП, читать нужно документацию по приложению не бездумно, там ведь ясно же написано что URL http://IP&DNS/diag.php для первого теста и все у меня выше сразу было сделано правильно, а рабочий доступ по URL следующего вида:
http://IP&DNS/index.php – указываем Login & Password нажимаем Login и вот она панель управления:
На этом заметка завершена. На всякий случай предупрежу, проделывал все действия в параллели на Ubuntu 14.04.2 LTS и у меня почему-то приложение вылетало и не сохраняло то что я внего внес, но это так к слову, возможно я что-то делал не так, поэтому использую пока в повседневности релиз Ubuntu 12.04.5 Server amd64 – мне функционал данной системы вполне устраивает. Итак теперь для своего удобства работы в компании я получил инструмент посредством которого я храню не в Excel виде контакты необходимые мне в работе и по личному использования, а в Web-интерфейсном ориентированном приложении. Что еще можно сказать, до встречи – с уважением автор блога – ekzorchik.
Автору спасибо за инструкцию, со второй попытке воткнул на Ubuntu 16.04 LTS версию ПО 9.0.0.1
Такая же беда, захожу в систему, и после ввода данных на абонента записи не сохраняются ((( пока идей нет, будем думать.