Samples of configuration files for LAMP environment on CentOS 7
For more information, please see https://docs.google.com/document/d/12VbZYST8h0rxLE18c0xdS_PHvkq-AcLYVa-ONuPe5dU
インストール用のOSイメージをダウンロード
CentOS 7はそれまでのCentOSからかなり変更されている。
Machine -> Newで仮想マシンの作成を開始し、以下を設定してCreateをクリック。
項目名 | 設定例 |
---|---|
Type | Linux |
Version | CentOSの64bitの場合はRed Hat (64-bit)を選択 |
Memory | 1GB以上 |
Hard disk | Create a virtual hard disk nowを選択 |
仮想ディスクの作成ダイアログが出てくるので以下の設定でCreateをクリック。
項目名 | 設定例 |
---|---|
保存先 | ゲストマシンの容量を確認して適切なディスク上に指定する。 |
File size | 20GB以上 |
Hard disk | VDI |
Memory | 1GB以上 |
Storage on physical hard disk | どちらでも良い。 Fixed sizeのほうがパフォーマンスはいいらしい。 |
出来上がった仮想マシンを右クリックして「Settings」を開き、OKをクリック。
項目名 | 設定例 |
---|---|
Storage | Controller: IDE Emptyをクリックし、右のAttributesのOptical DriveのCDマークをクリックし、Choose Virtual Oprical Disk Fileを選択し、ダウンロードしたCentOSのディスクイメージを選択する。 |
Network | Adapter 1 Attached to: Bridged Adapterを選択する。 Host-only adapterでもよい。その場合は192.168のIPになる。 |
仮想マシンをダブルクリックして起動。
Install CentOS 7を選択してインストーラーを起動。 インストールディスクのチェックはSKIPする。 インストラーの手順にしたがってインストール(最小限のインストール)し、再起動する。
項目名 | 設定例 |
---|---|
ソフトウェア | 最小限のインストール |
ネットワークとホスト名 | 「オン」にして、ホスト名に任意の名称を入力。 |
インストール先 | 内容を確認して「完了」をクリック。 |
以上が終わると、「インストール開始」ボタンが有効になる。 インストール実行中にrootユーザーのパスワードを設定する。「完了」ボタンは2回クリックしないと行けないので注意。 最小構成のインストールの場合は数分で終わる。
以降、特に指定のない限りはrootユーザーで行うこと。
ネットワークはインストール時に有効になっているので、特に設定することはない。 ipコマンドでIPアドレスを確認しておく。
[root@centos7 ~]# ip addr
[root@centos7 ~]# useradd webmaster
[root@centos7 ~]# passwd webmaster
SSHはデフォルトで設定されているので、移行はSSHクライアントで接続して作業する。
[root@centos7 ~]# yum install ntp vim wget
[root@centos7 ~]# vi /etc/bashrc
以下を最後の行の1つ前に追加
alias ll='ls -la'
alias la='ls -A'
export LANG=C
export EDITOR=vim
export LS_COLORS=$LS_COLORS':di=33'
alias vi='vim'
----------
[root@centos7 ~]# vi /etc/vimrc
以下を最後の行に追加
" ORIGINAL SETTINGS
set nowrap
set nu
set ic
hi Comment ctermfg=2
set noswapfile
set nobackup
" Indents
function SetIndentWeb()
set tabstop=2
set softtabstop=2
set shiftwidth=2
endfunction
set tabstop=4
set softtabstop=4
set shiftwidth=4
autocmd BufNewFile,BufRead *.html,*.css,*.js :call SetIndentWeb()
set autoindent
set smartindent
set expandtab
"set noexpandtab
set iminsert=0
set imsearch=0
----------
[root@centos7 ~]# source /etc/bashrc
以下のリポジトリはよく使うのでインストールしておく。
remi repoはデフォルトでは無効なので、有効なリポジトリにしておく。
[root@centos7 ~]# vi /etc/yum.repos.d/remi.repo
5 [remi]
9 enabled=1
12
22 [remi-php56]
27 enabled=1
まずは基本システムのアップグレード
[root@centos7 ~]# yum update
[root@centos7 ~]# yum install httpd php php-bcmath php-captchaphp php-cli php-common php-dba php-devel \
php-apc php-embedded php-enchant php-fpdf php-fpdf-doc php-fpm php-gd php-geshi php-imap php-interbase \
php-intl php-ldap php-libdmtx php-libvirt php-libvirt-doc php-magickwand php-magpierss php-mbstring php-mcrypt \
php-mysqlnd php-oauth php-odbc php-pdo php-pear php-pecl-imagick php-pecl-memcache php-pecl-memcached \
php-pecl-ncurses php-pgsql php-php-gettext php-process php-pspell php-recode php-shout php-simplepie \
php-snmp php-soap php-tidy php-xml php-xmlrpc php-zipstream mysql-server mysql-client memcached samba mailx
PHP 7.0がリリースされたので、インストールオプションを変更。(remi repository) ただし、いくつか未対応のエクステンションがあるので、今後変更されていく可能性がある。 特にMemcacheのエクステンションが入っていない。
[root@centos7 ~]# yum install httpd php php-bcmath php-cli php-common php-dba php-devel php-apc php-embedded php-enchant php-fpm php-gd php-geshi php-imap php-interbase php-intl php-ldap php-libdmtx php-mbstring php-mcrypt php-mysqlnd php-odbc php-pdo php-pear php-pecl-imagick php-pgsql php-php-gettext php-process php-pspell php-recode php-simplepie php-snmp php-soap php-tidy php-xml php-xmlrpc php-zipstream mysql-server memcached samba mailx
php-pecl-memcacheがremi repoからインストール出来るようになっている。
[root@centos7 ~]# yum install httpd php php-bcmath php-captchaphp php-cli php-common php-dba php-devel \
php-apc php-embedded php-enchant php-fpdf php-fpdf-doc php-fpm php-gd php-geshi php-imap php-interbase \
php-intl php-ldap php-libdmtx php-magpierss php-mbstring php-mcrypt php-mysqlnd php-oauth php-odbc php-pdo \
php-pear php-pecl-imagick php-pecl-memcache php-pecl-memcached php-pgsql php-php-gettext php-process \
php-pspell php-recode php-shout php-simplepie php-snmp php-soap php-tidy php-xml php-xmlrpc php-zipstream \
mysql-server mysql-client memcached samba mailx
[root@centos7 ~]# chown -R webmaster:webmaster /var/www
まずSELINUXの設定を切る。
[root@centos7 ~]# cp /etc/selinux/config /etc/selinux/config.orig
[root@centos7 ~]# setenforce 0
[root@centos7 ~]# getenforce
Permissive
[root@centos7 ~]# vi /etc/selinux/config
SELINUX=disabled
次にfirewalldをOFFにする。 CentOS 7ではiptablesに変わり、アクセス制限にfirewalldを使用している。
[root@centos7 ~]# systemctl stop firewalld
[root@centos7 ~]# systemctl disable firewalld
ここで一旦rebootして設定を反映する。
設定を書き換える前にオリジナルをバックアップ。
[root@centos7 ~]# cp /etc/ntp.conf /etc/ntp.conf.orig
NTPの設定は以下を参考にする。
ntp.confを書き換えたらntpdを起動または再起動。
[root@centos7 ~]# systemctl enable ntpd
[root@centos7 ~]# systemctl start ntpd
設定を書き換える前にオリジナルをバックアップ。
[root@centos7 ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
Sambaの設定は以下を参考にする。
設定を書き換えたらsmbを起動または再起動。
[root@centos7 ~]# systemctl enable smb
[root@centos7 ~]# systemctl start smb
[root@centos7 ~]# systemctl enable nmb
[root@centos7 ~]# systemctl start nmb
Windowsからアドレスバーに以下を入力して共有ディレクトリが閲覧出来るか確認。 またファイルの作成、内容の変更、削除が正常に行われるか確認する。
\\{サーバーのIPアドレス}
設定を書き換える前にオリジナルをバックアップ。
[root@centos7 ~]# cp /etc/php.ini /etc/php.ini.orig
PHPの設定は以下を参考にする。
設定を書き換える前にオリジナルをバックアップ。
[root@centos7 ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.orig
ディレクトリを作る。
[root@centos7 ~]# mkdir -p /etc/httpd/vhosts /var/www/vhosts /var/www/logs/httpd /var/www/session
[root@centos7 ~]# chown -R webmaster:webmaster /var/www
mod_phpの設定を変更する。
デフォルトのsession.save_path
は/var/lib/php/session
となっているので、Apacheの耳垢ユーザーでは書き込めない。/var/www/session
に書き換える。
[root@centos7 ~]# vi /etc/httpd/conf.d/php.conf
60 #php_value session.save_path "/var/lib/php/session"
61 php_value session.save_path "/var/www/session"
Apache 2.4ではNot Foundの場合に/usr/share/httpd/noindex/
のファイルが使われるので、使われないようにする。
[root@centos7 ~]# mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bk
Apacheの設定は以下を参考にする。
またApache 2.4からは設定ファイルが細かく分割されている。デフォルトで問題となりそうなのはiconsディレクトリ。常にエラーログに記録されることが気になるなら以下のファイルのalias設定をコメントアウトすることをおすすめする。
[root@centos7 ~]# vi /etc/httpd/conf.d/autoindex.conf
21 #Alias /icons/ "/usr/share/httpd/icons/"
設定を書き換えたらApacheの設定ファイルの書式を確認して、起動または再起動。
[root@centos7 ~]# systemctl enable httpd
[root@centos7 ~]# apachectl configtest
[root@centos7 ~]# systemctl start httpd
ここではMySQL 5.7のセットアップ方法を紹介します。
設定を書き換える前にオリジナルをバックアップ。
[root@centos7 ~]# cp /etc/my.cnf /etc/my.cnf.orig
MySQL 5.7ではrootのデフォルトパスワードが勝手に生成されてしまう。
/root/.mysql_secret
に記載されているとのこと。ない場合は/var/log/mysql.log
に記載が残っているので確認してみる。
また5.6からパスワードポリシーが厳しくなっている。開発環境用はあまり厳しすぎると使いにくいので、かなりゆるく設定する。
MySQLの設定は以下を参考にする。(パスワードに対する制限をかなりゆるくしている)
またはrootでの操作はデフォルトのパスワードを変更した後でないと出来ないようになっているので、まずrootでログインした後はパスワードを変更することから始めなければならない。
[root@centos7 ~]# sytemctl enable mysqld
[root@centos7 ~]# sytemctl start mysqld
[root@centos7 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.9 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> SET PASSWORD FOR root@localhost=PASSWORD('password');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>
データベースとユーザーの作り方に関しては従来の方法で行える。
[root@centos7 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.9 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE DATABASE mydb CHARACTER SET utf8;
Query OK, 1 row affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON mydb.* TO mydb_user@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected, 1 warning (0.03 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql>
以下のデーモンはsystemctlコマンドで自動起動設定(enable)をしておく。 自動起動設定はOS起動時に自動的に立ち上がるソフトウェアを指定すること。
ここで一旦rebootして、すべて正常に起動できるかを確認する。
[root@centos6 ~]# reboot