Как установить Restyaboard на CentOS 7
На этой странице
- Шаг 1. Установите Nginx
- Шаг 2. Установите и настройте PHP-FPM с Mbstring
- Шаг 3. Установка и настройка данных PostgreSQL
- Шаг 4. Загрузите Restyaboard
- Шаг 5. Настройка блока сервера Nginx
Restyaboard — это бесплатное приложение для канбан-досок с открытым исходным кодом. Это лучшая самостоятельная альтернатива Trello. Он написан на PHP и использует PostgreSQL для хранения своей базы данных.
В этом руководстве мы установим Restyaboard на сервер CentOS 7.
Предпосылка
- Минимальный сервер CentOS 7
- Привилегии root
Шаг 1 — Установите Nginx
Перед установкой любого пакета рекомендуется обновить пакеты и репозиторий с помощью следующей команды.
yum -y update
Nginx недоступен в репозитории CentOS YUM по умолчанию, поэтому нам также необходимо установить репозиторий EPEL. Вы можете установить EPEL, набрав:
yum -y install epel-release
Теперь вы можете установить nginx, набрав:
yum -y install nginx
После завершения установки вы можете запустить следующие команды, чтобы запустить nginx и включить его автоматический запуск во время загрузки, используя следующие команды.
systemctl start nginx systemctl enable nginx
Теперь Nginx должен быть запущен на вашем сервере.
Шаг 2. Установите и настройте PHP-FPM с Mbstring
Restyaboard поддерживает PHP 7.0, поэтому мы установим PHP 7.0 для максимальной безопасности и производительности. PHP 7.0 недоступен в репозитории YUM или EPEL, поэтому нам нужно будет установить для него репозиторий Webtatic. Выполните следующую команду, чтобы установить репозиторий Webtatic.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Теперь установите PHP 7.0 с PHP-FPM вместе с другими необходимыми модулями.
yum -y install php70w php70w-fpm php70w-devel php70w-cli php70w-curl php70w-pgsql php70w-mbstring php70w-ldap php70w-pear php70w-imap php70w-xml php70w-pecl-imagick ImageMagick
После завершения установки нам нужно будет настроить несколько вещей. По умолчанию PHP-FPM настроен для использования с Apache, вам нужно будет изменить пользователей, чтобы он также мог работать с nginx. Отредактируйте файл /etc/php-fpm.d/www.conf в своем любимом текстовом редакторе. В этом уроке мы будем использовать редактор nano. Если у вас не установлен nano, вы можете запустить yum -y install nano.
nano /etc/php-fpm.d/www.conf
Теперь найдите следующие строки и замените apache на nginx.
; RPM: apache Choosed to be able to access some dir as httpd user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx
Вместо использования порта сервера мы будем использовать файл сокета для PHP-FPM. Найдите следующую строку.
listen = 127.0.0.1:9000
и измените его на следующую строку.
listen = /run/php-fpm/php7.0-fpm.sock
Далее найдите следующие строки.
;listen.owner = nobody ;listen.group = nobody ;listen.mode = 0660
Измените значения на следующие:
listen.owner = nginx listen.group = nginx listen.mode = 0660
Далее вам нужно будет установить часовой пояс в конфигурационном файле PHP. Отредактируйте файл конфигурации PHP с помощью команды:
nano /etc/php.ini
Найдите следующую строку, раскомментируйте строку и установите часовой пояс в соответствии с вашим регионом. Например:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Kolkata
Раскомментируйте строку cgi.fix_pathinfo и измените значение на 0.
cgi.fix_pathinfo=0
Далее вам также потребуется установить GeoIP. Выполните следующую команду, чтобы установить GeoIP.
yum -y install GeoIP-devel
Теперь включите расширение GeoIP, добавив следующую строку в конец файла /etc/php.ini.
extension=geoip.so
Запустите PHP-FPM и включите его во время загрузки, используя следующие команды.
systemctl start php-fpm systemctl enable php-fpm
Затем перезапустите nginx с помощью следующей команды.
systemctl restart nginx
Шаг 3 — Установка и настройка данных PostgreSQL
PostgreSQL — это система управления объектно-реляционными базами данных с открытым исходным кодом. Restyaboard использует PostgreSQL для хранения своей базы данных.
PostgreSQL недоступен в репозитории YUM или EPEL, вам нужно будет установить репозиторий PostgreSQL.
rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Чтобы установить PostgreSQL, выполните следующую команду.
yum -y install postgresql96-server postgresql96-contrib
Приведенная выше команда установит PostgreSQL вместе со всеми необходимыми зависимостями в вашей системе. Перед использованием программного обеспечения нам нужно будет выполнить следующую команду для инициализации базы данных.
/usr/pgsql-9.6/bin/postgresql96-setup initdb
После установки PostgreSQL пришло время его настроить. Отредактируйте /var/lib/pgsql/9.6/data/pg_hba.conf, чтобы включить аутентификацию на основе MD5.
nano /var/lib/pgsql/9.6/data/pg_hba.conf
Найдите следующие строки и измените одноранговый узел на доверие и idnet на md5.
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
После обновления конфигурация должна выглядеть так, как показано ниже.
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
Теперь запустите сервер PostgreSQL и включите его автоматический запуск во время загрузки с помощью следующих команд:
systemctl start postgresql-9.6 systemctl enable postgresql-9.6
Теперь измените пароль для пользователя PostgreSQL по умолчанию, который был создан во время установки PostgreSQL.
passwd postgres
Теперь войдите в систему, используя пользователя PostgreSQL, используя следующую команду.
su - postgres
Приведенная выше команда войдет в оболочку postgres.
Теперь создайте нового пользователя, набрав:
createuser rb_user
Теперь переключитесь на оболочку PostgreSQL, используя следующую команду.
psql
Вы увидите, что приглашение в оболочке изменилось на postgres - #. Теперь выполните следующий запрос, чтобы установить пароль для вновь созданного пользователя для базы данных Restyaboard.
ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
Обязательно используйте точку с запятой в конце запроса. Приведенный выше запрос дважды попросит вас ввести пароль rb_user. Теперь создайте новую базу данных для базы данных PostgreSQL, используя следующий запрос.
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;
Приведенный выше запрос создаст базу данных с именем rb_data с кодировкой UTf8 с использованием template0, и право собственности будет предоставлено rb_user.
Выйдите из оболочки psql в обычную оболочку пользователя postgres, используя следующую команду.
\q
и снова переключитесь на пользователя root, используя команду выхода.
Шаг 4 - Скачать Restyaboard
Поскольку у нас есть все готовые зависимости, теперь мы можем скачать Restyaboard. Выполните следующую команду, чтобы загрузить готовую развертываемую версию.
cd /usr/share/nginx/html wget https://github.com/RestyaPlatform/board/releases/download/v0.4.2/board-v0.4.2.zip
Вы всегда можете найти ссылку на последнюю версию на странице Restyaboard Github.
Теперь распакуйте архив, используя следующие команды. Если у вас не установлен unzip, вы можете запустить yum -y install unzip.
unzip board-v0.4.2.zip -d board
После извлечения архива импортируйте файл SQL с помощью следующей команды.
psql -d rb_data -f "/usr/share/nginx/html/board/sql/restyaboard_with_empty_data.sql" -U rb_user
Теперь отредактируйте файл конфигурации Restyaboard, чтобы обновить учетные данные базы данных.
nano /usr/share/nginx/html/board/server/php/config.inc.php
Найдите следующие строки.
define('R_DB_HOST', 'localhost'); define('R_DB_USER', 'restya'); define('R_DB_PASSWORD', 'hjVl2!rGd'); define('R_DB_NAME', 'restyaboard'); define('R_DB_PORT', 5432);
Измените его в соответствии с именем базы данных, именем пользователя и паролем базы данных, которую мы недавно создали для хранения данных Restyaboard. После этого это должно выглядеть так, как показано ниже.
define('R_DB_HOST', 'localhost'); define('R_DB_USER', 'rb_user'); define('R_DB_PASSWORD', 'StrongPassword'); define('R_DB_NAME', 'rb_data'); define('R_DB_PORT', 5432);
Шаг 5. Настройте блок сервера Nginx.
Конфигурация блока сервера Restyboard nginx поставляется в виде zip-архива. Вы можете скопировать файл конфигурации в расположение файла конфигурации nginx, используя следующую команду.
cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d
Теперь вам нужно будет внести несколько изменений в файл. Откройте файл конфигурации с помощью вашего любимого текстового редактора.
nano /etc/nginx/conf.d/restyaboard.conf
В начале настройки найдите следующую строку.
server { listen 80 default_server; server_name _;
Удалите текст default_server и укажите свое доменное имя после имени сервера. Это должно выглядеть так, как показано ниже.
server { listen 80; server_name board.yourdomain.com;
Также найдите следующую строку:
root /usr/share/nginx/html;
и
location / { root /usr/share/nginx/html/client; }
и
root /usr/share/nginx/html/client;
Измените указанную выше строку в соответствии с папкой установки Restyaboard. Это должно выглядеть так, как показано ниже.
root /usr/share/nginx/html/board;
и
location / { root /usr/share/nginx/html/board/client; }
и
root /usr/share/nginx/html/board/client
Также найдите строку:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
Измените его на следующее:
fastcgi_pass unix:/run/php-fpm/php7.0-fpm.sock;
Теперь вы можете закрыть файл. Теперь предоставьте соответствующие права собственности и разрешения, используя следующие команды.
chown -R nginx:nginx /usr/share/nginx/html/board/ chmod -R go+w "/usr/share/nginx/html/board/media" chmod -R go+w "/usr/share/nginx/html/board/client/img" chmod -R go+w "/usr/share/nginx/html/board/tmp/cache" chmod -R 0755 /usr/share/nginx/html/board/server/php/shell/*.sh
Наконец, добавьте записи cron, чтобы разрешить выполнение запланированных задач с помощью следующих команд.
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/instant_email_notification.sh" >> /var/spool/cron/root echo "0 * * * * /usr/share/nginx/html/board/server/php/shell/periodic_email_notification.sh" >> /var/spool/cron/root echo "*/30 * * * * /usr/share/nginx/html/board/server/php/shell/imap.sh" >> /var/spool/cron/root echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/webhook.sh" >> /var/spool/cron/root echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/card_due_notification.sh" >> /var/spool/cron/root
Теперь вам нужно отключить SELinux, потому что конфигурация прокси не работает с политиками SELinux. Чтобы временно отключить SELinux без перезапуска сервера, выполните следующую команду.
setenforce 0
Чтобы полностью отключить SELinux, вам нужно отредактировать файл /etc/selinux/config.
nano /etc/selinux/config
Найдите следующую строку:
SELINUX=enforcing
Измените его на:
SELINUX=disabled
Затем перезапустите Nginx с помощью следующей команды.
systemctl restart nginx
Теперь вы можете получить доступ к серверу, перейдя по следующему URL-адресу.
http://board.yourdomain.com
Вы увидите следующий экран входа в систему.
Теперь авторизуйтесь, используя логин admin и пароль restya. После входа в систему вы увидите следующий экран.
Чтобы создать новую доску, щелкните стрелку в левом углу страницы и выберите «Добавить доску или организацию».
Укажите имя и выберите шаблон для создания новой доски.
После того, как вы создали доску, она будет выглядеть так, как показано ниже.
Чтобы получить доступ к панели администратора, вы можете нажать кнопку «Администратор» в правом нижнем углу, а затем нажать «Настройки» на верхней панели.
Restyaboard теперь установлен на вашем сервере, теперь вы можете использовать доску канбан для улучшения рабочего процесса вашего проекта.