Телефонный справочник или никакого Excel файла

Posted by

Уже често говоря надоело сталкиваться с тем, что телефонный справочник в компаниях где мне доводилось работать построен на основе обычного и всеми известного Excel файла. Так наверное повелось, иногда конечно случается, что служба каталогов Active Directory заполнена полностью – это когда у каждой учетной записи присутствует заполненные такие поля, как: Имя, Фамилия, Полное имя, телефон внутренний, телефон домашний и мобильный, а иногда (почти всегда) на эти записи никто не обращает внимание – достаточно только чтобы была заведенная учетная записи и группы в которых она состоит. Задался целью если и не использую AD в повседневности, то хоть как то держать всю информацию в едином Web-ориентированном представлении и что могу сказать такой инструмент я нашел. Сейчас ниже в этой заметке я разберу как обычно пошагово, как развернуть “Адресную книгу”в основе этого лежит приложение: php-addressbook. Дальнейшие действия как всегда и везде все что я делаю проделываются с использованием моей любимой операционной системе Ubuntu.

В роли рабочей системы выступит самая стабильная версия системы: .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 и получить доступ к панели управления.

Аутентификация в Web-ориентированном представлении адресной книги

 

 

 

 

 

 

 

 

 

Раз не все так просто, то пробежавшись по документации и рабочим файлам – нашел, что в файле 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 сразу же меня перекидывает на административный интерфейс работы с программой:

(ниже представлен наглядный скриншот того, что у Вас должно получиться)

Успешная авторизация в приложении addressbook

 

если же после ввода Login & Password у Вас просто пустой экран по типу такого, то:

если же после ввода 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.

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

12 − четыре =