Как установить Anchor CMS на CentOS 7 LAMP VPS
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
Mastodon - это сервер микроблогов и социальных сетей с открытым исходным кодом. Это обеспечивает Twitter как функции; но вместо того, чтобы контролироваться одной компанией, это федерация децентрализованных серверов, соединяющихся вместе, чтобы создать целую систему социальных сетей. Небольшая команда может запустить свой экземпляр сервера Mastodon, чтобы общаться между собой, а также с другими пользователями федеративного сообщества. Это также позволяет вам выбирать собственные политики конфиденциальности и модерации и определять, как вы общаетесь с другими пользователями разных серверов. Контент, который создает и подписывает отдельный пользователь, размещается на сервере, где создается его учетная запись. Пользователи могут следовать друг за другом, даже если они не размещены на одном сервере. Каждый пользователь в сети Мастодон имеет свое уникальное имя или идентификатор, который находится в@[email protected]
формат. Клиентские приложения для Мастодонта доступны практически для всех платформ.
Примечание: мы будем использовать в social.example.com
качестве имени домена, используемого для экземпляра Mastodon. Замените все вхождения на social.example.com
ваше фактическое доменное имя, которое вы хотите использовать для приложения Mastodon .
Обновите базовую систему, используя руководство Как обновить CentOS 7 , если это необходимо. После обновления системы перейдите к установке необходимых зависимостей.
Мастодонт требует нескольких зависимостей для работы. Установите последнюю версию Node.js
, которая будет использоваться для компиляции файлов JavaScript.
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum -y install nodejs
Install Yarn
- быстрое, надежное и безопасное приложение для управления зависимостями. Мы будем использовать Yarn для установки зависимостей Node.js.
sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
sudo yum -y install yarn
Установить Redis
. Redis - это приложение для хранения и хранения данных в оперативной памяти.
sudo yum -y install redis
Запустите Redis и включите его при загрузке автоматически.
sudo systemctl start redis
sudo systemctl enable redis
Установите еще несколько зависимостей, которые необходимы для сборки Ruby
установки и других зависимостей.
sudo yum -y install ImageMagick git libxml2-devel libxslt-devel gcc bzip2 openssl-devel zlib-devel gdbm-devel ncurses-devel autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel glibc-headers glibc-devel libyaml-devel libicu-devel libidn-devel
Вам также нужно будет установить средства разработки.
sudo yum -y groupinstall 'Development Tools'
PostgreSQL - это объектно-реляционная база данных. Вам нужно будет добавить репозиторий PostgreSQL в вашу систему, так как yum
репозиторий по умолчанию содержит более старую версию приложения.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Установите сервер базы данных PostgreSQL.
sudo yum -y install postgresql96-server postgresql96-contrib postgresql96-devel
Инициализируйте базу данных.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Отредактируйте pg_hba.conf
файл, чтобы включить MD5
аутентификацию на основе.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Найдите следующие строки и измените peer
на trust
и ident
на 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 и включите его при загрузке автоматически.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Измените пароль для пользователя PostgreSQL по умолчанию.
sudo passwd postgres
Войдите в оболочку как PostgreSQL
пользователь.
sudo su - postgres
Создать нового PostgreSQL
пользователя для Мастодонта.
createuser mastodon
PostgreSQL предоставляет psql
оболочку для выполнения запросов к базе данных. Переключитесь на оболочку PostgreSQL, запустив.
psql
Установите пароль для вновь созданного пользователя для базы данных Mastodon и предоставьте разрешение на добавление новых баз данных.
ALTER USER mastodon WITH ENCRYPTED password 'DBPassword' CREATEDB;
Заменить DBPassword
надежным паролем. Выход из psql
оболочки:
\q
Переключиться на sudo
пользователя.
exit
Установите еще несколько необходимых зависимостей PostgreSQL.
sudo yum -y install libpqxx-devel protobuf-devel
Создайте нового пользователя для Мастодонта и переключитесь на вновь созданного пользователя.
sudo adduser mastodon -d /opt/mastodon
sudo su - mastodon
Мы установим последнюю версию Ruby с помощью Ruby Version Manager или RVM. Он используется для установки и управления несколькими версиями Ruby.
Добавьте GPG
ключ RVM на ваш сервер.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Установите RVM.
curl -sSL https://get.rvm.io | bash -s stable
source /opt/mastodon/.rvm/scripts/rvm
Теперь загрузите список доступных версий Ruby.
rvm list known
Вы увидите следующий вывод.
[mastodon@vultr ~]$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head
...
Теперь установите последнюю версию Ruby из списка.
rvm install 2.4
Используйте установленную версию Ruby.
rvm use 2.4
Вы должны быть в состоянии проверить его версию.
ruby -v
Вы должны увидеть похожий вывод.
[mastodon@vultr ~]$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
Install bundler
, который является менеджером зависимостей для приложения Ruby.
gem install bundler
Теперь перейдите в домашний каталог пользователя Mastodon и клонируйте файлы репозитория приложений из Github.
cd ~
git clone https://github.com/tootsuite/mastodon.git app
Переместите каталог приложения и ознакомьтесь с последними выпусками приложения.
cd ~/app
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
Сконфигурируйте bundle
для использования пользовательского пути для конфигурации PostgreSQL. Также установите зависимости Ruby.
bundle config build.pg --with-pg-config=/usr/pgsql-9.6/bin/pg_config
bundle install --deployment --without development test
Установите зависимости Node.js, используя Yarn.
yarn install --pure-lockfile
Вам нужно будет создать файл конфигурации для приложения Mastodon. Скопируйте пример файла конфигурации.
cd ~/app
cp .env.production.sample .env.production
Перед редактированием файла сгенерируйте три разных secrets
, выполнив следующую команду три раза. Вам нужно будет установить эти секреты в файле конфигурации.
RAILS_ENV=production bundle exec rake secret
Вы должны получить аналогичный вывод.
[mastodon@vultr app]$ RAILS_ENV=production bundle exec rake secret
0f17dab1cf4a07f6fac671ecd5815adcb59d012b338dae9350c66402250c6c729dccd6182b1a8f75c4fde55453ce283ea66e07ed4466cdc6d4d6974c98512967
Отредактируйте файл конфигурации с помощью nano
редактора.
nano .env.production
Найдите следующие строки и измените значения соответственно.
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
Укажите учетные данные базы данных в соответствии с пользователем базы данных, который вы создали во время установки PostgreSQL. Укажите любое имя для имени базы данных, так как Mastodon автоматически создаст базу данных с указанным вами именем.
DB_HOST=127.0.0.1
DB_USER=mastodon
DB_NAME=mastodon
DB_PASS=DBPassword
DB_PORT=5432
Установите доменное имя приложения.
LOCAL_DOMAIN=social.example.com
Найдите следующие строки и установите их значение для секретов, которые вы сгенерировали.
PAPERCLIP_SECRET=
SECRET_KEY_BASE=
OTP_SECRET=
Сохраните файл и выйдите из редактора.
Теперь выполните следующую команду для генерации Web Push VAPID
ключей. При создании ключей Web Push VAPID вы получите ошибку, если вы не установили секреты в файле конфигурации, упомянутом выше.
RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key
Вы должны увидеть следующий вывод.
[mastodon@vultr app]$ RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key
VAPID_PRIVATE_KEY=DCMQdSPkdm-mepsNh4F3suc-UIvsABCvwFd03jSVemM=
VAPID_PUBLIC_KEY=BMMVcVXmqnV0C8S_ybZ7eQH-MXBEX2exqfdPSYQiMMUF2rRxfhoEtVF931i26ebMgmslHB_nvVadOdcBPhaFEjw=
Снова откройте файл конфигурации и установите сгенерированные ключи в соответствующих строках.
VAPID_PRIVATE_KEY=
VAPID_PUBLIC_KEY=
Наконец, предоставьте информацию о своем почтовом SMTP-сервере, чтобы приложение могло отправлять электронные письма пользователям. Важно, чтобы вы использовали работающий SMTP-сервер, так как после новой регистрации пользователям будет отправлено электронное письмо со ссылкой для активации. Новые пользователи должны будут нажать на ссылку активации, чтобы активировать свою учетную запись.
SMTP_SERVER=mail.example.com
SMTP_PORT=456
[email protected]
SMTP_PASSWORD=MailPassword
[email protected]
SMTP_TLS=true
После этого сохраните файл и выйдите из редактора. Вы выполнили базовую настройку экземпляра Мастодонта.
Настройте базу данных PostgreSQL в первый раз.
RAILS_ENV=production bundle exec rails db:setup
Сначала приведенная выше команда создаст новую базу данных с именем, указанным в конфигурации. Затем он запишет базу данных в соответствии с конфигурацией.
Прекомпилируйте все CSS
и JavaScript
файлы для создания кеша.
RAILS_ENV=production bundle exec rails assets:precompile
Мастодонт теперь установлен на вашем сервере. Теперь вам нужно настроить Nginx
веб-сервер для обслуживания приложений и Systemd
сервисов настройки для запуска сервисов Mastodon.
Отныне нам нужно будет выполнять команды, используя sudo
пользователя.
Мы будем использовать веб-сервер Nginx в качестве обратного прокси-сервера для предоставления приложения пользователям. Мы также получим и установим SSL-сертификаты от Let's Encrypt.
Установите Nginx и Certbot. Certbot является официальным клиентом выдачи сертификатов для Let's Encrypt CA.
sudo yum -y install nginx certbot
Отрегулируйте настройки брандмауэра, чтобы разрешить стандарт HTTP
и HTTPS
порты через брандмауэр, поскольку Certbot должен установить HTTP-соединение для проверки полномочий домена.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Примечание. Чтобы получить сертификаты от Let's Encrypt CA, необходимо убедиться, что домен, для которого вы хотите создать сертификаты, направлен на сервер. Если нет, внесите необходимые изменения в записи DNS вашего домена и дождитесь распространения DNS, прежде чем снова делать запрос сертификата. Certbot проверяет полномочия домена перед предоставлением сертификатов .
Теперь используйте встроенный веб-сервер в Certbot для генерации сертификатов для вашего домена.
sudo certbot certonly --standalone -d social.example.com
Сгенерированные сертификаты, вероятно, будут храниться в /etc/letsencrypt/live/social.example.com/
каталоге. Сертификат SSL будет сохранен как fullchain.pem
и закрытый ключ будет сохранен как privkey.pem
.
Срок действия сертификатов Let's Encrypt истекает через 90 дней, поэтому рекомендуется настроить автоматическое обновление сертификатов с помощью заданий Cron. Cron - это системный сервис, который используется для периодических задач.
Откройте файл задания cron.
sudo crontab -e
Добавьте следующую строку.
0 0 * * * /usr/bin/certbot renew --quiet
Вышеуказанная работа cron будет выполняться ежедневно в полночь. Если срок действия сертификата истекает, он автоматически обновляет сертификаты.
Теперь создайте новый блок сервера Nginx для сайта Mastodon.
sudo nano /etc/nginx/conf.d/mastodon.conf
Заполните файл этим.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80;
server_name social.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name social.example.com;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_certificate /etc/letsencrypt/live/social.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/social.example.com/privkey.pem;
keepalive_timeout 70;
sendfile on;
client_max_body_size 0;
root /opt/mastodon/app/public;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
add_header Strict-Transport-Security "max-age=31536000";
location / {
try_files $uri @proxy;
}
location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) {
add_header Cache-Control "public, max-age=31536000, immutable";
try_files $uri @proxy;
}
location @proxy {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Proxy "";
proxy_pass_header Server;
proxy_pass http://127.0.0.1:3000;
proxy_buffering off;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
tcp_nodelay on;
}
location /api/v1/streaming {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Proxy "";
proxy_pass http://127.0.0.1:4000;
proxy_buffering off;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
tcp_nodelay on;
}
error_page 500 501 502 503 504 /500.html;
}
Обязательно измените имя домена и путь к сертификатам SSL.
Теперь вы можете запустить веб-сервер Nginx и включить его автоматический запуск при загрузке.
sudo systemctl start nginx
sudo systemctl enable nginx
Вам также потребуется разрешить порт 4000
через брандмауэр, так как порт будет предоставлять сервис потокового API.
sudo firewall-cmd --permanent --zone=public --add-port=4000/tcp
sudo firewall-cmd --reload
Укажите разрешения на выполнение для каталога Mastodon.
sudo chmod +x /opt/mastodon
Вам нужно будет запустить три разных процесса, чтобы успешно запустить сервер Mastodon. Использование службы Systemd гарантирует, что сервер Mastodon автоматически запускается при загрузке и обрабатывает ошибки.
Создайте новый сервис systemd для запуска веб-сервиса Mastodon. Этот сервис запустит встроенный веб-сервер по порту 3000
.
sudo nano /etc/systemd/system/mastodon-web.service
Заполните файл следующим содержанием.
[Unit]
Description=Mastodon Web Service
After=network.target
[Service]
Type=simple
User=mastodon
Group=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="RAILS_ENV=production"
Environment="PORT=3000"
ExecStart=/bin/bash -lc 'bundle exec puma -C config/puma.rb'
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
Создайте вторую службу Systemd для запуска службы фоновой очереди Mastodon. Служба очереди Mastodon берет на себя все фоновые задачи.
sudo nano /etc/systemd/system/mastodon-queue.service
Заполните файл следующим содержанием.
[Unit]
Description=Mastodon Queue Service
After=network.target
[Service]
Type=simple
User=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="RAILS_ENV=production"
Environment="DB_POOL=5"
ExecStart=/bin/bash -lc 'bundle exec sidekiq -c 5 -q default -q mailers -q pull -q push'
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
Наконец, создайте последний файл службы для службы потокового API Mastodon.
sudo nano /etc/systemd/system/mastodon-api.service
Заполните файл следующим содержанием.
[Unit]
Description=Mastodon Streaming
After=network.target
[Service]
Type=simple
User=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="NODE_ENV=production"
Environment="PORT=4000"
ExecStart=/bin/npm run start
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
Включите службы Mastodon для автоматического запуска во время загрузки.
sudo systemctl enable mastodon-web mastodon-queue mastodon-api
Чтобы запустить службы Mastodon, вы можете запустить это.
sudo systemctl start mastodon-web mastodon-queue mastodon-api
Чтобы проверить состояние служб, вы можете запустить это.
sudo systemctl status mastodon-web mastodon-queue mastodon-api
Теперь вы можете получить доступ к приложению Mastodon, перейдя в https://social.example.com
. Создайте новую учетную запись на вашем сервере и подтвердите ее, открыв ссылку, отправленную в электронном письме. Чтобы предоставить привилегии администратора только что созданной учетной записи, запустите эту команду.
sudo su - mastodon && cd ~/app
RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=<user_name>
Замените <user_name>
реальным именем пользователя, которое вы использовали для создания учетной записи в интерфейсе Мастодонта.
Ваш экземпляр Mastodon теперь установлен и настроен для работы. Начните с приглашения ваших друзей присоединиться к вашему экземпляру и изучить функции, предоставляемые Mastodon. Вы можете использовать свой сайт социальной сети в мобильном телефоне, загрузив любое из приложений, доступных для различных платформ.
Используете другую систему? 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. Прочтите эту статью, чтобы узнать больше