このチュートリアルでは、ApacheまたはNginxWebサーバーを使用してUbuntu20.04にSocioboardをインストールする方法を示します。 Socioboardは、企業向けのオープンソースのセルフホスト型ソーシャルメディアリード生成ツールキットです。 Socioboardはホスト型サービスを提供しますが、自分のサーバーでソフトウェアをセルフホストする場合は、以下の手順に従ってください。
ソーシャルボードの機能
ソーシャルネットワークは、ビジネスではなく、ユーザーを対象としています。 Socioboardは、ビジネスの観点からソーシャルを表示し、ソーシャルネットワークが絶妙に埋めることができないギャップを埋めます。企業はソーシャルデータを所有し、それを使って何をしたいのかを担当し、レポートを生成し、データを分析して、情報に基づいた改善されたビジネス上の意思決定を行う必要があります。
Socioboardは以下を提供します:
- 高度にカスタマイズ可能でスケーラブルなオープンソースツール
- プロンプトフィードとインタラクティブなソーシャルディスカバリツール
- 共有顧客レコードを含むソーシャルCRMツール
- 非常に効率的なチームコラボレーションツール
- 高度なスケジューリングおよび公開ツール
- さまざまなパラメータに関する高度な分析
- タスクやヘルプデスク統合などのカスタマーサポート機能
前提条件
まず、少なくとも2GBのRAMを搭載したLinuxサーバーが必要です。この特別なリンクをクリックすると、DigitalOceanで100ドルの無料クレジットを獲得できます。 (新規ユーザーのみ)。すでにDigitalOceanユーザーである場合は、この特別なリンクをクリックして、Vultrで$ 50の無料クレジットを取得できます(新規ユーザーのみ)。 DigitalOceanまたはVultrでアカウントを取得したら、サーバーにUbuntu 20.04をインストールし、以下の手順に従います。
SocioboardにはPHPとMySQL/MariaDBが必要です。このチュートリアルに従うには、LAMPスタックまたはLEMPスタックをすでに設定している必要があります。まだ行っていない場合は、次のガイドのいずれかを使用してください。
- Ubuntu 20.04にLAMP(Apache、MariaDB、PHP)スタックをインストールする方法
- Ubuntu 20.04にLEMP(Nginx、MariaDB、PHP)スタックをインストールする方法
ドメイン名も必要です。ドメイン名をNameCheapに登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるからです。
それでは、Socioboardをインストールしましょう。
ステップ1:Ubuntu20.04サーバーにSocioboardをダウンロードする
SSH経由でUbuntu20.04サーバーにログインします。次に、次のコマンドを実行して、最新バージョンのSocioboardをサーバーにダウンロードします。
sudo apt install git git clone https://github.com/socioboard/Socioboard-4.0.git
ダウンロードしたら、ファイルを/var/www/
に移動します ディレクトリ。
sudo mkdir -p /var/www/ sudo mv Socioboard-4.0 /var/www/socioboard
次に、www-data
に権限を付与する必要があります Webサーバーがこのディレクトリに書き込めるようにするためのユーザー。
sudo setfacl -R -m u:www-data:rwx /var/www/socioboard/
ステップ2:Node.jsをインストールする
SocioboardバックエンドはNode.js上に構築されています。これは人間が読めるJavaScriptコードをマシンコードに変換するJavaScriptランタイム環境であるため、Socioboardを実行するにはUbuntu20.04にNode.jsをインストールする必要があります。このチュートリアルでは、NodeSourceリポジトリからNode.js(V12.x)のLTSリリースをインストールします。
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt install -y nodejs
nodejs
パッケージにはnpm(Node.jsパッケージマネージャー)バイナリが含まれているため、個別にインストールする必要はありません。 Node.jsとnpmのバージョンを確認するには、
node -v npm -v
出力:
ステップ3:ノードパッケージをインストールする
まず、nodemon
をインストールします 、sequalize
、およびmysql2
グローバルモードのパッケージ。
sudo npm install nodemon sequelize-cli sequelize mysql2 -g
/var/www/socioboard/socioboard-api/
内 ディレクトリには、5つのサブディレクトリがあります。
- フィード
- ライブラリ
- 通知
- 公開
- ユーザー
これらの各サブディレクトリに移動して、依存関係パッケージをインストールする必要があります。たとえば、feeds
に移動します サブディレクトリ。
cd /var/www/socioboard/socioboard-api/feeds
そして、node_modules
に配置される依存関係パッケージをインストールします ディレクトリ。
npm install
脆弱性が見つかった場合は、次のコマンドを実行して脆弱性を修正します。
npm audit fix
他の4つのサブディレクトリでも同じことを行います 。
ステップ4:MariaDBでデータベースとユーザーを作成する
次のコマンドを使用してMariaDBデータベースサーバーにログインします。
sudo mysql
次に、Socioboardのデータベースを作成します。このチュートリアルでは、データベースにsocioboard
という名前を付けます 。好きな名前を使用できます。
create database socioboard;
データベースユーザーを作成します。この場合も、このユーザーの好みの名前を使用できます。 your_password
を置き換えます ご希望のパスワードを使用してください。
create user socioboard@localhost identified by 'your_password';
このユーザーにsocioboard
のすべての権限を付与します データベース。
grant all privileges on socioboard.* to socioboard@localhost;
特権をフラッシュして終了します。
flush privileges; exit;
ステップ5:MariaDBデータベースを設定する
ファイルを編集します。
sudo nano /var/www/socioboard/socioboard-api/library/sequelize-cli/config/config.json
データベース名、ユーザー名、パスワードを入力してください。
ファイルを保存して閉じます。次に、ディレクトリを変更します。
cd /var/www/socioboard/socioboard-api/library/sequelize-cli/
socioboard
を初期化します データベース。
NODE_ENV=development sequelize db:migrate
/var/www/socioboard/socioboard-api/library/sequelize-cli/seeders/
ディレクトリには、名前がapplication_info.js
で終わるファイルがあります 。次のコマンドを実行します。
NODE_ENV=development sequelize db:seed --seed 20190213051930-initialize_application_info.js
ステップ6:MongoDBをインストールする
MongoDBは、ドキュメント指向のNoSQLデータベースプログラムです。次のコマンドを実行して、MongoDBパブリックGPGキーをインポートします
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
MongoDBのソースリストファイルを作成します。
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
パッケージインデックスを更新し、MongoDBをインストールします。
sudo apt update sudo apt install -y mongodb-org
MongoDBを起動します。
sudo systemctl start mongod
起動時に自動起動を有効にします。
sudo systemctl enable mongod
ステータスを確認してください:
systemctl status mongod
サンプル出力:
● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-08-03 17:39:42 HKT; 52s ago Docs: https://docs.mongodb.org/manual Main PID: 2710248 (mongod) Memory: 61.8M CGroup: /system.slice/mongod.service └─2710248 /usr/bin/mongod --config /etc/mongod.conf
ご覧のとおり、アクティブ(実行中)です。
ステップ7:MongoDBでデータベースとユーザーを作成する
MongoDBシェルにログインします。
mongo
SocioBoardのデータベースを作成します。
use socioboard
このデータベースに少なくとも1つのドキュメントを挿入する必要があります。次のコマンドを実行して、サンプルドキュメントを挿入します。
db.new_collection.insert({ some_key: "some_value" })
次に、次のコマンドを実行してユーザーを作成します。
db.createUser( { user: "socioboard", pwd: "your_password", roles: [ { role: "readWrite", db: "socioboard" } ] } )
MongoDBシェルを終了します。
exit
ステップ8:MongoDB接続をセットアップする
ファイルを編集します。
sudo nano /var/www/socioboard/socioboard-api/user/config/development.json
データベース名、ユーザー名、パスワードを入力してください。
ファイルの最後までスクロールして、次の3行を追加します。
"base_path": "../../media", "payment_path": "../../media/payments", "template": "public/template/paymentTemplate.html"
ファイルを保存して閉じます。次に、次の3つのファイルも編集して、MongoDBデータベース名、ユーザー名、パスワードを入力します。
- /var/www/socioboard/socioboard-api/feeds/config/development.json
- /var/www/socioboard/socioboard-api/notification/config/development.json
- /var/www/socioboard/socioboard-api/publish/config/development.json
ステップ9:Socioboardマイクロサービスを実行する
sudo nano /etc/systemd/system/socioboard-user.service
次の行を追加します。ユーザー名を実際のユーザー名に置き換えます。
[Unit] Description=SocioBoard User Microservice After=multi-user.target [Service] Type=simple User=username WorkingDirectory=/var/www/socioboard/socioboard-api/user/ Environment=NODE_ENV=development ExecStart=/usr/bin/nodemon app.js Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
ファイルを保存して閉じます。
sudo nano /etc/systemd/system/socioboard-publish.service
次の行を追加します。ユーザー名を実際のユーザー名に置き換えます。
[Unit] Description=SocioBoard Publish Microservice After=multi-user.target [Service] Type=simple User=username WorkingDirectory=/var/www/socioboard/socioboard-api/publish/ Environment=NODE_ENV=development ExecStart=/usr/bin/nodemon app.js Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
ファイルを保存して閉じます。
sudo nano /etc/systemd/system/socioboard-feeds.service
次の行を追加します。ユーザー名を実際のユーザー名に置き換えます。
[Unit] Description=SocioBoard Feeds Microservice After=multi-user.target [Service] Type=simple User=username WorkingDirectory=/var/www/socioboard/socioboard-api/feeds/ Environment=NODE_ENV=development ExecStart=/usr/bin/nodemon app.js Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
ファイルを保存して閉じます。
sudo nano /etc/systemd/system/socioboard-notification.service
次の行を追加します。ユーザー名を実際のユーザー名に置き換えます。
[Unit] Description=SocioBoard Notification Microservice After=multi-user.target [Service] Type=simple User=username WorkingDirectory=/var/www/socioboard/socioboard-api/notification/ Environment=NODE_ENV=development ExecStart=/usr/bin/nodemon app.js Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
ファイルを保存して閉じます。次に、4つのサービスを開始します。
sudo systemctl start socioboard-user socioboard-publish socioboard-feeds socioboard-notification
次に、各サービスのステータスを確認する必要があります。
systemctl status socioboard-user systemctl status socioboard-publish systemctl status socioboard-feeds systemctl status socioboard-notification
サービスごとに、
のようなメッセージが表示された場合service listening on http://localhost:3000
その後、サービスは正常に開始されます。このメッセージが表示されない場合は、エラーが発生しているため、public/logs/
でログを確認できます。 何が問題なのかを確認するためのフォルダ。
すべてのサービスが正常に開始されたら、起動時に自動開始を有効にします。
sudo systemctl enable socioboard-user socioboard-publish socioboard-feeds socioboard-notification
ステップ10:Socioboard-web-phpを設定する
ディレクトリを変更します。
cd /var/www/socioboard/socioboard-web-php/
Laravelをインストールします。
sudo apt install composer composer global require laravel/installer
environmentfile.env
の名前を変更します .env
へ 。
mv environmentfile.env .env
このファイルを編集します。
nano .env
APPURLとAPIURLを入力します。 socioboard.example.comは、SocioBoardにアクセスするためにWebブラウザのアドレスバーに入力するURLです。
APP_URL=https://socioboard.exmaple.com/ API_URL=http://localhost:3000/ API_URL_PUBLISH=http://localhost:3001/ API_URL_FEEDs=http://localhost:3002/ API_URL_NOTIFY=http://localhost:3003/
ファイルを保存して閉じます。次に、PHPの依存関係をインストールします。
composer update
次に、Laravelアプリキーを生成します。これは.env
に保存されます ファイル。
php artisan key:generate
ステップ11:Webサーバーのセットアップ
ApacheまたはNginxWebサーバーを使用できます。
Apache
Apacheを使用する場合は、Socioboard用の仮想ホストファイルを作成します。
sudo nano /etc/apache2/sites-available/socioboard.conf
次のテキストをファイルに入れます。 socioboard.example.com
を置き換えます Socioboardの独自のサブドメインを使用します。 DNSマネージャーでドメイン名のAレコードを設定することを忘れないでください。
<VirtualHost *:80> ServerName socioboard.example.com DocumentRoot /var/www/socioboard/socioboard-web-php/public/ <Directory /var/www/socioboard/socioboard-web-php/public/> DirectoryIndex index.php Options +FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/socioboard.error.log CustomLog ${APACHE_LOG_DIR}/socioboard.access.log combined </VirtualHost>
ファイルを保存して閉じます。次に、この仮想ホストを有効にします。
sudo a2ensite socioboard.conf
リライトモジュールを有効にする必要があります。
sudo a2enmod rewrite
変更を有効にするには、Apacheを再起動します。
sudo systemctl restart apache2
Nginx
Nginxが必要な場合は、Socioboardの仮想ホストファイルを作成します。
sudo nano /etc/nginx/conf.d/socioboard.conf
次のテキストをファイルに入れます。 socioboard.example.com
を置き換えます Socioboardの独自のサブドメインを使用します。 DNSマネージャーでドメイン名のAレコードを設定することを忘れないでください。
server { listen 80; listen [::]:80; server_name socioboard.example.com; root /var/www/socioboard/socioboard-web-php/public/; index index.php index.html index.htm index.nginx-debian.html; error_log /var/log/nginx/socioboard.error; location / { try_files $uri $uri/ /index.php; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; client_max_body_size 2M; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } #enable gzip compression gzip on; gzip_vary on; gzip_min_length 1000; gzip_comp_level 5; gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml; gzip_proxied any; # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } # disable access to hidden files location ~ /\.ht { access_log off; log_not_found off; deny all; } }
ファイルを保存して閉じます。次に、Nginx構成をテストします。
sudo nginx -t
テストが成功した場合は、変更を有効にするためにNginxをリロードします。
sudo systemctl reload nginx
ステップ12:HTTPSを有効にする
HTTPトラフィックを暗号化するには、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu20.04サーバーにインストールします。
sudo apt install certbot
Nginxを使用する場合は、CertbotNginxプラグインもインストールする必要があります。
sudo apt install python3-certbot-nginx
次に、次のコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d socioboard.yourdomain.com
Apacheを使用する場合は、CertbotApacheプラグインをインストールしてください。
sudo apt install python3-certbot-apache
そして、このコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d socioboard.yourdomain.com
どこ
-
--nginx
:nginxプラグインを使用してください。 -
--apache
:Apacheプラグインを使用してください。 -
--agree-tos
:利用規約に同意します。 --redirect
:301リダイレクトでHTTPSを強制します。-
--hsts
:すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。 -
--staple-ocsp
:OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。
これで、証明書が取得され、自動的にインストールされます。
ステップ13:Socioboardを使用する
これで、https://socioboard.example.com
でSocioBoardWebインターフェイスにアクセスできます。 。アカウントを使用するには、アカウントを作成する必要があります。アカウントを作成できない場合は、/var/www/socioboard/socioboard-web-php/storage/logs/
のエラーログを確認してください ディレクトリ。
Socioboardは確認メールを送信しようとしますが、メールを送信できないことがわかりました。アカウントをアクティブ化するには、MariaDBデータベースからアクティブ化ステータスを変更できます。 MariaDBシェルにログインします。
sudo mysql
socioboard
を使用する データベース。
use socioboard;
次に、アカウントをアクティブ化します。
update user_activations set activation_status = 1;
デフォルトでは、アカウントは基本プランに基づいており、プラチナプランに変更できます。
update user_activations set user_plan = 7;
MariaDBシェルを終了します。
exit
次に、SocioBoardアカウントにログインします。
結論
このチュートリアルが、Ubuntu20.04サーバーにSocioboardをインストールするのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、より多くのヒントやコツを入手してください。気をつけて🙂