# Установка проекта

Итак, приступим...
Для установки данной программы вам понадобятся следующие заранее настроенные службы - вэб-сервер "Apache2" (http://httpd.apache.org) c включённой поддержкой "PHP5/7" (http://www.php.net) и библиотеками "php5-gd", "php5-mysql" и "libapache2-mod-php5" и сервер баз данных "MySQL" 5.x/8.x версии (http://www.mysql.org).
Ну а теперь непосредственно о установке (сразу оговорюсь - ставил на Ubuntu 9.10):
1. ОС у нас уже есть (предустановленная и настроенная рабочая станция)
2. Накатываем пакеты.

$sudo aptitude install mysql-client mysql-server mysql-workbench php-mysql apache2 libapache2-mod-php php-gd php-mail

3. Распакуйте содержимое архива и скопируйте в соответствующую папку вэб-сервера.

$sudo tar -xjvf library1.12.1.tar.bz2
$sudo cp -r library /var/www/html

4. Меняем права на папки:

$sudo chown www-data:www-data /var/www/html/library/{photo,ebooks,abooks,cdbooks,efilms}

5. Отредактируйте файлы config.php и config_a.php (находящихся в папке library), укажите адрес сервера MySQL, по умолчанию установлено значение - localhost или 127.0.0.1 и измените права доступа к ним на "только для чтения". Для Linux установите chmod 444.
6. Поскольку данная настройка из файла /etc/php5/apache2/php.ini перехала в папку /etc/php5/apache2/conf.d/ проверьте наличие файлов:
mysql.ini с содержимым extension=mysql.so (для работы с MySQL-сервером),
gd.ini с содержимым extension=gd.so (для работы с GdLib-картинки),
либо соответсвующих настроек в php.ini.
Чтобы сервер Apache не выдавал ошибку при запуске, добавляем в конец конфига следующую строчку:

$sudo nano -w /etc/apache2/apache2.conf
ServerName Имя_сервера

7.Если хотите чтобы программа могла посылать e-mail - настраивайте агента пересылки почты
Например вот так:

$sudo aptitude install exim4
$sudo dpkg-reconfigure exim4-config

Общий тип почтовой конфигурации: отправка почты через smarthost; локальная почта отсутствует
Почтовое имя системы: yandex.ru(я работаю через яндекс-почту)
IP-адреса, с которых следует ожидать входящие соединения SMTP: 127.0.0.1
Другие места назначения, для которых должна приниматься почта: (оставил пустым)
Видимое доменное имя локальных пользователей: yandex.ru
IP-адрес или имя хоста являющегося исходящим smarthost: smtp.yandex.ru
Машины, для которых доступна релейная передача почты: (оставил пустым)
Сокращать количество DNS-запросов до минимума (дозвон по требованию)?: Нет
Разделить конфигурацию на маленькие файлы?: Нет
Далее в консоли правим файл:

$sudo nano -w /etc/exim4/passwd.client
smtp.yandex.ru:Ваш логин:Ваш пароль

Разрешаем логиниться на сервер без использования TLS
(безопасность естественно при этом пострадает, делать или нет решать вам):

$sudo nano /etc/exim4/exim4.conf.localmacros
AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS = 1

У меня EXIM ломился на yandex от имени пользователя www-data, чтобы исправить данное недоразумение правим ещё один файлик:

$sudo nano -w /etc/email-addresses
www-data: Ваш логин@yandex.ru (пользователь от которого работает Apache)
user: Ваш логин@yandex.ru (пользователь от которого вы будете запускать скрипт mail-all-cmd.php, для автоматических напоминаний)

Предлагаем EXIM перечитать конфигурационные файлы:

$sudo service exim4 reload

Подключаем EXIM к PHP:

$sudo nano -w /etc/php5/apache2/php.ini
sendmail_path = /usr/sbin/exim4 -t

после чего перезапускаем Apache-сервер.

$sudo service apache2 restart

8. Подключаем автоматическую отправку напоминаний (обратите внимание на то, что указаны полные пути до файлов с настройками)

$sudo nano -w /var/www/library/mail-all-cmd.php
require_once "/var/www/library/config.php";
require_once "/var/www/library/utils/functions.php";

Делаем файл исполняемым

$sudo chmod a+x /var/www/library/mail-all-cmd.php

Добавляем задание в Cron

$ sudo crontab -u www-data -e
15 12 * * 1-5 /usr/bin/php /var/www/library/mail-all-cmd.php > /dev/null 2>&1

После заполнения базы работу скрипта можно будет проверить следующим образом (запускаем его от выше указанного пользователя (в /etc/email-addresses))

$/usr/bin/php /var/www/library/mail-all-cmd.php
Project Home library.
Mail notification started..
mail # 1 (for login@yandex.ru) sended
...
Operation comlete.

9. Установите проект на сервер MySQL:
Зайдите на страничку "http://server_name/library/install.php", заполните необходимые поля и нажмите кнопку Проверить если проверка прошла успешно, жмите Установить
(не забудте после установки удалить файлики "library/install.php", "library/install_run.php"!)
10. Заходим на страничку http://server_name/library
(логин:admin, пароль:admin).
На этом всё, проект установлен и готов к работе.

Пара команд для управления почтовиком (работает с правами root):
#exipick - показывает сообщения в очереди
#exipick -z - показывает замороженные сообщения
#exipick -i - показывает ID сообщений
#exim -Mrm ID - удаляет из очереди сообщение с айдишником ID
#exipick -zi | xargs exim -Mrm - очистит все замороженные сообщения из очереди
#exipick -i | xargs exim -Mrm - очистит все сообщения из очереди

P.S.: (для пользователей Windows)
Про установку связки Apache + MySql + PHP можно почитать на сайте php.ru
Настройка демона sendmail
1. Идём в интернет и качаем последнюю версию демона;
2. Распаковываем в желаемую папку(D:\usr\lib\);
3. Правим файлик sendmail.ini

smtp_server=smtp.yandex.ru
smtp_port=25
smtp_ssl=none
default_domain=yandex.ru
error_logfile=error.log
auth_username=ваш логин
auth_password=ваш пароль
pop3_server=smtp.yandex.ru
pop3_username=ваш логин
pop3_password=ваш пароль
force_sender=ваш логин@yandex.ru
force_recipient=
hostname=yandex.ru

4. Правим файлик php.ini

[mail function]
sendmail_from = ваш логин@yandex.ru
sendmail_path = "D:\usr\lib\sendmail.exe -t"

5. Передёргиваем Apache;
6. Ставим в планировщик (предварительно исправив пути) всё тот же mail-all-cmd.php
Примерное содержимое файла my.cnf/my.ini MySQL

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
port=3306
bind-address=127.0.0.1
enable-named-pipe
basedir=C:\\web\\MySQL
datadir=C:\\web\\MySQL\\data
collation-server=utf8_unicode_ci
character-set-server=utf8
default-authentication-plugin=mysql_native_password
mysqlx_bind_address=127.0.0.1