VMware上のCentOSにApacheとMySQLとPHPを入れた作業ログ

VMwareに入れたCentOSにApacheとMySQLとPHPを入れた時の作業メモです。
昨日のエントリー(VMwareにCentOSを入れるまでの作業ログ)の続きです。

VMwareでCentOSにアカウントを作成

VMware上のCentOSにrootでログインします。

localhost login: root
password: 

で、一般アカウントをつくります。

# useradd  (ユーザ名)
# passwd (ユーザ名)
Changing password for user (ユーザ名).
New password:(パスワード)
Retype new password:(パスワードの再入力)
passwd: all authentication tokens updated successfully.

で、アカウントができました。

MacのターミナルからSSHで接続する

VMware上のCentOSのIPを確認します。

# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:92:97:4A
          inet addr:172.16.118.129  Bcast:172.16.118.255  Mask:255.255.255.0
   (省略)

172.16.118.129がIPになります。環境によって異なるので自分の環境でIPを確認してください。

今度はMacのターミナルで、

$ ssh 172.16.118.129
password:

これでVMwareのCentOSにアクセスできます。

sudoを使えるようにする

sudoがインストールされていることを確認します。

$ yum list installed | grep sudo
sudo.x86_64             1.7.4p5-7.el6   @anaconda-CentOS-201112091719.x86_64/6.2

つづいて、ユーザーをwheelグループに追加します。
んで、wheelグループのユーザーを確認しといます。

# /usr/sbin/usermod -G wheel "(ユーザ名)"
# id "(ユーザ名)"
uid=500(ユーザ名) gid=500(ユーザ名) 所属グループ=500(ユーザ名),10(wheel)
# cat /etc/group | grep wheel
wheel:x:10:root,(ユーザ名)

続いてwheelグループ以外はsuできないようにします。

# vi /etc/login.defs
SU_WHEEL_ONLY yes

# vi /etc/pam.d/su
#auth required pam_wheel.so use_uid
↓ コメントを外す
auth required pam_wheel.so use_uid

# /usr/sbin/visudo
# %wheel ALL=(ALL) ALL
↓ コメントを外す
%wheel ALL=(ALL) ALL

sbinにパスを通します。

$ cd
$ vi .bash_profile

PATH=$PATH:$HOME/bin:/sbin:/usr/sbin:/usr/local/sbin

ここで一旦リブートします。

$ su
パスワード:
# /sbin/shutdown -r now

Apacheのインストール

yumでApacheをインストールします。

$ sudo yum install httpd* -y

Apacheの起動時にエラーがでるのでサーバネームを設定しときます。

$ sudo vi /etc/httpd/conf/httpd.conf
ServerName www.example.com:80

自動起動するように設定します。

$ sudo chkconfig httpd on

Apacheを起動します。

$ sudo service httpd start

SELinuxを無効化しておきます。
SELINUXの値をenforcingからdisabledにします。

$ sudo vi /etc/sysconfig/selinux
SELINUX=disabled

iptablesでHTTPを許可します。
SSHの記述の下に以下の1行を追加します。

$ sudo vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

iptablesを再起動します。

$ sudo service iptables restart
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
iptables: ファイアウォールルールを適用中:                  [  OK  ]

ここでブラウザでアクセスするとApacheのテストページが表示されるのを確認しましょ。

MySQLのインストール

yumでMySQLをインストールします。

$ sudo yum install mysql* -y

自動起動するように設定します。

$ sudo chkconfig mysqld on

MySQLを起動してみます。

sudo service mysqld start

MySQLのユーザの登録

MySQLのユーザを登録します。
まずはMySQLにrootでログインします。

$ mysql -u root

続いてユーザの登録とその反映です。

mysql> GRANT ALL ON *.* TO (ユーザ名)@"localhost" IDENTIFIED BY "(パスワード)";
Query OK, 0 rows affected (0.00 sec)

ユーザが登録されたか確認してみます。

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select host, user from user;

SQLでrootパスワードを設定します。'*****'の部分にパスワードを記載します。

mysql> UPDATE mysql.user SET Password = PASSWORD('(パスワード)') WHERE User = 'root';

グラントテーブルを再読み込みして・・・

mysql> FLUSH PRIVILEGES;

一旦mysqlから抜けて

mysql> quit

MySQLを再起動します。

$ sudo service mysqld restart

PHPのインストール

$ sudo yum -y install php

続いてモジュールをインストールします。

$ sudo yum -y install php-devel php-gd php-mbstring php-mysql php-pdo php-pear php-xml php-imap php-process

php.iniを編集します。

$ sudo vi /etc/php.ini

; PHP's default character set is set to empty.
; http://php.net/default-charset
default_charset = "UTF-8"

〜中略〜

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Asia/Tokyo"

〜中略〜

[mbstring]
; language for internal character representation.
; http://php.net/mbstring.language
mbstring.language = Japanese

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
; http://php.net/mbstring.internal-encoding
;mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8

; http input encoding.
; http://php.net/mbstring.http-input
mbstring.http_input = auto

; http output encoding. mb_output_handler must be
; registered as output buffer to function
; http://php.net/mbstring.http-output
;mbstring.http_output = SJIS
mbstring.http_output = pass

; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
;       portable libs/applications.
; http://php.net/mbstring.encoding-translation
;mbstring.encoding_translation = Off

; automatic encoding detection order.
; auto means
; http://php.net/mbstring.detect-order
mbstring.detect_order = auto

; substitute_character used when character cannot be converted
; one from another
; http://php.net/mbstring.substitute-character
mbstring.substitute_character = none;

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
; http://php.net/mbstring.func-overload
;mbstring.func_overload = 0

; enable strict encoding detection.
;mbstring.strict_detection = Off

; This directive specifies the regex pattern of content types for which mb_output_handler()
; is activated.
; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml+xml)
;mbstring.http_output_conv_mimetype=

Apacheを再起動します。

$ sudo service https restart

ということで、ザザッと動くようにはなりました。
あくまでもセキュリティとか気にしないVMware環境での設定になります。

実際のサーバの設定については、このあたりを参照いただければ。

さくらVPSのサーバ移行(2012.06.04)