LoginSignup
3
2

More than 5 years have passed since last update.

CentOS7.3のインストールメモ (2017/4)

Last updated at Posted at 2017-04-05

以前、7.0が出たときにまとめたのですが少々古くなってきたり、余計な記述もあるので改めてまとめ。
2017年4月の時点ではバージョンは7.3。

CentOS7.0と7.3の違い(気づいた範囲)

  • ifconfigがまさかの復活。
  • visudoでwheelが最初からコメントインされている。

検証環境

  • MacのVMWare Fusion 8.5.x上にインストール。
  • インストール方法は他のコンテンツに譲ります。

VMWare Fusion独自問題

インストール時にネットワークをONにすればいいのですが、忘れた場合は、

/etc/sysconfig/network-scripts/ifcfg-ens***

を編集して、ONBOOT=yesとします。

***は環境依存。ifconfig等(復活してる)で確認します。

基本設定

yum update

何はなくともひとまずyum update

yum update -y

SELinuxの無効化

標準ではSELinuxが有効化されていますので無効化します。

getenforce
Enforcing

/etc/sysconfig/selinuxを編集します。

#SELINUX=enforcing
SELINUX=disabled

そしてrebootします。

作業ユーザーの追加

作業ユーザーを追加し、パスワードを設定します。

useradd hoge
passwd hoge

sudoできるようにする

必要に応じてユーザーがsudoを利用できるようにします。

visudo

どうやら7.3では標準でWheelグループがsudoできるようになっているようです(コメントインされている)。

%wheel  ALL=(ALL)       ALL

では、作業ユーザーをwheelに追加しましょう。

gpasswd -a hoge wheel

証明書でログインできるようにする

ここからは作成したユーザーでの操作を想定しています(必要に応じてsudoします)。
sshdは標準でインストール・起動されておりrootでのログインも許可状態になっているため、一般ユーザーが証明書のみでログインできるように設定を変更します。

鍵の置き場所を作る

鍵を置く場所を作成しておきます。

mkdir ~/.ssh
chmod 700 .ssh

鍵を生成(ローカルでの作業)

鍵はどこでも作れますが、まあ、ローカルで作ります。既に鍵がある場合は省略して下さい。

mkdir ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa

とすると、id_rsa(秘密鍵)とid_rsa.pu(公開鍵)が生成されます。
パーミッションを変更しておきます。

chmod 600 ~/.ssh/*

公開鍵の転送(ローカルでの作業)

ローカルの公開鍵をリモートにコピーします。

scp ~/.ssh/id_rsa.pub username@192.168.0.100:~/.ssh/authorized_keys

sshd_configの設定

標準ではrootによるログイン、パスワードによるログインなどが許可されているため禁止します。
必要に応じてポート番号なども変更してもいいでしょう。

/etc/ssh/sshd_config
-PasswordAuthentication yes
+PasswordAuthentication no

-#PermitRootLogin yes
+PermitRootLogin no

設定が完了したらsshdを再起動しておきます。

sudo systemctl restart sshd.service

rootでログインできないか確認しておきましょう。

最低限の設定は以上です。

LAMP環境のセットアップ

ここからはLAMP環境のセットアップをしていきます。なお、私はLaravel(5.4以上)を利用するので、そのための設定を行います。

httpd

まずはApacheから。操作は基本sudoで。

インストールと永続化

sudo yum install httpd -y
sudo systemctl start httpd.service
sudo systemctl enable httpd.service

サービスの永続化が有効になっているかは

sudo systemctl list-unit-files  -t service | grep httpd

で確認できます(めんどくさい)。

最低限の設定

CentOS7.xで普通にyum install httpdとするとApache2.4.xがインストールされます(6.xで2.2.x)。2.4.xと2.2.xでは若干設定の書き方が違うので注意が必要です。

Index表示の不許可と.htaccessの許可

<Directory "/var/www/html">の内部を編集します。
2.2.xの様に-Indexesという表現は使えないようで、Indexesを削除します。

/etc/httpd/conf/httpd.conf
-Options Indexes FollowSymLinks
+Options FollowSymLinks

AllowOverride None
AllowOverride All

設定が完了したらhttpdを再起動しておきます。

sudo systemctl restart httpd.service

Firewallの設定

Webを公開するために80番ポートを開放します。なお、CentOS7.xでは6.xのiptalbesに変わりfirewalldが利用されています。
なお、firewalldの詳細についてこちらが参考になります。

80ポートの開放

80番ポートを開放します。設定したらreloadして設定内容を反映させます。

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

サービス名でも追加できるようです。

設定の確認

設定の確認は下記のように行います。

sudo firewall-cmd --list-all

portのところに80/tcpが追加されています。

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: dhcpv6-client ssh
+ ports: 80/tcp
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:

ルールの削除

ルールの削除は下記のように行います。

sudo firewall-cmd --permanent --remove-port=80/tcp

httpdの設定は以上です。

PHP

Laravel5.5からはPHP7.0以上が稼働条件になるようですので、ここではPHP7.0をインストールしておきます。

remiレポジトリのインストール

なお、標準でインストールされるPHPは5.4.16のようなので、PHP7をインストールするためにremiリポジトリを追加します。

sudo yum install epel-release
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

remiに先立ち、epelが必要!と起こられるのでまずはepleを入れています。

各モジュールのインストール

sudo yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-xml php-zip

Apacheを再起動しておきます。

sudo systemctl restart httpd.service

MySQLのインストール

CentOS7.xでは基本的にMariaDBがインストールされてます。が、ここではMySQLをインストールしたいと思います。

リポジトリの追加

sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

最新のURLはここからたどれます。

インストール

sudo yum install mysql-community-server

(暫定)パスワードの確認

初回起動

sudo systemctl start mysqld.service

確認

sudo cat /var/log/mysqld.log | grep 'temporary password'
2017-04-05T05:59:22.232627Z 1 [Note] A temporary password is generated for root@localhost: pf4:x&+oMHes

pf4:x&+oMHesというのが暫定パスワード。

mysql_secure_installationの実行

mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: #取得したパワードを入れる

いろいろ聞いてきますが、基本的にはYes!で。パスワードは単純だと怒られます。

my.cnfの設定

いじればきりがないのですが、とりあえず下記の2つを追加。

  • パスワードの有効期限をOFF
  • 文字コードをUTF8に

MySQL5.7.xからパスワードの有効期限が標準で1年に設定されているので1年後の突然のサービス停止とならないように有効期限をOFF(0)にしておきます。文字コードの変更はお決まりで。

/etc/my.cnf
[mysqld]

+default_password_lifetime = 0
+character-set-server = utf8

再起動して永続化

my.cnfの設定を反映させるためにMySQLを再起動します。そして、サービスを永続化させておきます。

sudo systemctl restart mysqld.service
sudo systemctl enable mysqld.service

Composerのインストール

近代PHPに必須のComposerをインストールします。
取得して、/usr/local/bin以下にリネームしてコピーします。

cd
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Laravelの動作確認

Laravelをダウンロードして動作を確認しておきます。確認時のLaravelのバージョンは5.4.16でした。
今回はApacheのドキュメントルート以下にダウンロードしとりあえず動くかどうか見ておきます。

/var/www/htmlのパーミッション変更(任意)

composerはroot権限では実行できないため、利用ユーザーに書込み権限を与えます(ここではオーナーを変更してます)。

cd /var/www
sudo chown -R user:user user:user #userは操作するユーザー

html内でcreate-projectをしています。

cd html
composer create-project laravel/laravel laravel

storageディレクトリにパーミッションを与えます(これをしないとエラーとなります)。

cd laravel
chmod -R 777 storage

設定ができたら http://servername/laravel/public にアクセスしてみて下さい。例の画面が出ていればOKです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2