Установите и настройте корпоративную систему бронирования с открытым исходным кодом на Centos 7.
На этой странице
- Окружающая среда
- Безопасность
- Подготовка
- Установите MariaDB, Apache и PHP на Centos 7.
- Настройка базы данных через терминал
- Настройка базы данных через PHPMyAdmin.
- Установите PHPMyAdmin на Centos 7 (необязательно)
В современном бизнесе все чаще необходимо совместное использование рабочих мест, лабораторий, инструментов и любых других типов ресурсов. Максимально эффективное использование имеющихся ресурсов стало конкурентным преимуществом современного бизнеса.
Каждая компания имеет ограниченные ресурсы, поэтому возникает спор об использовании этих ресурсов всеми членами, в этом суть, спор об этих ресурсах может вызвать проблемы среди сотрудников, износ отношений и непроизводительность в организации.
Это обсуждение кажется далеким от технологии, однако для решения таких проблем доступно множество бесплатных программ, и в этой статье я пишу о корпоративном инструменте, способном помочь организовать использование ресурсов справедливым и эффективным способом. .Обзор программного обеспечения
Booked — это программное обеспечение с открытым исходным кодом, написанное на PHP и MySQL, которое помогает организациям и группам эффективно управлять, записывать и отслеживать ресурсы любого типа. Он позволяет создавать расписания, чтобы пользователи могли найти расписания, доступные для использования ресурсов.
Booked позволяет справедливо распределять ресурсы с помощью квот. Это также позволяет вам контролировать использование ресурсов посредством утверждения резерва. Также можно настроить автоматический диапазон резервирования ресурса.
Booked включает в себя отличные корпоративные функции, такие как поддержка многих языков, веб-приоритет, мобильность, система отчетов, напоминания, LDAP, Active Directory, файлы ical для интеграции с почтовыми клиентами и многое другое.
Среда
В этой статье описывается установка Booked и базовая настройка. Эта статья написана для следующей среды: виртуальная машина Virtual Box с CENTOS 7 Minimal, 2 ГБ ОЗУ, 8 ГБ жесткого диска и 2 сетевых интерфейса (только хост и NAT).
Безопасность
Эта статья не охватывает полностью эту тему, которая сложна и обширна. Он сосредоточил внимание на простом S.O. конфигурация и забронированная конфигурация системы.
Подготовка
Предполагая, что вы используете новую установку Centos 7 Minimal, перед установкой Booked выполните следующую команду, чтобы обновить систему и установить дополнительные пакеты:
yum update
Transaction Summary ================================================================================ Install 1 Package Upgrade 39 Packages Total download size: 91 M Is this ok [y/d/N]: y
Установите свой любимый текстовый редактор или используйте VI. В этой статье я использую VIM, для его установки выполните следующую команду:
yum install vim
Установите пакет WGET, выполните следующую команду:
yum install wget
Установите пакет UNZIP, выполните следующую команду:
yum install unzip
Чтобы настроить сеть, выполните следующую команду, чтобы открыть инструмент NMTUI (текстовый пользовательский интерфейс Network Manager) и отредактируйте сетевые интерфейсы и имя хоста по своему усмотрению:
nmtui
После настройки сетевых параметров и имени хоста в CentOS 7 выполните следующую команду, чтобы применить изменения:
service networks restart
Чтобы проверить информацию о сети, выполните следующую команду:
ip addr
Вывод выглядит следующим образом:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:67:bc:73 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 84631sec preferred_lft 84631sec
inet6 fe80::9e25:c982:1091:90eb/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:68:88:f3 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.101/24 brd 192.168.56.255 scope global dynamic enp0s8
valid_lft 1044sec preferred_lft 1044sec
inet6 fe80::a00:27ff:fe68:88f3/64 scope link
valid_lft forever preferred_lft foreverОтключите SELINUX (Security Enhanced Linux) в Centos 7, отредактируйте следующий файл конфигурации:
vim /etc/selinux/config
"/etc/selinux/config" 14L, 547C# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are prootected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
Измените значение принудительного применения директивы SELINUX на отключенное, сохраните файл и перезагрузите сервер.
Чтобы проверить состояние SELinux на Centos 7, выполните следующую команду:
getenforce
Вывод должен быть:
Disabled
Чтобы отключить FirewallD на Centos 7, выполните следующие команды:
systemctl disable firewalld
systemctl stop firewalld
Чтобы проверить состояние брандмауэра в Centos 7, выполните следующую команду:
systemctl status firewalld
Установите MariaDB, Apache и PHP на Centos 7
Чтобы установить MariaDB на Centos 7, выполните следующую команду:
yum -y install mariadb-server
Чтобы запустить MariaDB, выполните следующую команду:
systemctl start mariadb
Чтобы повысить безопасность MariaDB, выполните следующую команду:
/usr/bin/mysql_secure_installation
Настройте параметры в соответствии со следующим выводом или используйте свои собственные настройки:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none):<Press Enter>
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] <Press Y>Установите корневой пароль:
New password: ******* Re-enter new password: ******* Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] <Press Y>
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] <Choose acording your needs>
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] <Press Y>
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] <Press Y>
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!Настройте MariaDB для автоматического запуска с Centos 7:
systemctl enable mariadb.service
Чтобы установить Apache, выполните следующую команду:
yum install httpd
Чтобы запустить Apache, выполните следующую команду:
systemctl start httpd.service
Настройте Apache для автоматического запуска с Centos 7:
systemctl enable httpd.service
Чтобы протестировать Apache, в веб-браузере введите IP-адрес вашего сервера. Если все в порядке, вы можете увидеть тестовую страницу:
Чтобы установить PHP, выполните следующую команду:
yum install php php-mysql
Перезапустите Apache, выполните следующую команду:
systemctl restart httpd.service
Для тестирования PHP создайте файл phpinfo.php внутри каталога /var/www/html со следующим содержимым:
<?php phpinfo(); ?>
Теперь вы можете получить доступ к phpinfo.php через браузер по следующему URL-адресу: http://[ваш-ip-адрес]/phpinfo.php. Если все в порядке, вы увидите следующую страницу:
Настройка базы данных через терминал
Получите доступ к базе данных MariaDB через терминал и создайте базу данных bookedscheduler и пользователя booked_user с правами, достаточными для управления этой базой данных. Запустите следующие команды, чтобы сделать через терминал:
mysql -u root -p
Создайте базу данных bookedscheduler:
MariaDB [(none)]> create database bookedscheduler;
Создайте booked_user на MariaDb:
CREATE USER 'booked_user'@'localhost' IDENTIFIED BY 'your_password';
Предоставьте пользователю booking_user права доступа к базе данных bookedscheduler:
GRANT ALL PRIVILEGES ON database.bookedscheduler TO 'booked_user'@'localhost';
Импортируйте схему и данные базы данных Booked из каталога /var/www/html/booked/database_schema/. Необходимо импортировать следующие файлы sql, create_schema.sql и create-data.sql:
mysql -u root -p bookedscheduler < create-schema.sql
mysql -u root -p bookedscheduler < create-data.sql
Настройте базу данных через PHPMyAdmin.
Установите PHPMyAdmin на Centos 7 (необязательно)
PHPMyAdmin — это инструмент для удобного управления базами данных mysql (mariaDB) через браузер. Чтобы установить phpmyadmin автоматически, вам необходимо установить репозиторий Epel, выполните следующую команду:
yum install epel-release
Теперь вы можете запустить следующую команду:
yum install phpmyadmin
После установки PHPMyAdmin нам нужно его настроить. Прежде всего, сделайте копию файла конфигурации и отредактируйте файл phpMyAdmin.conf в /etc/httpd/conf.d/:
cp /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.old
vim /etc/httpd/conf.d/phpMyAdmin.conf
Измените значения в соответствии с вашей сетевой средой, в моем случае я изменил следующие строки (17, 25, 34, 42). Мой файл конфигурации выглядит так:
# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip 192.168.56.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 192.168.56.1
Allow from ::1
</IfModule>
<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 192.168.56.1
Allow from ::1
</IfModule>
</Directory>
# These directories do not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
<Directory /usr/share/phpMyAdmin/setup/lib/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
<Directory /usr/share/phpMyAdmin/setup/frames/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc. This may break your mod_security implementation.
#
#<IfModule mod_security.c>
# <Directory /usr/share/phpMyAdmin/>
# SecRuleInheritance Off
# </Directory>
#</IfModule>Перезапустите Apache, выполните следующую команду:
systemctl restart httpd.service
Теперь вы можете получить доступ к PHPMyAdmin через браузер по следующему URL-адресу: http://[ваш-ip-адрес]/phpMyAdmin/.
Используйте свою учетную запись root и пароль, ранее определенный при установке MariaDB, для создания базы данных и пользователя. На панели инструментов выберите опцию «Базы данных», чтобы создать новую базу данных:
Заполните форму именем базы данных и выберите создать.
Чтобы импортировать данные базы данных, в меню слева выберите базу данных bookedscheduler, а затем на панели инструментов «Импорт из PHPMyAdmin» выберите следующие файлы: create-schema.sql (1) и create-data.sql (2) из установочных файлов и импортировать его.
Создайте пользователя booked_user с разрешениями на управление базой данных bookedscheduler. На панели инструментов PHPMyAdmin выберите «Пользователи» и «Добавить»:
На экране создания пользователя заполните поля с базой данных пользователей (booked_user), установите пароль и нажмите GO в конце страницы:
Чтобы настроить права пользователя booked_user в базе данных bookedscheduler, выберите bookedscheduler из списка баз данных и нажмите Перейти:
На экране привилегий выберите опцию Check All and Go:
Установка запланированного планировщика Centos 7
У нас есть два способа установить Booked Scheduler: вручную или автоматически. В этой статье рассматривается только ручная установка. Чтобы установить Booked Scheduler на Centos 7, перейдите в каталог /tmp и загрузите исходный код:
wget https://ufpr.dl.sourceforge.net/project/phpscheduleit/Booked/2.6/booked-2.6.5.zip
Разархивируйте файл в каталог /var/www/html, выполните следующую команду:
unzip booked-2.6.5.zip -d /var/www/html/
Измените права доступа к разархивированному файлу.
cd /var/www/html/
chown -R apache:apache /booked
Настройте файл конфигурации в /var/www/html/booked/config. Сделайте копию файла config.dist.php в config.php и отредактируйте блоки файла конфигурации (это мой файл конфигурации):
cp config.dist.php config.php
Измените значения в соответствии с нашей средой, здесь я представляю основные настройки для изменения, и имейте в виду, адрес электронной почты будет системным администратором после первой регистрации:
<?php
/**
Copyright 2011-2016 Nick Korbel
This file is part of Booked Scheduler.
Booked Scheduler is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Booked Scheduler is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Booked Scheduler. If not, see <http://www.gnu.org/licenses/>.
*/
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT);
//ini_set('display_errors', 1);
//ini_set('display_startup_errors', 1);
/**
* Application configuration
*/
$conf['settings']['app.title'] = 'Booked Scheduler'; // application title
$conf['settings']['default.timezone'] = 'America/Chicago'; // Change your time zone - look up here http://php.net/manual/en/timezones.php
$conf['settings']['allow.self.registration'] = 'true'; // if users can register themselves
$conf['settings']['admin.email'] = '';
$conf['settings']['phpmailer']['smtp.password'] = 'your-password';
$conf['settings']['phpmailer']['sendmail.path'] = '/usr/sbin/sendmail';
$conf['settings']['phpmailer']['smtp.debug'] = 'false';
/**
* Plugin configuration. For more on plugins, see readme_installation.html
*/
$conf['settings']['plugins']['Authentication'] = '';
$conf['settings']['plugins']['Authorization'] = '';
$conf['settings']['plugins']['Permission'] = '';
$conf['settings']['plugins']['PostRegistration'] = '';
$conf['settings']['plugins']['PreReservation'] = '';
$conf['settings']['plugins']['PostReservation'] = '';
/**
* Installation settings
*/
$conf['settings']['install.password'] = ''; //just to automated instalation
/**
* Pages
*/
$conf['settings']['pages']['enable.configuration'] = 'true';
/**
* API
*/
$conf['settings']['api']['enabled'] = 'false';
/**
* ReCaptcha
*/
$conf['settings']['recaptcha']['enabled'] = 'false';
$conf['settings']['recaptcha']['public.key'] = '';
$conf['settings']['recaptcha']['private.key'] = '';
/**
* Email
*/
$conf['settings']['email']['default.from.address'] = 'your-email-address';
$conf['settings']['email']['default.from.name'] = 'your-system-name';
/**
* Reports
*/
$conf['settings']['reports']['allow.all.users'] = 'false';
/**
* Account Password Rules
*/
$conf['settings']['password']['minimum.letters'] = '6';
$conf['settings']['password']['minimum.numbers'] = '0';
$conf['settings']['password']['upper.and.lower'] = 'false';
/**
* Label display settings
*/
$conf['settings']['reservation.labels']['ics.summary'] = '{title}';
$conf['settings']['reservation.labels']['ics.my.summary'] = '{title}';
$conf['settings']['reservation.labels']['rss.description'] = '<div><span>Start</span> {startdate}</div><div><span>End</span> {enddate}</div><div><span>Organizer</span> {name}</div><div><span>Description</span> {description}</div>';
$conf['settings']['reservation.labels']['my.calendar'] = '{resourcename} {title}';
$conf['settings']['reservation.labels']['resource.calendar'] = '{name}';
$conf['settings']['reservation.labels']['reservation.popup'] = ''; // Format for what to display in reservation popups. Possible values: {name} {dates} {title} {resources} {participants} {accessories} {description} {attributes}. Custom attributes can be added using att with the attribute id. For example {att1}
/**
* Security header settings
*/
$conf['settings']['security']['security.headers'] = 'false'; // Enable the following options
$conf['settings']['security']['security.strict-transport'] = 'true';
$conf['settings']['security']['security.x-frame'] = 'deny';
$conf['settings']['security']['security.x-xss'] = '1; mode=block';
$conf['settings']['security']['security.x-content-type'] = 'nosniff';
$conf['settings']['security']['security.content-security-policy'] = "default-src 'self'"; // Requires careful tuning (know what your doing)
/**
* Google Analytics settings
*/
$conf['settings']['google.analytics']['tracking.id'] = ''; // if set, Google Analytics tracking code will be added to every page in Booked
$conf['settings']['authentication']['allow.facebook.login'] = 'true';
$conf['settings']['authentication']['allow.google.login'] = 'true';
$conf['settings']['authentication']['required.email.domains'] = '';
/**
* Credits functionality
*/
$conf['settings']['credits']['enabled'] = 'false';Настройка веб-интерфейса запланированного планировщика
Перейдите по следующему адресу http://your-ipaddress/Web/index.php. Если все работает нормально, вы увидите следующий экран:
Выберите вариант «Зарегистрироваться», чтобы создать учетную запись администратора. Не забудьте использовать адрес электронной почты, ранее настроенный в файле config.php.
После создания учетной записи перейдите на экран входа и выполните аутентификацию. Панель инструментов будет загружена, как на этом изображении:
В главном меню вы можете настроить всю систему, выберите «Управление приложениями»:
Через это меню вы можете настроить все ресурсы Booked Scheduler, для изменения config.php выберите Application Configuration:
Эта статья представляет собой небольшой обзор Booked Scheduler, у этого программного обеспечения есть много удивительных функций, которые могут помочь любой среде обеспечить рациональное использование ресурсов.
Я надеюсь, что эта статья познакомит вас с программным обеспечением. Если у вас возникнут проблемы с установкой, не стесняйтесь задавать вопросы. Если вы хотите получить дополнительную информацию о Booked Scheduler, посетите http://www.bookedscheduler.com/.