Ubuntu 16.04を実行しているAlibaba Cloud Elastic Compute ServiceにLimeSurvey CEをインストール

このチュートリアルでは、**Alibaba Cloud ECSインスタンス**に**LimeSurvey CE**をインストールして設定します。

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

#前提条件
- 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/help/ja/doc-detail/25422.htm)または[クイックスタートガイド](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のインストール
Limesurvey は PHP 5.5.5.9 以降が必要です。このチュートリアルでは、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
```

最後に、PHP7.2をインストールするには、以下のコマンドを実行します。

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


###必要な PHP 拡張機能のインストール
LimeSurvey CEを使用するには、以下のPHP拡張機能が必要です。

1、php7.2-cli
2、php7.2-fpm
3、php7.2-common
4、php7.2-mysql
5、php7.2-ldap
6、php7.2-imap
7、php7.2-GD
8、php7.2-mbstring
9、php7.2-zip
10、php7.2-xml

上記のPHPの拡張機能をインストールするには、以下のコマンドを実行します。

```
# sudo apt-get -y install php7.2-xml php7.2-mbstring php7.2-common php7.2-mysql php7.2-fpm php7.2-cli php7.2-gd php7.2-zip php7.2-imap php7.2-ldap 
```

上記の拡張機能をインストールすると、自動的に apache2 がインストールされます。そのため、明示的にapacheをインストールする必要はありません。

インストールされているPHPのバージョンを確認するには、以下のコマンドを実行します。

```
# php —version
```

###MariaDBのインストール
LimeSurvey CE は MySQL、PostgreSQL、MSSQL、SQLite をサポートしています。このチュートリアルでは、MySQLにMariaDBサーバを使用します。デフォルトでは、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 lime CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'aareez'@'localhost' IDENTIFIED BY '654321Ab';
GRANT ALL PRIVILEGES ON lime.* TO 'aareez'@'localhost';
FLUSH PRIVILEGES;
EXIT; 
```

###Unzipのインストール
圧縮されたzipフォルダを解凍するために使用するunzipをインストールする必要があります。unzipをインストールするには、コマンドを実行します。

```
# sudo apt-get install unzip -y
```

#LimeSurvey CE のインストールとセットアップ
LimeSurvey CEをインストールするには、以下の手順に従います。

コマンドを使って /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
```

LimeSurvey CE の最新の安定版を以下のコマンドでダウンロードしてください。

```
# wget https://download.limesurvey.org/latest-stable-release/limesurvey3.15.0+181008.zip
```

以下のコマンドを実行して、ダウンロードした圧縮フォルダを解凍します。

```
# unzip limesurvey3.15.0+181008.zip
```

以下のコマンドを実行してzipフォルダを削除してください。

```
# rm limesurvey3.15.0+181008.zip
```

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

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

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

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

以下のコードをコピーしてLimeSurvey CEに保存します。

```
<VirtualHost *:80> 
    ServerAdmin admin@xyz.com
    ServerName softpedia.xyz
    DocumentRoot /var/www/html/limesurvey/
    DirectoryIndex index.php index.htm index.html
   <Directory /var/www/html>
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/LimeSurvey_error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/LimeSurvey_access.log combined
</VirtualHost>
```

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

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

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

```
# sudo a2ensite lime
```

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

```
# sudo a2enmod rewrite
```

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

```
# sudo a2enmod ssl
```

以下のコマンドを実行して変更を適用し、設定をロードするには、apacheサーバを再起動する必要があります。

```
# sudo service apache2 restart
```

LimeSurvey CEには、自分のドメイン名やECSのIPアドレスからアクセスすることができます。私の場合は、`http://softpedia.xyz` を経由してアクセスしています。以下のような画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/1dccdd56-7698-985e-f15d-95ad814a59d8.png)


それはあなたのブラウザの言語を自動的に検出します。ただし、ご希望の言語を選択して「インストール開始」をクリックしてください。以下の画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/27d561e6-0e06-899b-49f2-b60fc5f5aff0.png)

「承諾する」ボタンをクリックして次に進みます。インストール前のチェックページに移動します。全てが正常に動作していることが確認できます。ここでエラーが出た場合は、トラブルシューティングをしてみてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/7ebb0a3e-5fb6-8fe3-9a37-7f572cefb445.png)


「次へ」ボタンをクリックすると、データベースの設定ページにリダイレクトされます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/4107ec09-0b7b-09a9-85c4-8ba29a5792de.png)


クリックして[次へ]ボタンをクリックして、あなたは、テーブルをデータベースに埋め込むことを許可するかどうかを尋ねられます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/e87311a9-25d7-95f8-ebb5-f7cf4ec7d3e1.png)

Populate databaseボタンをクリックして続行すると、管理者の設定ページにリダイレクトされます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/e48d7d71-b82f-680f-2181-1692fb6ad25e.png)

ここで、上記のフォームに情報を入力し、「次へ」をクリックします。管理者アカウントが作成されると、以下のページにリダイレクトされます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/da88b8dd-bce8-b38a-0bc4-b05f3f52eb3c.png)


管理画面をクリックすると、以下のページにリダイレクトされます。管理者の資格情報を使用してアカウントにログインします。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/57b6ba0b-2c5a-c871-26e6-35de48780c21.png)


ログインすると、以下のようなダッシュボードが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/aa51c954-ca88-d8c0-09b5-6e201f1e76ac.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 Encrypt SSLを発行してもらいます。

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

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

```
# sudo systemctl start apache2
```

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


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


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