読者です 読者をやめる 読者になる 読者になる

WEBエンジニアのメモブログ

エンジニアになって一年。。。。いろいろ書いていきます。このブログを見た人がなんらかのお役に立てば幸いです。

[CentOS6]簡単LAMP環境 構築

CentOS7の時代かもしれませんがとりあえず

CentOS6のLAMP環境構築したときのインストールログを書いておきます。

CentOS7は次回で!

 

CentOS-6.5-x86_64-bin-DVD1

まずはyum update


ntpのインストール

# yum -y install ntp

# vi /etc/ntp.conf

ローカルからの時刻同期を許可
# Hosts on local network are less restricted.
# restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

時刻同期先のNTPサーバを変更
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org
# server 1.centos.pool.ntp.org
# server 2.centos.pool.ntp.org

server ntp.nict.jp
server ntp.jst.mfeed.ad.jp
server ntp.ring.gr.jp


NTPサーバを起動する
1.ntpdateで手動でサーバの時刻を合わせる.大幅にズレているとNTPサーバを起動できない場合がある.

2./etc/rc.d/init.d/ntpd startでNTPサーバを起動する

3.chkconfig onで自動起動設定(--listで確認できる)


タイムゾーン東京に設定
[# vi /etc/sysconfig/clock
# 例として東京に変更
ZONE="Asia/Tokyo"
UTC="false"
# source /etc/sysconfig/clock # 変更を反映
# タイムゾーンファイルを上書きコピー
# cp -p /usr/share/zo

 

 

SELinux無効

SELinuxは、侵入された後の被害を少なくすることを目的としたものです。

本来であれば、有効にしておいたほうが良いのですが、
個人情報などをあつかうような業務で使うようなものでない限り、不要かと思いますので、今回は無効にします。

getenforce 状態確認

# vi /etc/sysconfig/selinux
SELINUX=enforcing

SELINUX=disabled

※間違えるとrebootしたときにカーネルパニックを起こすので注意

 

 

#Apacheのインストール
$ yum install httpd

#Apacheの起動
$ /etc/init.d/httpd start

#Apacheの起動の確認
$ /etc/init.d/httpd status
httpd (pid 1297) を実行中...

#サービス自動起動の確認

$ chkconfig --list httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

#httpdのサービスを自動起動にする
$ chkconfig httpd on

#サービス自動起動の確認
$ chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

 


#iptablesがインストールされているか確認
$ yum list installed iptables

#iptablesの設定内容確認(参考)
$ iptables -L

#iptablesの設定を編集
$ vi /etc/sysconfig/iptables

# SSH
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# HTTP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

# Mysql
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

#iptablesの再起動
$ /etc/rc.d/init.d/iptables restart

httpdのサービス自動起動

 

 Apachehttpd.confの設定
[# vi /etc/httpd/conf/httpd.conf ← httpd設定ファイル編集
ServerTokens OS

ServerTokens Prod ← エラーページ等でOS名を表示しないようにする

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
  ↓
AllowOverride All ← .htaccessの許可

ServerSignature On

ServerSignature Off ← エラーページでサーバー情報を表示しないようにする

AddDefaultCharset UTF-8

#AddDefaultCharset UTF-8 ← コメントアウト(文字化け対応)


「ja」を先頭に追加
------------------------
LanguagePriority ja en da nl et fr de el it kr no pl pt pt-br ltz ca es sv tw
------------------------

バーチャルホストの設定
サブドメインを切ったりする場合に使用
------------------------
#NameVirtualHost *:80

NameVirtualHost *:80

 

ヴァーチャルホストを使う場合

confファイルを作成してインクルードするかhttpd.conf」末尾に追加してください

------------------------
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot サイトのプログラムを設置しているディレクトリ
ServerName ドメイン名またはIP
ErrorLog エラーログを出力するディレクトリ
CustomLog アクセスログを出力するディレクトリ
php_value include_path ".:インクルードするディレクトリ"
</VirtualHost>
------------------------


PHPインストール

今回はリポジトリを使わずそのまま入れます。

yum list | php
yum list installed | grep php*
yum install php53.x86_64
yum install php-pgsql.x86_64
yum install php-mysql.x86_64
php-common.x86_64 5.3.3-27.el6_5.2
php-devel.x86_64 5.3.3-27.el6_5.2
php-mbstring.x86_64 5.3.3-27.el6_5.2
php-mysql.x86_64 5.3.3-27.el6_5.2
php-pdo.x86_64 5.3.3-27.el6_5.2
php-pear.noarch 1:1.9.4-4.el6

php.ini 設定

vi /etc/php.ini

short_open_tag = Off

short_open_tag = On ←変更(short_open_tag有効)

 

error_reporting = E_ALL

error_reporting = E_ALL & ~E_NOTICE ←変更(出力するエラーの種類)

エラーを出力する
------------------------
display_errors = On
------------------------

;default_charset = "iso-8859-1"

default_charset = "UTF-8" ←コメント解除&変更(デフォルト文字コード)

post_max_size = 8M

post_max_size = 20M ←変更(最大POSTアップロードサイズ)

upload_max_filesize = 2M

upload_max_filesize = 20M ←変更(最大アップロードサイズ)

;date.timezone =

date.timezone = Asia/Tokyo ←コメント解除&変更(タイムゾーン指定)

;mbstring.language = Japanese

mbstring.language = Japanese ←コメント解除(デフォルト言語)

;mbstring.internal_encoding = EUC-JP

mbstring.internal_encoding = UTF-8 ←コメント解除&変更(内部文字エンコーディングのデフォルト値)

;mbstring.http_input = auto

mbstring.http_input = UTF-8 ←コメント解除&変更(HTTP入力文字エンコーディング)

;mbstring.http_output = SJIS

mbstring.http_output = pass ←コメント解除&変更(HTTP出力文字エンコーディング)

;mbstring.encoding_translation = Off

mbstring.encoding_translation = On ←コメント解除&変更(内部文字エンコーディングの有効・無効)

;mbstring.detect_order = auto

mbstring.detect_order = auto ←コメント解除(文字コード検出のデフォルト値)

;mbstring.substitute_character = none;

mbstring.substitute_character = none; ←コメント解除(無効な文字を代替する文字を定義)

終ったら 
service httpd restart

 

Mysql

#yum install mysql-server

#/etc/rc.d/init.d/mysqld start ← MySQL起動

#sudo chkconfig mysqld on 自動起動

# chkconfig --list | grep mysqld 確認

#show variables LIKE 'port'; ポート確認

 

mysql 設定ファイル変更

# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server=utf8  ← 追加

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]          ← 追加
default-character-set=utf8  ← 追加

 

# mysql -u root -p ログイン
mysql> show databases;
(データベースの一覧が表示される)
mysql> create database test_db;
mysql> show databases;
(データベースの一覧にtest_db表示されることを確認)
mysql> grant all privileges on vuserdb.* to test@192.168.100.100 identified by 'hogehoge';
(192.168.100.100からtestのユーザーでアクセスを許可する。パスワードはhogehogeに記述したが、任意に決めてよい)

 

ネットワーク種別:MySQL(TCP/IP)
ホスト名/IP:192.168.100.100(Centos側のIPアドレス
ユーザー:test
パスワード:hogehoge
ポート:3306
データベース:test_db

これで外部DBツールから接続できます。

 

 

以上! 

次はCentOS7を書きます!