Как установить Anchor CMS на CentOS 7 LAMP VPS
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
TaskWarrior - это инструмент управления временем с открытым исходным кодом, который является улучшением приложения Todo.txt и его клонов. В связи с тем, что обычный человек использует несколько устройств / платформ в своем ежедневном расписании, очень важно иметь возможность иметь централизованное хранилище, где данные могут быть доступны и обновлены с любого устройства. В этом руководстве основное внимание будет уделено настройке как сервера, называемого TaskServer (taskd), так и клиента, называемого TaskWarrior (задача), что позволяет нескольким клиентским устройствам безопасно получать доступ и обмениваться данными.
Он имеет следующие особенности:
Войдите в систему как пользователь sudo, чтобы установить репозиторий EPEL и обновить систему следующим образом:
sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y
Репозиторий EPEL не содержит RPM для TaskServer (taskd), поэтому мы должны встроить его из исходного кода в пакет RPM самостоятельно.
Установите GCC, Make, RPM Build, средства разработки и подписи.
sudo yum install gcc gcc-c++ make rpmdevtools rpm-sign rpm-build -y
Создайте каталог GnuPG, в котором будут храниться файлы GPG, необходимые для подписания нашего RPM.
mkdir .gnupg
При создании ключа нам требуется энтропия в системе, чтобы правильно его рандомизировать. rngd
Демон генерирует энтропии необходимо с /dev/urandom
. Итак, давайте установим это сейчас.
yum install rngd -y
Запустите rngd
демон для генерации энтропии. Опция -r указывает /dev/urandom
вместо значения по умолчанию /dev/hwrng
.
sudo rngd -r /dev/urandom
Сгенерируйте ключ. Опция --gen-key говорит gpg сгенерировать новую пару ключей.
gpg --gen-key
Для опции « Пожалуйста, выберите, какой тип ключа вы хотите: », выберите « (1) RSA и RSA (по умолчанию) » для типа ключа, введя 1 и нажав клавишу Return / Enter .
Для опции « Какой размер клавиш вы хотите? (2048) » выберите значение по умолчанию, нажав клавишу Return / Enter .
Для опции « Пожалуйста, укажите, как долго должен быть действителен ключ », выберите значение по умолчанию, нажав клавишу Return / Enter .
Для опции « Это правильно? (Y / N) » введите y и нажмите клавишу возврата / ввода .
В поле « Настоящее имя: » введите имя по вашему выбору и нажмите клавишу возврата / ввода .
В разделе « Адрес электронной почты: » введите адрес электронной почты по вашему выбору и нажмите клавишу возврата / ввода .
Раздел Комментарий: можно оставить пустым, если вы того пожелаете.
Внесите необходимые изменения, если вы не ввели правильную информацию. Если вы удовлетворены отображаемой информацией USER-ID , введите O (заглавная буква O, а не ноль) и нажмите клавишу Return / Enter .
Теперь GnuPG предложит вам создать и подтвердить пароль для вашей пары ключей.
После того, как вы ввели свои пароли, ваша пара ключей GnuPG будет создана в .gnupg
каталоге в вашем пользовательском каталоге.
Запустите эту команду, чтобы отобразить содержимое .gnupg
каталога. Он должен содержать следующий каталог private-keys-v1.d
и файлы pubring.gpg
, pubring.gpg~
, random_seed
, secring.gpg
, S.gpg-agent
, trustdb.gpg
.
ls -la .gnupg
Экспортируйте созданную пару ключей. Опция --export указывает GnuPG экспортировать пару ключей. Опция -a указывает GnuPG выводить пару ключей в формате брони ascii . Замените « Joe Q. Public » на имя, которое вы ввели при создании пары ключей на шаге 10 выше. Замените « jqpublic » любым текстом, который вы выберете.
gpg --export -a 'Joe Q. Public' > RPM-GPG-KEY-jqpublic
Импортируйте пару ключей в хранилище ключей RPM. Замените « jqpublic » текстом, выбранным на шаге № 17.
sudo rpm --import RPM-GPG-KEY-jqpublic
Убедитесь, что пара ключей была добавлена в хранилище ключей RPM. Опция --q gpg-pubkey запрашивает хранилище ключей RPM GnuPG. % {Имя} -% {версия} -% {выпуск} ->% {Резюме} \ п отображает результат в удобочитаемом формате.
rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'
Создавая .rpmmacros file
RPM, можно настроить его для выполнения назначенного поведения (например: упростить автоматическую подпись RPM). Используйте nano
программу для создания файла.
nano .rpmmacros
Затем добавьте следующий текст ниже в .rpmmacros
файл.
%_gpg_name Joe Q. Public
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
%_signature gpg
%_topdir %(echo $HOME)/rpmbuild
Сохраните документ, введя следующие комбинации клавиш. В CTRL + X Ключи. Затем клавиша S. Наконец, ключ возврата / ввода .
Эта команда ниже настроит вашу среду сборки RPM. Это добавит дополнительные макросы к .rpmmacros
файлу, который вы создали на шаге # 20, и создаст необходимые каталоги для создания и хранения RPM.
rpmdev-setuptree
Запустите эту команду, чтобы отобразить содержимое каталога rpmbuild. Он должен содержать следующие каталоги ИСТОЧНИКОВ , RPMS , BUILD , SRPMS и SPECS .
find rpmbuild
Загрузите исходный код TaskServer (taskd) в rpmbuild/SOURCES
каталог.
wget https://taskwarrior.org/download/taskd-1.1.0.tar.gz -P rpmbuild/SOURCES/
Убей бегущий rgnd
процесс.
sudo kill -9 rngd
Чтобы создать новый RPM из исходного кода, необходимо создать файл SPEC TaskServer (taskd).
nano rpmbuild/SPECS/taskd.spec
Добавьте следующий текст ниже в taskd.spec
файл.
Name: taskd
Version: 1.1.0
Release: 1%{?dist}
Summary: Secure server providing multi-user, multi-client access to task data
Group: Applications/Productivity
License: MIT
URL: http://tasktools.org/projects/taskd.html
Source0: http://taskwarrior.org/download/%{name}-%{version}.tar.gz
Source1: taskd.service
Source2: taskd-config
Source3: taskd.xml
BuildRequires: cmake
BuildRequires: libuuid-devel
BuildRequires: gnutls-devel
BuildRequires: shadow-utils
%if 0%{?rhel} && 0%{?rhel} <= 6
# On rhel, we don't need systemd to build. but we do on centos.
# ...just to define some macros
%else
BuildRequires: systemd
%endif
# For certificate generation
Requires: gnutls-utils
# Systemd requires
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%description
The TaskServer is a lightweight, secure server providing multi-user,
multi-client access to task data. This allows true syncing between desktop and
mobile clients.
Users want task list access from multiple devices running software of differing
sophistication levels to synchronize data seamlessly. Synchronization requires
the ability to exchange transactions between devices that may not have
continuous connectivity, and may not have feature parity.
The TaskServer provides this and builds a framework to go several steps beyond
merely synchronizing data.
%prep
%setup -q %{name}-%{version}
%build
%cmake
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
mkdir -p %{buildroot}%{_sharedstatedir}/taskd/
# Users will keep their keys here, but we copy some helpful scripts too.
mkdir -p %{buildroot}%{_sysconfdir}/pki/taskd/
cp -a pki/generate* %{buildroot}%{_sysconfdir}/pki/taskd/.
mkdir -p %{buildroot}%{_localstatedir}/log/taskd/
%if 0%{?rhel} && 0%{?rhel} <= 6
# EL6 and earlier needs a sysvinit script
# Also, no firewalld on old EL
%else
mkdir -p %{buildroot}%{_unitdir}/
cp -a %{SOURCE1} %{buildroot}%{_unitdir}/taskd.service
mkdir -p %{buildroot}%{_prefix}/lib/firewalld/services
cp -a %{SOURCE3} %{buildroot}%{_prefix}/lib/firewalld/services/taskd.xml
%endif
mkdir -p %{buildroot}%{_sharedstatedir}/taskd/orgs/
cp -a %{SOURCE2} %{buildroot}%{_sharedstatedir}/taskd/config
rm -r %{buildroot}%{_datadir}/doc/taskd/
%pre
getent group taskd >/dev/null || groupadd -r taskd
getent passwd taskd >/dev/null || \
useradd -r -g taskd -d %{_sharedstatedir}/taskd/ -s /usr/bin/sh \
-c "Task Server system user" taskd
exit 0
# Systemd scriptlets
%if 0%{?rhel} && 0%{?rhel} <= 6
# No systemd for el6
%else
%post
%systemd_post taskd.service
%preun
%systemd_preun taskd.service
%postun
%systemd_postun_with_restart taskd.service
%endif
%files
%doc AUTHORS COPYING ChangeLog NEWS README
%{_bindir}/taskd
%{_bindir}/taskdctl
%{_mandir}/man1/taskd.1.*
%{_mandir}/man1/taskdctl.1.*
%{_mandir}/man5/taskdrc.5.*
%{_sysconfdir}/pki/taskd/generate*
%dir %attr(0750, taskd, taskd) %{_sysconfdir}/pki/taskd/
%dir %attr(0750, taskd, taskd) %{_localstatedir}/log/taskd/
%dir %attr(0750, taskd, taskd) %{_sharedstatedir}/taskd/
%config(noreplace) %attr(0644, taskd, taskd) %{_sharedstatedir}/taskd/config
%dir %attr(0750, taskd, taskd) %{_sharedstatedir}/taskd/orgs/
%if 0%{?rhel} && 0%{?rhel} <= 6
# No sysvinit files for el6
%else
%{_unitdir}/taskd.service
%{_prefix}/lib/firewalld/services/taskd.xml
%endif
%changelog
* Thu Aug 17 2017 Jarrett Graham <[email protected]> - 1.1.0
- Initial packaging.
RPM также требует три дополнительных файла, которые должны быть созданы в rpmbuild/SOURCES
каталоге. Используйте nano
программу для создания taskd-config
файла.
nano rpmbuild/SOURCES/taskd-config
Добавьте следующий текст ниже в taskd-config
файл.
# taskd configuration file
confirmation=1
verbose=1
ip.log=on
extensions=/usr/libexec/taskd
queue.size=10
request.limit=1048576
server=0.0.0.0:53589
root=/var/lib/taskd
log=/var/log/taskd/taskd.log
pid.file=/var/run/taskd.pid
ca.cert=/etc/pki/taskd/ca.cert.pem
server.cert=/etc/pki/taskd/server.cert.pem
server.key=/etc/pki/taskd/server.key.pem
server.crl=/etc/pki/taskd/server.crl.pem
Используйте nano
программу для создания taskd.service
файла.
nano rpmbuild/SOURCES/taskd.service
Добавьте следующий текст ниже в taskd.service
файл.
[Unit]
Description=Secure server providing multi-user, multi-client access to task data
After=network.target
Documentation=https://tasktools.org/projects/taskd.html
[Service]
ExecStart=/usr/bin/taskd server --data /var/lib/taskd
Type=simple
User=taskd
Group=taskd
[Install]
WantedBy=multi-user.target
Используйте nano
программу для создания taskd.xml
файла.
nano rpmbuild/SOURCES/taskd.xml
Добавьте следующий текст ниже в taskd.xml
файл.
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Task-warrior server</short>
<description>This option allows you to connect to the task warrior server.</description>
<port protocol="tcp" port="53589"/>
</service>
Чтобы построить RPM TaskServer (taskd), для сборки требуется три пакета. Запустите команду ниже, чтобы установить эти пакеты.
sudo yum install cmake libuuid-devel gnutls-devel gnutls-utils -y
Теперь пришло время построить из исходного кода и создать RPM для TaskServer (taskd). Запустите команды ниже, чтобы начать. Для создания RPM на экземпляре 1x CPU Vultr требуется меньше минуты. Введите пароль GnuPG, который вы создали на шаге 14, чтобы подписать RPM при появлении запроса.
cd rpmbuild/SPECS/
rpm -ba -sign taskd.spec
Установите TaskServer (taskd) RPM.
cd
sudo rpm -ivh rpmbuild/RPMS/x86_64/taskd-1.1.0-1.el7.centos.x86_64.rpm
Чтобы TaskServer (taskd) мог обмениваться данными и синхронизироваться с клиентами TaskWarrior (Task), вам необходимо использовать сценарии генерации, /etc/pki/taskd/
с помощью которых можно сгенерировать сертификаты / ключи сервера и клиента. Поднимитесь под пользователем root с помощью команды ниже и измените каталог на /etc/pki/taskd
.
sudo su -
cd /etc/pki/taskd/
Используйте nano
программу для создания vars
файла с целью создания самозаверяющего корневого центра сертификации.
nano vars
Добавьте следующий текст ниже в файл Vars. Измените ОРГАНИЗАЦИЮ , КН , СТРАНУ , ГОСУДАРСТВО и МЕСТНЫЙ УЧАСТОК .
BITS=4096
EXPIRATION_DAYS=365
ORGANIZATION="Vultr.com Inc."
CN=taskd.example.com
COUNTRY=US
STATE="New York"
LOCALITY="New York"
Создайте самозаверяющий корневой центр сертификации, сертификат, ключ сервера и список отзыва серверов (необязательно).
./generate.ca
./generate.server
./generate.crl
Эти команды будут созданы следующие файлы ( ca.cert.pem
, ca.key.pem
, server.cert.pem
, server.key.pem
и server.crl.pem
) внутри /etc/pki/taskd/
каталога. Для запуска TaskServer (taskd) необходимо изменить владельца и разрешения для сертификатов и ключей, сгенерированных на шаге # 37, чтобы TaskServer (taskd) мог получить к ним доступ. Запустите команды ниже, чтобы изменить их.
chown taskd.taskd ca.cert.pem ca.key.pem server.cert.pem server.crl.pem server.key.pem
chmod 400 ca.cert.pem ca.key.pem server.cert.pem server.crl.pem server.key.pem
Включите и запустите демон TaskServer (taskd).
systemctl enable taskd
systemctl start taskd
Откройте порт в брандмауэре, на котором запускается TaskServer (taskd).
firewall-cmd --permanent --zone=public --add-port=53589/tcp
firewall-cmd --reload
TaskServer (taskd) теперь установлен и настроен на вашем экземпляре CentOS 7.
Вы должны создать клиентские сертификаты и ключ для шифрования связи между TaskServer (taskd) и TaskWarrior (задача). Выполните команду ниже, чтобы сгенерировать клиентский сертификат и ключ. Замените NAME
на имя, которое вы можете легко узнать для вашего клиента.
generate.client NAME
Эта команда создаст следующие файлы ( NAME.cert.pem
, NAME.key.pem
) внутри /etc/pki/taskd/
каталога.
Скопируйте следующие файлы в свой пользовательский каталог, измените владельца и разрешения. Замените joeqpublic ниже вашим реальным именем пользователя.
cp ca.cert.pem NAME.cert.pem NAME.key.pem /home/joeqpublic/
chown joeqpublic.joeqpublic /home/joeqpublic/*.pem
chmod 400 /home/joeqpublic/*.pem
Создайте zip-архив сертификатов и ключей.
zip certficates.zip ca.cert.pem NAME.cert.pem NAME.key.pem
Используйте scp
(командная строка) или WinSCP (интерфейс GUI для SCP), чтобы загрузить certificates.zip
файл из экземпляра CentOS на клиентское устройство (компьютер / ноутбук / смартфон).
Удалите привилегии root и выполните остальные команды как обычный пользователь.
exit
TaskServer (taskd) теперь настроен и готов к подключению клиентов TaskWarrior (task).
Для создания, удаления, изменения и синхронизации ваших задач вам потребуется учетная запись пользователя. Однако прежде чем вы сможете добавлять пользователей, вам сначала необходимо создать организационную группу. Запустите команду ниже, чтобы создать свою первую группу. Замените GROUP на легко узнаваемое имя.
ВАЖНЫЙ! Команда taskd
для создания групп / пользователей должна быть запущена от имени taskd
пользователя. Запуск от имени пользователя root создаст каталоги и файлы, принадлежащие пользователю root, в результате /var/lib/taskd/orgs
чего клиенты TaskWarrior (задачи) не смогут получить доступ или изменить что-либо в группе, которой они были назначены. Доступ будет запрещен.
sudo -u taskd taskd add org GROUP --data /var/lib/taskd
Теперь, когда вы создали свою первую группу, давайте создадим вашего первого пользователя. Выполните команду ниже, чтобы создать пользователя, назначенного группе, созданной на шаге 1. Скопируйте и вставьте сгенерированный пользовательский ключ, пользователя и группу в текстовый файл. Повторите процесс, чтобы добавить дополнительных пользователей.
sudo -u taskd taskd add user GROUP 'Joe. Q. Public' --data /var/lib/taskd
Чтобы использовать TaskWarrior (задача) в Windows 10, вам необходимо установить подсистему Windows для Linux из Магазина Windows.
Для установки WSL требуется повышенное приглашение Powershell. Нажмите клавишу окна и введите powershell . Щелкните правой кнопкой мыши Windows PowerShell в верхней части результатов и выберите « Запуск от имени администратора ». В ответ на запрос контроля учетных записей нажмите Да . Скопируйте и вставьте текст, найденный ниже, в окнах Powershell. Когда WSL завершит установку, нажмите клавишу Y, чтобы перезапустить Windows.
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
После перезагрузки откройте командную строку и введите следующую команду bash . Это установит Ubuntu в Windows. Нажмите Y Key . Теперь он будет загружен и извлечен. Выберите имя пользователя и пароль.
bash
Теперь пришло время установить TaskWarrior (задача). Введите следующую команду внутри консоли.
sudo apt-get install task -y
Введите команду exit дважды, чтобы выйти из терминала bash и командной строки Windows.
Нажмите кнопку «Пуск». Типа убунту . Щелкните правой кнопкой мыши на Bash в Ubuntu в Windows . Выберите Закрепить на панели задач . Это обеспечивает удобство быстрого доступа к bash для доступа к TaskWarrior (задача).
Нажмите на иконку Ubuntu, которую вы только что создали на панели задач. Это откроет окно терминала под управлением Bash. Введите следующую команду ниже, чтобы создать каталог данных TaskWarrior (задача) ( ~/.task/
) и файл конфигурации ( .taskrc
).
task version
yes
Вам нужно переместить certificates.zip
файл, который вы сохранили ранее во время установки TaskServer, в ~/.taskd/
каталог внутри вашего пользовательского каталога. Чтобы извлечь файлы из zip-файла, unzip
сначала установите программу. Скопируйте и вставьте следующие команды ниже, заменив фактическое местоположение вашей копии certificates.zip
.
sudo apt-get install unzip -y
cp /mnt/c/User/WINDOWSUSER/Desktop/certificates.zip .
cd .task
unzip ../certificates.zip
cd
Введите следующие команды, чтобы настроить TaskWarrior (задача) для подключения к TaskServer (taskd). Замените NAME на то, что вы назвали своим сертификатом и ключом, GROUP на созданную вами группу, Joe Q. Public на созданное вами имя пользователя и XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX на ключ, назначенный вашему пользователю. был создан на сервере TaskWarrior (taskd).
task config taskd.ca -- ~/.task/ca.cert.pem
task config taskd.certificate -- ~/.task/**NAME**.cert.pem
task config taskd.key -- ~/.task/**NAME**.key.pem
task config taskd.server -- taskd.example.com:53589
task config taskd.credentials -- GROUP/Joe Q. Public/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
Теперь пришло время синхронизировать TaskWarrior (задача) с TaskServer (taskd). Запустите команду ниже для инициализации базы данных.
task sync init
Синхронизация между вашим клиентом TaskWarrior (задача) и TaskServer (taskd) теперь настроена на платформе Windows 10.
Чтобы использовать TaskWarrior (задача) на Android, вам необходимо установить TaskWarrior For Android из магазина Google Play.
Установите приложение TaskWarrior (задача) для Android в магазине Google Play.
Откройте приложение TaskWarrior (задача) для Android.
Приложение предложит вам создать учетную запись с желаемым именем . Введите имя, которое вы выбрали при создании имени пользователя для пользователя TaskServer (taskd).
Оставьте папку данных с настройкой по умолчанию << Создать новую >> и нажмите кнопку ОК . Используйте приложение файлового менеджера для создания папки в корне хранилища (например:) /storage/emulate/0/Certs
. Отправить приложение на задний план.
Скопируйте certificates.zip
файл, который вы создали ранее, и извлеките его содержимое в каталог, созданный на шаге 4.
Передний план приложения «TaskWarrior (задача) для Android» и нажмите меню в верхнем левом углу приложения, чтобы открыть его.
Прокрутите вниз до нижней части меню и коснитесь параметра Настройки .
Откроется простой встроенный текстовый редактор приложения TaskWarrior For Android.
Введите следующие параметры, чтобы настроить синхронизацию с вашим TaskServer (taskd). Замените переменные taskd.ca
/ taskd.certificate
/ taskd.key` на фактические пути к каталогам ca / certificate / key, NAME на то, что вы назвали сертификатом и ключом, GROUP на группу, которую вы создали, Joe Q. Public на имя пользователя, которое вы создали, и XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX с ключом, назначенным при создании пользователя на сервере TaskWarrior (taskd).
taskd.ca=/storage/emulate/0/Certs/ca.cert.pem
taskd.certificate=/storage/emulate/0/Certs/NAME.cert.pem
taskd.credentials=GROUP/Joe Q. Public/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
taskd.key=/storage/emulate/0/Certs/NAME.key.pem
taskd.server=taskd.example.com:53589
Синхронизация между вашим клиентом TaskWarrior (задача) и TaskServer (taskd) теперь настроена на платформе Android.
Обратитесь к разделу распределения TaskWarrior (задача) для установки для вашего конкретного дистрибутива Linux .
Откройте окно терминала. Введите следующую команду ниже, чтобы создать каталог данных TaskWarrior (задача) ( ~/.task/
) и файл конфигурации ( .taskrc
).
task version
yes
Вам нужно переместить certificates.zip
файл, который вы сохранили ранее в настройке TaskServer, в ~/.taskd/
каталог внутри вашего пользовательского каталога. Чтобы извлечь файлы из zip-файла, unzip
сначала установите программу для вашего конкретного дистрибутива. Скопируйте и вставьте следующие команды ниже, подставив фактическое местоположение вашей копии certificates.zip
.
cp /location/of/certificates.zip .
cd .task
unzip ../certificates.zip
cd
Введите следующие команды, чтобы настроить TaskWarrior (задача) для подключения к TaskServer (taskd). Замените NAME на то, что вы назвали своим сертификатом и ключом, GROUP на созданную вами группу, Joe Q. Public на созданное вами имя пользователя и XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX на ключ, назначенный вашему пользователю. был создан на сервере TaskWarrior (taskd).
task config taskd.ca -- ~/.task/ca.cert.pem
task config taskd.certificate -- ~/.task/**NAME**.cert.pem
task config taskd.key -- ~/.task/**NAME**.key.pem
task config taskd.server -- taskd.example.com:53589
task config taskd.credentials -- GROUP/Joe Q. Public/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
Теперь пришло время синхронизировать TaskWarrior (задача) с TaskServer (taskd). Запустите команду ниже для инициализации базы данных.
task sync init
Приложение: Если вы запускаете Gnome Shell, есть расширение TaskWhisper, которое интегрируется с TaskWarrior (задача).
Синхронизация между вашим клиентом TaskWarrior (задача) и TaskServer (taskd) теперь настроена в вашем любимом дистрибутиве Linux.
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
При настройке нового сервера Linux рекомендуется обновить ядро системы и другие пакеты до последней стабильной версии. В этой статье
Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам
Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья
Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания
OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через
OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в
Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я
MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns
Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:
Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе
RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях
Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия
Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и
Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.
Традиционные подходы к анализу данных невозможно использовать, когда наборы данных достигают определенного размера. Современная альтернатива анализу огромных массивов данных, которые я
Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется
Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на
Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер
Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше