CentOS 7.3のLAMPでImpressPages 5.0を設定する

ImpressPagesはオープンソースで無料のCMSです。(モデル・ビュー・コントローラ) **MVC**アーキテクチャをベースにしています。

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

[Alibaba Cloud Tech Share](https://www.alibabacloud.com/campaign/techshare?spm=a2c65.11461447.0.0.2d9b7128i4cdHj) 執筆、Arslan Ud Din Shafiq。

ImpressPagesはオープンソースで無料のコンテンツ管理システム（CMS）です。それは（モデル-ビュー-コントローラ）MVCアーキテクチャに基づいています。ImpressPagesは、軽量で効果的かつシンプルなCMSで、デフォルトで多言語に対応しています。ドラッグ＆ドロップだけでインターフェースを作ることができます。

ImpressPages 5.0のインストールは以下の手順で行います。

###前提条件
1、Alibaba Cloud [Elastic Compute Service](https://www.alibabacloud.com/product/ecs?spm=a2c65.11461447.0.0.2d9b7128i4cdHj) (ECS)をお持ちである必要があります。初めての方は、[ここをクリック](https://account-intl.aliyun.com/register/intl_register.htm?spm=a2c65.11461447.0.0.2d9b7128i4cdHj&biz_params=%7B%22intl%22%3A%22%7B%5C%22referralCode%5C%22%3A%5C%22ffxt3q%5C%22%7D%22%7D)してAlibaba Cloudの[無料トライアル](https://www.alibabacloud.com/campaign/free-trial?spm=a2c65.11461447.0.0.2d9b7128i4cdHj)をお試しください。このチュートリアルでは、Alibaba Cloud ECSと[CentOS 7](https://www.alibabacloud.com/blog/how-to-install-impresspages-5-0-lamp-in-centos-7-3_594682?spm=a2c65.11461447.0.0.2d9b7128i4cdHj)を使用しています。

2、サーバーのホスト名を設定します。

3、オプション：セキュリティグループを設定したり、ファイアウォールを有効にしたりして、サーバーのセキュリティを確保しましょう。Alibaba Cloudのセキュリティ製品の中には、[Server Guard](https://www.alibabacloud.com/product/server-guard?spm=a2c65.11461447.0.0.2d9b7128i4cdHj)や[Anti-DoS Basic](https://www.alibabacloud.com/product/anti-ddos?spm=a2c65.11461447.0.0.2d9b7128i4cdHj)など無料で提供されているものもあります。

###ECSインスタンスへの接続
1、SSHクライアント(例：Putty - Puttyは [https://www.putty.org](https://www.putty.org/?spm=a2c65.11461447.0.0.2d9b7128i4cdHj) から入手できます)またはAlibaba Cloudアカウントのダッシュボードで利用可能なVNCコンソールを介して、rootユーザ名とパスワードでログインします。

###ルート権限を持つユーザーを追加する
2、root権限を持つ新しいユーザーを追加するには、以下のコマンドを使用します。

`# useradd aareez`

ここで、"aareez "は任意のユーザー名で置き換えることができます。

3、選択したユーザ名に希望のパスワードを設定します。私の場合、ユーザー名は "areez "でした。以下のコマンドを入力すると、新しいパスワードを入力するように促されます。

`# passwd aareez`

4、今度はsudoユーザーのグループにユーザー名を割り当ててroot権限を与えます。そのために、/etc/sudoersファイルをチェックして、sudoersグループが有効になっているかどうかを確認します。そのために、以下のコマンドを実行します。

`# visudo`

5、上記コマンドを実行すると、開いたファイルに以下の行が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/bb563b20-c38a-3084-28dc-2248ca85be38.png)


6、以下のコマンドを実行して、ユーザ名 "aareez "を "wheel "グループに追加します。

`# usermod -aG wheel aareez`

上記コマンド実行後、以下のコマンドを実行することで、そのグループの所属を確認することができます。

`# groups aareez`

7、新しいユーザー名とパスワードでログインします。以下のコマンドでユーザを切り替えることができます。

`# su - aareez`

現在、新しいアカウントからログインしていることが確認できます。これを確認したい場合は、以下のコマンドで確認できます。

`# whoami`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/28429e44-1acc-4db4-cf35-57c1c1c09407.png)

###CentOS 7システムを更新する
8、パッケージのインストールを進める前に、以下のコマンドでCentOSをアップデートしてください。このコマンドを実行するには、root ではないユーザから sudo 権限でログインすることを忘れないでください。

`# sudo yum -y update`

9、パスワードの入力を求められます。ここでパスワードを入力し、Enterキーを押してアップデートを待ちます。

これでCentOSのアップデートが完了しました。次のステップは、Apache Web Serverをインストールすることです。

###Nano Editorのインストール
10、Nano Editorをインストールするには、以下のコマンドを実行します。

`# sudo yum install nano`

###epel-release のインストール
11、epel-releaseをインストールするには、以下のコマンドを実行します。

`# sudo yum install epel-release`

###Apache ウェブサーバのインストール
12、apache web-serverをインストールするには、以下のコマンドを実行する必要があります。

`# sudo yum -y install httpd`

パスワードの入力を求められます。今すぐパスワードを入力し、Enterキーを押して更新を待ちます。

13、インストール後、ECSを起動したときに自動的に実行されるようにする必要があります。そのためには、以下のコマンドを実行します。

`# sudo systemctl enable httpd`

`# sudo systemctl start httpd`

14、DocumentRoot ディレクティブが正しいディレクトリを指していることを確認するには、以下のコマンドで Apache の設定ファイルを確認してください。

`# sudo nano /etc/httpd/conf/httpd.conf`

Note: DocumentRoot の設定は以下のようになります。

`# DocumentRoot "/var/www/html”`


15、以下のコマンドを実行して00-base.confを開き、mod_rewriteを検索して、このモジュールが正しく読み込まれているかどうかを確認します。

`# sudo nano /etc/httpd/conf.modules.d/00-base.conf`

mod_rewriteモジュールが既にロードされている場合、以下のような行が表示されます。

`LoadModule rewrite_module modules/mod_rewrite.so`

セミコロンは、任意の Apache モジュールの行にコメントをつけるために使われます。上記の行がセミコロン(;)で始まる場合は、セミコロンを削除してコメントを外します。

16、さて、ImpressPages CMSでmod_rewriteを正しく動作させるためには、Apacheの設定を編集する必要があります。編集用のファイルを開くには、以下のコマンドを使用します。

`# sudo nano /etc/httpd/conf/httpd.conf`

17、セクション<Directory "/var/www/html">を探し、AllOverrideの値を以下のように変更します。

|From	|To|
|:-----------|:------------|
|AllowOverride none	|AllowOverride All|

修正後のセクションは以下のようになります。

```
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
```

18、Ctrl+Xを押して変更を保存し、Yを押してからEnterキーを押します。これで変更が保存されました。

19、変更を正常に動作させるためには、apacheを再起動する必要があります。そのためには、以下のコマンドを実行します。

`# sudo systemctl restart httpd`

###HTTPとHTTPSのためのファイアウォールを設定する
ファイアウォールを有効にしている場合は、クラウドサーバーの Alibaba Cloud セキュリティグループでルールを定義し、ポート 80/tcp, 443/tcp の例外を追加する必要があります。これらのポートは、ECSインスタンスを作成する際に有効にすることができます。これらのポートのブロックを解除し忘れた場合は、以下の手順に従ってください。デフォルトでは、これらのポートはファイアウォールによってブロックされています。

これを行うには、スナップショットで与えられた指示に従ってください。

20、Elastic Compute Serviceセクションに移動します。ImpressPages CMSに使用したECSのMoreボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/7cc128c8-d8df-bb13-3a00-11cb772194a6.png)

21、ルールの設定をクリックします。

22、ルールのクイック作成をクリックします。

23、下のスクリーンショットのように設定を追加してOKをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/95c4f5ec-a417-237d-472c-1a9c205c13a0.png)

###SELinux (Security Enhanced Linux)を無効化
ImpressPages CMSのパーミッション関連の問題を回避するためには、SELinuxを無効にする必要があります。そのためには、まず、SELinuxが有効になっているか無効になっているかを確認します。

24、確認するには、以下のコマンドを使用します。

`# sudo sestatus`


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/c4c9ebf2-bccc-7720-7281-1ffbe10c9b0f.png)

Alibaba Cloud ECSではデフォルトで無効になっています。ただし、以前にECSに変更を加えていた場合は、このステップに従ってください。ステータスが無効になっている場合は、このステップをスキップします。それ以外の場合は、以下のコマンドを使用してファイルを開きます。

`# sudo nano /etc/selinux/config`

25、開いているファイルに以下の変更を加え、変更後のファイルを保存します。

|From|	To|
|:-----------|:------------|
|SELINUX=enforcing|	SELINUX=disabled|

Ctrl+Xを押してから「Y」を押し、Enterキーを押して変更を保存し、開いたファイルを閉じます。

SELinuxを無効にした後、ECSを再起動する必要があります。ECSを再起動するには、以下の手順に従ってください。

###PHP 7.1をインストールする
26、PHP 7.1をCentOSにインストールするには、外部リポジトリを追加する必要があります。そのためには、以下のコマンドを実行します。

`# sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm`

27、リポジトリを追加したら、ImpressPages CMSで必要なモジュールと一緒にPHP7.1をインストールします。以下のコマンドを実行してください。

`# sudo yum -y install php71w php71w-gd php71w-mbstring php71w-mysql php71w-xml php71w-common php71w-pdo`

PHPモジュールのインストールに成功すると、以下のような画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/00b78be6-b184-aec0-7533-5b76d7fa279c.png)

###MariaDB（MySQL）サーバのインストール
28、MySQLサーバの代替として、CentOSではデフォルトでMariaDBサーバを使用しています。MariaDBをインストールするには、以下のコマンドを使用します。

`# sudo yum -y install mariadb-server`

[Alibaba Cloud Aspara DB for RDS](https://account-intl.aliyun.com/register/intl_register.htm?spm=a2c65.11461447.0.0.2d9b7128i4cdHj&biz_params=%7B%22intl%22%3A%22%7B%5C%22referralCode%5C%22%3A%5C%22ffxt3q%5C%22%7D%22%7D)は最高の代替手段と言えるでしょう。こちらの使用をお勧めします。

29、インストールが成功した後、システムの再起動時に自動的に起動するようにMariaDBサーバーを有効にします。これを行うには、以下のコマンドを使用します。

`# sudo systemctl enable mariadb`

`# sudo systemctl start mariadb`

30、さて、MariaDBサーバーのセキュリティを確保するために、コマンドを実行します。

`# sudo mysql_secure_installation`

ルートパスワードはデフォルトでは空白になっていますが、エンターボタンを押して進み、「Y」を選択してパスワードを選択します。


###データベースの作成
31、MariaDBシェルを使用してrootユーザーとしてログインし、以下のコマンドを実行します。

`# sudo mysql -u root -p`

32、コマンドプロンプトは、ユーザー'root'のパスワードを入力するように求められます。パスワードを入力してエンターキーを押すと、MariaDBのコマンドプロンプトにプロンプトが表示されます。

33、ImpressPages CMSのデータベースとこのデータベースのユーザーを作成するには、次のクエリを使用します。

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

ここでは、im_dbを任意の名前に変更することができます。

###Unzip のインストール
34、任意のzipフォルダを解凍するには、unzipツールが必要です。そのためには、以下のコマンドを使用します。

`# sudo yum -y install unzip`

35、その後、「y」と入力してEnterキーを押します。

###ImpressPages CMSファイルのインストール
36、cd /var/www/html/に移動します。

注意: もし、「そのようなディレクトリやファイルがありません」などのエラーが出た場合は、htmlディレクトリを作成してください。そのためには、cd /var/wwwに移動し、以下のコマンドを実行してhtmlディレクトリを作成し、cd htmlと入力してエンターキーを押します。

`# sudo mkdir html`

37、今すぐ次のコマンドを使用してインストール用のImpressPages CMSパッケージを取得します。

`# sudo wget http://download.impresspages.org/ImpressPages_5_0_3.zip`

上記のコマンドでエラーが出た場合や、最新版のインストールが必要な場合は、[ここをクリック](https://www.impresspages.org/download?spm=a2c65.11461447.0.0.2d9b7128i4cdHj)して最新版のリンクを取得してください。

38、カレントディレクトリにあるファイルを一覧表示するには、以下のコマンドを使用します。

`# ls -la`

39、今すぐ圧縮されたzipフォルダを解凍してください。そのためには、以下のコマンドを使用します。

`# sudo unzip ImpressPages_5_0_3.zip`

40、今、コマンドを使ってインストールしたディレクトリを/var/www/htmlに移動します。

`# sudo mv ImpressPages/* ImpressPages/.htaccess /var/www/html`

41、ファイルの所有者を変更してパーミッションの問題を回避します。以下のコマンドを実行します。

`# sudo chown -R apache:apache * .htaccess`

42、上記の手順を行った後、コマンドでApacheを再起動します。

`# sudo systemctl restart httpd`

おめでとうございます。これで、IPアドレス経由でImpressPages CMSにアクセスできるようになりました。

###ImpressPages CMSのインストールを完了
43、ImpressPages CMSにアクセスするには、47.254.66.175ではなく、ECSのIPアドレスを使用し、ブラウザのアドレスボックスに以下のアドレスを記述してエンターキーを押してください。

[http://47.254.66.175/index.php](http://47.254.66.175/index.php?spm=a2c65.11461447.0.0.2d9b7128i4cdHj)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/79c6cdfe-9565-e687-fbae-41da1087fc74.png)


44、あなたは、ウェブサイトの設定ページにリダイレクトされます、あなたのウェブサイトの名前、管理者のメールアドレスとタイムゾーンを入力します。

|ウェブ名|あなたのウェブサイトの名前|
|:-----------|:------------|
|管理者のメールアドレス	|あなたのメールアドレス|
|タイムゾーン|あなたのタイムゾーン|

「次へ」を押します。

45、これでシステムチェックページが開きますので、Nextを押します。

46、この後、データベースの設定ページにリダイレクトされます。上のクエリで使用したように以下の値を追加します。

|ホスト	|localhost|
|:-----------|:------------|
|データベース名| im_db|
|ユーザー名 |im_db|
|パスワード |SecurePassword|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/cfb76d5f-7be8-93a2-f001-1a1acb058d92.png)

そして次へボタンを押してください。

47、これで自動的にアミンパネルにリダイレクトされます。もし自動的にリダイレクトされない場合は、以下のリンクをクリックしてECSのIPアドレスを追加してください。

[http://47.254.66.175/admin.php](http://47.254.66.175/admin.php?spm=a2c65.11461447.0.0.2d9b7128i4cdHj)

48、それでも管理画面にアクセスできない場合は、.htaccessファイルに問題がある可能性があります。そのためには、以下のコマンドを使ってエディタで.htaccessを開いてください。

`# sudo nano .htaccess`

ユーザーのパスワードの入力を求められます。パスワードを入力してEnterキーを押します。

49、下の行のコメントを外してみてください。

```
Options -Indexes
Options -MultiViews
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/28f6eea6-8d85-8183-5eff-ccc69a077ab9.png)

Ctrl+Xを押して、「Y」を押してからEnterキーを押します。

50、apacheサーバを再起動

`# sudo systemctl restart httpd`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/56d68cee-0fb7-5744-4729-a3f45e9ea638.png)

お待たせしました....チュートリアルは終了しました。質問や問題があれば、コメント欄に質問を書いてみてください。ありがとうございました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/981b3173-bfef-b214-04ca-5ddcfbee1ba2.png)

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