php7 apache2.4 mysql_CentOS7 + Apache2.4 + MySQL5.7 + PHP7

CentOS7

1. 一般ユーザ作成

rootしかない状態なので、一般ユーザを作成します(hoge)

$ useradd hoge

$ passwd hoge

ユーザー一覧確認

$ cat /etc/passwd

ユーザー名、グループなどの確認

$ id hoge

グループ名=ユーザー名となっているので、必要であればグループ名は適宜変更(developer)

$ groupmod -n developer hoge

2. sudo設定

作成した一般ユーザー(hoge)にsudo権限付与

visudoで/etc/sudoersを開き、下記の行のコメントアウトを外す

$ visudo

%wheel ALL=(ALL) ALL

3.ユーザーをwheelグループに追加

$ usermod -G wheel hoge

4. su設定

wheelグループのみにする

下記の行のコメントアウトを外す

$ vi /etc/pam.d/su

auth required pam_wheel.so use_uid

5. 日本語化(ロケールの変更)

$ localectl set-locale LANG=ja_JP.UTF-8

ロケール確認

$ localectl status

System Locale: LANG=ja_JP.UTF-8

VC Keymap: jp106

X11 Layout: jp

6. SELinuxの停止

下記の行を設定する

$ vi /etc/selinux/config

SELINUX=disabled

7. firewalld

CentOS7からファイアウォールの設定が「iptables」から「firewalld」に変更となっています

現在の設定の確認(デフォルト)

$ firewall-cmd --list-all

public (default, active)

interfaces: eth0

sources:

services: dhcpv6-client ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

httpを追加して、設定反映

(80番ポートを開けたい)

$ firewall-cmd --add-service=http --permanent

success

$ firewall-cmd --reload

success

再度、確認。

$ firewall-cmd --list-all

public (default, active)

interfaces: eth0

sources:

services: dhcpv6-client http ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

8. 再起動

shutdown -r now

リポジトリの設定

インストールに使うリポジトリの設定をします。

CentOSには、公式のリポジトリが用意されていて、通常のyumコマンドで利用可能ですが、保守的で最新のソフトウェアやバージョン更新が行われないので、epelやremiというパッケージをインストールして、各リポジトリにある最新のソフトウェアを利用します。

1. epelパッケージのインストール

$ yum install epel-release.noarch

[epel]の部分のenable=1を、enable=0 に書き換える

$ vi /etc/yum.repos.d/epel.repo

[epel]

name=Extra Packages for Enterprise Linux 7 - $basearch

#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch

failovermethod=priority

enabled=0

2. remiのインストール

$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

[remi]の部分のenable=1を、enable=0 に書き換える

$ vi /etc/yum.repos.d/remi.repo

[remi]

name=Remi‘s RPM repository for Enterprise Linux 7 - $basearch

#baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/

mirrorlist=http://rpms.remirepo.net/enterprise/7/remi/mirror

enabled=0

Apache2.4

1. インストール

$ yum install httpd

2. 起動

$ systemctl start httpd.service

※自動起動の設定

$ systemctl enable httpd.service

MySQL5.7

CentOS7では、mariaDB(MySQL互換のDB)がデフォルトでインストールされている場合があるので、MySQLと競合を起こさないように削除します。

1. mariaDB、既存MySQL削除

$ yum remove mariadb-libs

$ yum remove mysql*

2. インストール

※適宜URLは最新に変更すること

$ yum install http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

$ yum -y install mysql-community-server

3. バージョン確認

$ mysqld --version

mysqld Ver 5.7.15 for Linux on x86_64 (MySQL Community Server (GPL))

4. 起動

systemctl start mysqld.service

※自動起動の設定

systemctl enable mysqld.service

5. rootユーザーの初期パスワード

MySQL5.7では、初回起動と同時にrootユーザーにランダム文字列のパスワードが設定され、ログに出力される。

$ cat /var/log/mysqld.log | grep ‘password is generated‘

201*-**-15T09:53:28.904448Z 1 [Note] A temporary password is generated for [email protected]: _aBC12#/dEF:

6. 初期設定

mysql_secure_installationコマンドで設定していきます。

※新しいルートのパスワードは、大文字、小文字、数字、記号の全てが入っている必要があるので注意

$ mysql_secure_installation

Enter password for user root: //ログに出力されていた初期パスワードを入力

Set root password? //ルートのパスワードを変更しますか? Yでパスワード設定

Remove anonymous users? //誰でもログイン可能になっているが消しますか? Yで消しとく

Disallow root login remotely? //リモートからrootログインを許可しませんか? Yでしない

Remove test database and access to it? //テストデータベース消していいですか? Yで消す

Reload privilege tables now? //設定をすぐに反映しますか? Yで反映

All done!

7. MySQL接続確認

$ mysql -u root -p

Enter password:

8. my.cnf 設定

mysql> SHOW VARIABLES LIKE ‘char%‘;

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)

my.cnfに以下を設定します

ストレージエンジンを、InnoDB、データファイル?ログファイルをテーブルごとに設定

文字コードをutf8に

vi /etc/my.cnf

[mysqld]

default-storage-engine=InnoDB

innodb_file_per_table

character-set-server = utf8

collation-server = utf8_general_ci

[mysql]

default-character-set = utf8

[client]

default-character-set = utf8

mysql> SHOW VARIABLES LIKE ‘char%‘;

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.02 sec)

mysql> SHOW VARIABLES LIKE ‘innodb_file_per_table‘;

+-----------------------+-------+

| Variable_name | Value |

+-----------------------+-------+

| innodb_file_per_table | ON |

+-----------------------+-------+

1 row in set (0.00 sec)

PHP7

1. libmcrypt

mcryptのインストールに必要なので先にインストール

$ yum --enablerepo=epel install libmcrypt

2. インストール

FastCGIで動かせるPHP-FPM、キャッシュ周りのOPcache、APCuはインストールしておきます(後述)

$ yum --enablerepo=remi-php70 install -y php php-cli php-devel php-common php-mbstring php-mysql php-fpm php-gd php-mcrypt php-opcache php-pdo php-xml

$ php -v

PHP 7.0.17 (cli) (built: Mar 14 2017 15:14:30) ( NTS )

Copyright (c) 1997-2017 The PHP Group

Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

with Zend OPcache v7.0.17, Copyright (c) 1999-2017, by Zend Technologies

3. php.ini 設定

初期ファイルのバックアップ

$ cp /etc/php.ini /etc/php.ini.bk

php.iniに以下を設定します

$ vi /etc/php.ini

[PHP]

# レスポンスヘッダにPHPのバージョンを表示しない

expose_php = Off

# 全てのログを出力

error_reporting = E_ALL

# ブラウザでエラーを表示しない

display_errors = Off

# エラーをログに残す

log_errors = On

# エラーログの長さを設定

log_errors_max_len = 4096

# エラーログ出力先

error_log = "/var/log/php_errors.log"

# 文字エンコーディング

default_charset = "UTF-8"

[Date]

# タイムゾーン

date.timezone = "Asia/Tokyo"

[mbstring]

# デフォルト言語

mbstring.language = Japanese

# 内部文字エンコーディング

mbstring.internal_encoding = UTF-8

# HTTP入力文字エンコーディングのデフォルト

mbstring.http_input = auto

# 文字エンコーディング検出順序のデフォルト

mbstring.detect_order = auto

4. 動作確認

ドキュメントルートにphpinfoを出力するphpファイルを作成します。

※/var/www/html/ …ドキュメントルート

$ vi /var/www/html/info.php

// すべての情報を表示します。デフォルトは INFO_ALL です。

phpinfo();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值