Help us understand the problem. What is going on with this article?

初心者向け! コピペでできる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

こちらの記事を参考にさせていただきました。詳細な手順、各コマンドの意味はこちらから。

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 install epel-release -y

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm -y
yum install --enablerepo=remi,remi-php71 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


こちらの記事を参考にさせていただきました。シリーズになっていて、とても助かりました。詳細な手順、各コマンドの意味はこちらから。

MariaDB インストール

yum install -y mariadb mariadb-server
rpm -qa | grep maria

systemctl enable mariadb.service
systemctl start mariadb.service

mysql_secure_installation

こちらの記事を参考にさせていただきました。詳細な手順、各コマンドの意味はこちらから。

なお、MariaDBはデータベースの作成や、ユーザーの追加も必要です。私はこちらの記事にお世話になりました。

phpMyAdminのインストール

ネコでもわかる!さくらのVPS講座 ~第五回「phpMyAdminを導入しよう」に記載された手順で導入します。

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

続いて、/etc/httpd/conf.dを変更します。vimの使いかたはよく使う Vim のコマンドまとめを参考にしました。

cd /etc/httpd/conf.d/
vim phpMyAdmin.conf
<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>

となっているところを

<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にしてみましょう。実行できることが確認出来たら、用途に適した属性値に直しましょう。再帰的に行っていない場合などもありますので、ご注意を。

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away