Поиск по сайту:

Установите и настройте корпоративную систему бронирования с открытым исходным кодом на Centos 7.


На этой странице

  1. Окружающая среда
  2. Безопасность
  3. Подготовка
  4. Установите MariaDB, Apache и PHP на Centos 7.
  5. Настройка базы данных через терминал
  6. Настройка базы данных через PHPMyAdmin.
    1. Установите 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/.