【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 -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
こちらの記事を参考にさせていただきました。とても丁寧で分かりやすいので、各コマンドの意味を確認するのにとても役立ちます。
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にしてみましょう。実行できることが確認出来たら、用途に適した属性値に直しましょう。再帰的に行っていない場合などもありますので、ご注意を。
※訂正できるかわかりませんが、間違いがあったら、コメントください。