ゆきばた

ゆきばたの果てしない戯言

Centos7とPHP7 の LAMP環境を構築する(ApacheのPathは /usr/local/apache/ で)

技術系記事です

yum を使って簡単に開発環境が構築できる現代で、
毎回2,3か所くらい詰まって解決するのが面倒だったので、手順をまとめました。

これで1発OKなはず。


◆前提◆
vagrant で centosが立ち上がっていることを前提としています

◆ゴール◆
local.xxxxx.com などの独自ドメインで phpinfo() が動くこと
apache のパスが /usr/local/apache/ であること
(ソースからapacheをインストールしていた時代のパスのが未だに慣れているため)


f:id:yukibata:20170618132954p:plain


0.事前準備

yumのアップデートを行います

# sudo su root
# yum -y update

1.Apacheのインストール

centOS7 では、2.4がデフォルトみたいです

### apache のインストール
# yum -y install httpd

## vesionの確認
# httpd -v

## サービスの設定と起動
# systemctl enable httpd
# systemctl restart httpd

2. MySQL のインストール

### 事前にリポジトリの追加
# yum -y localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

### MySQL のインストール
# yum -y install mysql-community-server

### version確認
# mysqld --version

### サービス設定と起動
# systemctl enable mysqld.service
# systemctl restart mysqld.service

### passwordの取得
# cat /var/log/mysqld.log | grep "temporary password"
-----------------------------------------------------------------------
2017-06-17T07:05:30.855638Z 1 [Note] A temporary password is generated for root@localhost: {初期パスワード}
-----------------------------------------------------------------------

### passwordの設定(上の{初期パスワード}を使用)
# mysql_secure_installation

### passwordの有効期限設定(デフォルト1年なので、以下を追記して無期限にします)
# vi /etc/my.cnf
-----------------------------------------------------------------------
default_password_lifetime=0
-----------------------------------------------------------------------

### 再起動
# systemctl restart mysqld
 

3. PHP7インストール

### リポジトリインストール
# yum -y install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

### PHPのインストール
# yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-gd php-mysql php-xml

### version確認
# php -version


基本はここまでで完了です。
以下、/usr/local/apache/ のパスで動かしたいので、シムリンクで対応します

4. ドメイン設定

### httpd.conf の編集
# cd /etc/httpd/conf
# cp httpd.conf httpd.conf_bk
# vi httpd.conf


編集内容

### ServerNameの設定(編集)
------------------------------------------------------
# ServerName www.example.com:80
ServerName yukibata.com
------------------------------------------------------


### アクセス許可(編集)
------------------------------------------------------
<Directory />
    AllowOverride none
    # Require all denied
    Require all granted
</Directory>
------------------------------------------------------

### ドメイン設定(追記)
------------------------------------------------------
<VirtualHost *:80>
    DocumentRoot /usr/local/apache/vhosts/local.yukibata.com/htdocs
    ServerName local.yukibata.com.com
    ErrorLog vhosts/local.yukibata.com.com/logs/error_log
    TransferLog vhosts/local.yukibata.com.com/logs/access_log
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory "/usr/local/apache/vhosts/local.yukibata.com/htdocs">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
------------------------------------------------------

5. ドメインに合わせてディレクトリ設定

### ディレクトリ作成と権限
# mkdir -p /usr/local/apache/vhosts/local.yukibata.com/htdocs
# mkdir -p /usr/local/apache/vhosts/local.yukibata.com/logs
# touch /usr/local/apache/vhosts/local.yukibata.com/logs/error_log
# touch /usr/local/apache/vhosts/local.yukibata.com/logs/access_log
# chmod -R 777 /usr/local/apache/vhosts/

### シムリンクを張る
# cd /etc/httpd/
# ln -s /usr/local/apache/vhosts vhosts
# ls -la | grep vhost
---------------------------------------------------------
lrwxrwxrwx   1 root root   24 Jun 18 04:12 vhosts -> /usr/local/apache/vhosts
---------------------------------------------------------

### apache再起動
# systemctl restart httpd.service

6. htdocsにファイルを置いて確認

# echo "<?php phpinfo();" > /usr/local/apache/vhosts/local.yukibata.com/htdocs/test.php

ブラウザから local.yukibata.com/test.php へアクセスして、phpinfo を確認



以上です。
シンプルですが、機械的にやっていけば構築は完了になります。