初心者向け！　コピペでできるApache、PHP7、MariaDBインストール for CentOS7

【2017年5月25日追記】PHPのインストール方法が間違えていました。ご迷惑をおかけしました。

PHPのWebプログラムを動かすとき、多くの場合に必要となる3点セットをまとめてみました。コピペで標準的なインストールができるので、とても便利です。

※初心者（CentOS初めて使ってから6ヵ月の学生）が、まずは動かしてみたい！！という、これから始める人のために書きます。rootユーザーで作業します。間違えていたらごめんなさい。

#Apache インストール

```
yum install -y httpd
systemctl restart httpd
systemctl enable httpd
mkdir /var/log/httpd/sample_project
apachectl configtest
apachectl restart
systemctl restart httpd
firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --reload
firewall-cmd --list-all
```
[こちら](https://qiita.com/Esfahan/items/364462502b6d19dea1fe)の記事を参考にさせていただきました。詳細な手順、各コマンドの意味は[こちら](https://qiita.com/Esfahan/items/364462502b6d19dea1fe)から。

#PHP5.4 インストール

```

yum remove php-* -y

yum install --enablerepo=remi,remi-php54 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysqli -y

yum -y install mariadb-server
systemctl restart httpd.service

php --version

echo extension=pdo.so > /etc/php.ini
echo extension=php_pdo.dll > /etc/php.ini
echo extension=pdo_mysql.so > /etc/php.ini


```

#PHP7.x インストール

```

yum remove php-* -y

yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
```

[こちら](https://www.rem-system.com/centos-httpd-php73/)の記事を参考にさせていただきました。とても丁寧で分かりやすいので、各コマンドの意味を確認するのにとても役立ちます。

#MariaDB インストール
```
yum install -y mariadb mariadb-server
rpm -qa | grep maria

systemctl enable mariadb.service
systemctl start mariadb.service

mysql_secure_installation

```

[こちら](https://qiita.com/iamdaisuke/items/adc561e057a69afebad8)の記事を参考にさせていただきました。詳細な手順、各コマンドの意味は[こちら](https://qiita.com/iamdaisuke/items/adc561e057a69afebad8)から。

なお、MariaDBはデータベースの作成や、ユーザーの追加も必要です。私は[こちらの記事](https://qiita.com/iamdaisuke/items/adc561e057a69afebad8)にお世話になりました。

#phpMyAdminのインストール
[ネコでもわかる！さくらのVPS講座 ～第五回「phpMyAdminを導入しよう」](https://knowledge.sakura.ad.jp/9701/)に記載された手順で導入します。

```
yum install -y --enablerepo=remi,remi-php71 phpMyAdmin
```

続いて、/etc/httpd/conf.dを変更します。vimの使いかたは[よく使う Vim のコマンドまとめ](https://qiita.com/hide/items/5bfe5b322872c61a6896)を参考にしました。

```
cd /etc/httpd/conf.d/
vim phpMyAdmin.conf
```

```Before

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

```

となっているところを

```After

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require all granted
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>
```

とすれば大丈夫です。最後に、httpdを再起動します。

```
systemctl restart httpd
```

#アクセスできないとき
初めての構築で苦戦した箇所をまとめておきます。
###ファイヤーウォール設定
私は、ConoHaVPS及びIDCFクラウドVPSを使用して試してみました。ConoHaは簡単なのですが、IDCFはセキュリティーにうるさく、ファイヤーウォールや秘密鍵などの設定が必要です（でも、月額500円は学生の味方☆彡）。慣れるまではConoHaの方が良いかもしれません。
私の場合、ファイヤーウォールなどの設定をコントロールパネルで確認して解決しました。

###ファイルのパーミッション
ファイルのアクセス権限が非公開になっていてもアクセスできません。その他のパーミッションで、一度権限を777にしてみましょう。実行できることが確認出来たら、用途に適した属性値に直しましょう。再帰的に行っていない場合などもありますので、ご注意を。

※訂正できるかわかりませんが、間違いがあったら、コメントください。