Alibaba Cloud ECSインスタンスにDolibarrをインストール

このチュートリアルでは、**Alibaba Cloud ECSインスタンス**に**Dolibar**をインストールして設定する方法を学びます。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/install-dolibarr-on-alibaba-cloud_595223)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

#前提条件
- Alibaba Cloud [Elastic Compute Service (ECS)](https://www.alibabacloud.com/ja/product/ecs)を有効にし、有効な支払い方法を確認する必要があります。新規ユーザーの場合は、新規アカウントで[300ドル～1200ドル相当のAlibaba Cloudクレジットを獲得](https://www.alibabacloud.com/ja/referral?referralCode=ffxt3q)できます。ECSインスタンスのセットアップ方法がわからない場合は、[このチュートリアル](https://www.alibabacloud.com/blog/3-ways-to-set-up-a-linux-server-on-alibaba-cloud_572384?spm=a2c65.11461447.0.0.1baf580dMPZk5U)または[クイックスタートガイド](https://www.alibabacloud.com/help/ja/doc-detail/25422.htm)を参照してください。ECSインスタンスには、少なくとも1GBのRAMと1つのCoreプロセッサが必要です。
- Alibaba Cloudから登録された[ドメイン名](https://www.alibabacloud.com/ja/domain)。すでにAlibaba Cloudまたは他のホストからドメインを登録している場合は、そのドメインネームサーバーレコードを更新することができます。
- ドメイン名は、あなたのAlibaba Cloud ECSのIPアドレスを指している必要があります。
- Alibaba CloudのVNCコンソールまたはPCにインストールされているSSHクライアントにアクセスします。
- サーバーのホスト名を設定し、root権限を持つユーザーを作成します。

#環境の設定
###サーバーの設定
何らかのパッケージのインストールを進める前に、以下のコマンドを使用してUbuntuシステムを更新してください。このコマンドを実行するには、root ではないユーザーから sudo 権限でログインすることを忘れないでください。

```
# sudo apt update && sudo apt upgrade
```

###PHPのインストール
Dolibarr には PHP 5.4.0 以降が必要です。このチュートリアルでは、PHP 7.2 をインストールします。PHP 7.2をインストールするには、以下の手順を完了させます。

pythonのソフトウェアプロパティとソフトウェアプロパティ共通をインストールする必要があります。そのためには、以下のコマンドを実行します。

```
# sudo apt-get install software-properties-common python-software-properties 
```

次に、新しいバージョンのPHP用のリポジトリを追加します。

```
# sudo add-apt-repository ppa:ondrej/php
```

利用可能なリポジトリを更新するために更新します。

```
# sudo apt update
```

PHP 7.2をインストールするには、以下のコマンドを実行します。

```
# sudo apt install -y php7.2
```

###必要な PHP 拡張機能のインストール
Dolibarr には以下の PHP 拡張機能が必要です。

1、php7.2-cli
2、php7.2-fpm
3、php7.2-common
4、php7.2-mysql
5、php7.2-pgsql
6、php7.2-sqlite3
7、php7.2-GD
8、php7.2-mbstring
9、php7.2-mcrypt
10、php7.2-soap
11、php7.2-curl
12、php7.2-zip
13、php7.2-xml
上記のPHPの拡張機能をインストールするには、以下のコマンドを実行します。

```
# sudo apt-get -y install php7.2-cli php7.2-mbstring php7.2-common php7.2-mysql php7.2-fpm php7.2-xml php7.2-curl php7.2-soap php7.2-zip php7.2-pgsql php7.2-sqlite3 php7.2-gd 
```

上記の拡張機能をインストールすると、Apache2も自動的にインストールされます。そのため、結果的に別途Apacheをインストールする必要はありません。最後に、以下のコマンドを実行して、インストールされているPHPのバージョンを確認します。

```
# php —version
```

###MariaDBのインストール
Dolibarr は [MySQL](https://www.mysql.com/?spm=a2c65.11461447.0.0.1baf580dNt8udB)、[PostgreSQL](https://www.postgresql.org/?spm=a2c65.11461447.0.0.1baf580dNt8udB)、[SQLite](https://www.sqlite.org/index.html?spm=a2c65.11461447.0.0.1baf580dNt8udB) をサポートしています。このチュートリアルでは、MySQLに[MariaDB](https://mariadb.org/?spm=a2c65.11461447.0.0.1baf580dNt8udB)サーバを使用します。デフォルトでは、Ubuntuのリポジトリには古いバージョンのMariaDBサーバがインストールされています。新しいバージョンのMariaDBを使用するには、UbuntuシステムにMariaDBリポジトリを追加する必要があります。そのためには、以下の手順に従ってください。

以下のコマンドを実行してキーを確認します。

```
# sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
```

リポジトリを追加します。

```
# sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main’
```

システムをアップデートします。

```
# sudo apt update
```

以下のコマンドでMariaDBをインストールします。

```
# sudo apt install -y mariadb-server
```

再起動後に自動的に起動できるように、MariaDBサーバーを起動して有効にします。

```
# sudo systemctl start mariadb
# sudo systemctl enable mariadb
```

ここで以下のコマンドを実行して、MariaDBサーバーのセキュリティを強化し、rootユーザーにパスワードを設定します。

```
# sudo mysql_secure_installation
```

次に、以下のコマンドを使用して、rootユーザとしてMySQLシェルに接続し、パスワードを入力します。

```
# sudo mysql -u root -p
```

以下のMySQLクエリをMariaDBサーバで実行します。

```
CREATE DATABASE doli CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'aareez'@'localhost' IDENTIFIED BY '654321Ab';
GRANT ALL PRIVILEGES ON doli.* TO 'aareez'@'localhost';
FLUSH PRIVILEGES;
EXIT; 
```

###Composerのインストール
Composer をインストールして設定するには、以下のコマンドを実行します。

```
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
# php composer-setup.php
# php -r "unlink('composer-setup.php');"
# sudo mv composer.phar /usr/local/bin/composer
```

以下のコマンドを実行することで、composerが正常にインストールされたかどうかを確認することができます。

```
# composer -v
```

#Dolibarrのインストールと設定
Dolibarrをインストールするには、以下の手順に従う必要があります。

コマンドを使って /var/www/html に移動します。

```
# cd /var/www/html
```

これで /var/www/html ディレクトリの所有者を aareez に変更します。

```
# sudo chown -R aareez:aareez /var/www/html
```

以下のコマンドでindex.htmlファイルを削除します。

```
# sudo rm index.html
```

以下のコマンドを使用して、Dolibarrの最新の安定版をダウンロードしてください。

```
# composer create-project dolibarr/dolibarr
```

apache サーバが必要なファイルにアクセスできるように、/var/www/html の所有権を www-data に証明します。

```
# sudo chown -R www-data:www-data /var/www/html
```

###Apache サーバの設定
ここで、Dolibarr用のバーチャルホスト設定ファイルを作成したいと思います。そのためには、以下のコマンドを実行します。そうすることで、nanoのテキストエディタでファイルが開きます。

```
# sudo nano /etc/apache2/sites-available/dolibarr.conf
```

次のコードをコピーしてDolibarrし、ファイルを保存します。

```
<VirtualHost *:80> 
    ServerAdmin admin@xyz.com
    ServerName softpedia.xyz
    DocumentRoot /var/www/html/dolibarr/htdocs
    DirectoryIndex index.php index.htm index.html
   <Directory /var/www/html>
        Options +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
 ErrorLog ${APACHE_LOG_DIR}/Dolibarr_error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/Dolibarr_access.log combined
</VirtualHost>
```

以下のコマンドを実行してデフォルトサイトを無効にします。

```
# sudo a2dissite 000-default.conf
```

ここで、新しく作成したバーチャルホストを有効にする必要があります。これを行うには、以下のコマンドを実行します。

```
# sudo a2ensite dolibarr
```

これでrewrite modを有効にする必要があります。apache2ディレクトリの設定ファイルを編集するか、以下のコマンドを実行してください。

```
# sudo a2enmod rewrite
```

ここで、SSLエンジンを有効にする必要があります。apache2ディレクトリの設定ファイルを編集するか、以下のコマンドを実行してください。

```
# sudo a2enmod ssl
```


ここで、以下のコマンドを実行して変更を適用し、設定を読み込むために apache サーバを再起動する必要があります。

```
# sudo service apache2 restart
```

これで、ドメイン名またはECSのIPアドレスからDolibarrにアクセスできるようになりました。今回のシナリオでは、ドメイン名 `http://softpedia.xyz` からアクセスしています。これらの手順を踏むと、以下のような画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/8456f966-fe52-edb5-6300-33d966c4a12e.png)


お使いのブラウザの言語を自動的に検出します。ただし、ご希望の言語を選択して「次のステップへ」をクリックしてください。すると、以下の画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/6a75c021-c604-ad5b-3ca2-88686f1bc3c0.png)


スタートボタンをクリックして続行します。データベースの設定ページにリダイレクトされます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/6bf6325e-279b-ea4f-f8c9-46a70889b27d.png)


###データベースの設定
ここで以下のフォームを入力し、「次のステップへ」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/12b4bae8-f5d2-c73c-c895-82b20844d66a.png)

次のページにリダイレクトされます。ここで次のステップをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/231223a9-2a25-0425-e2a7-4d4589035bf2.png)

これで以下の画面が表示されます。次のステップをクリックして次に進みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/083323b9-dc13-d48a-decc-c88393b30359.png)

これで次のページにリダイレクトされ、管理者の資格情報を設定することができます。フォームを入力して次のステップをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/d09a8db9-50ff-c90e-8ea1-1aa6807c1e1a.png)

これで以下のページにリダイレクトされます。Go to Dolibarrをクリックして次に進みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/5cf5e2cf-0f55-3bac-bf6b-acad34c71d1a.png)

ログインフォームにリダイレクトされます。管理者の資格情報を使用してログインしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/f71d1589-b567-3ba9-1315-aeca38b73c9d.png)

###SSL証明書のインストール
Let's Encrypt with Certbotを使ってSSL証明書をインストールします。そのためには、以下の手順を実行します。

パッケージを更新します。

```
# sudo apt-get update
```

software-properties-commonをインストールします。

```
# sudo apt-get install software-properties-common.
```

以下のコマンドを実行して、サートボットのリポジトリを追加します。

```
# sudo add-apt-repository ppa:certbot/certbot
```

追加された certbot リポジトリを読み込むようにパッケージを更新します。

```
# sudo apt-get update
```

SSL証明書発行前にapacheを停止します。


```
# sudo systemctl stop apache2
```

以下のコマンドを実行して、python-certbot-apacheをインストールします。

```
# sudo apt-get install python-certbot-apache
```

次のコマンドを実行して、Let's EncryptSSLを発行します。

```
# sudo certbot --apache -d softpedia.xyz
```

オプション2を選択してリンクをhttpsにリダイレクトし、SSLのバーチャルホスト設定を更新します。その後、apacheサーバを再起動します。

```
# sudo systemctl start apache2
```

`https<span>://your_domain_name</span>.tld`からアクセスできます。

###ファイアウォールとポートの設定
Dolibarrの設定が完了したので、ファイアウォールを有効にしている場合は、クラウドサーバーのAlibaba Cloudセキュリティグループで、ポート80/tcpと443/tcpの例外を追加するルールを定義する必要があります。これらのポートは、ECSインスタンスを作成する際に有効にすることができます。これらのポートのブロックを解除し忘れた場合は、このガイドの手順に従ってください。[セキュリティグループのルールを追加](https://www.alibabacloud.com/help/doc-detail/25471.htm?spm=a2c65.11461447.0.0.1baf580dNt8udB)します。

*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*