Friday 10 February 2012

[LAMP]さくらVPSにLAMP環境構築

以前の記事の続きです。


以前の記事でセキュリティ関連の対応をすませたので、
今回はwebサーバーとして動作するために必要なソフトを入れていきます
環境はさくらVPS、OSはCentOS5.6です


概要
・外部リポジトリを導入
・apache,mysql,php,phpmyadminをインストール
・apacheの設定
・phpの設定
・mysqlの設定
・phpmyadminの設定




まずは「wget」で登録する外部リポジトリのファイルを取得します


外部リポジトリの導入についてはこちらの記事でも触れています
※URLは2012/2/10現在、CentOS5、x86_64です(兄ちゃんの誕生日だ。。)
epel
$ wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
remi
$ wget http://rpms.famillecollet.com/el5.x86_64/remi-release-5-8.el5.remi.noarch.rpm
rpmforge
$ wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm


次に取得したリポジトリを登録
$ rpm -Uvh epel-release-5-4.noarch.rpm remi-release-5-8.el5.remi.noarch.rpm rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
ここでエラー発生
error: can't create transaction lock on /var/lib/rpm/__db.000
su権限じゃないとダメでした


続いて取得したリポジトリを無効化します
標準外のリポジトリはトラブルの元になる可能性もあるので、意図せず使用されないようにします
vi /etc/yum.repos.d/epel.repo
failovermethod=priority
enabled=0
↑ 1を0に変更
vi /etc/yum.repos.d/rpmforge.repo
failovermethod=priority
enabled=0
↑ 同様に1を0に変更


remiはデフォルトでenabled=0なので変更の必要なしです




それでは必要なものを一気にインストールします


# yum --enablerepo=remi,epel,rpmforge install httpd-devel php-devel php-pear mysql-server phpmyadmin
2回y/nでyを選択すれば完了するはずです


以下インストールしたものをメモとして残しておきます


  Installing     : php-common                                              1/28
  Installing     : httpd                                                   2/28
  Installing     : mysql-libs                                              3/28
  Installing     : apr-devel                                               4/28
  Installing     : libedit                                                 5/28
  Installing     : php-cli                                                 6/28
  Installing     : perl-DBI                                                7/28
  Installing     : php                                                     8/28
  Installing     : mysql                                                   9/28
  Installing     : php-mbstring                                           10/28
  Installing     : php-pdo                                                11/28
  Installing     : php-mysql                                              12/28
  Installing     : mysqlclient15                                          13/28
  Installing     : perl-DBD-MySQL                                         14/28
  Installing     : cyrus-sasl-devel                                       15/28
  Installing     : libtool-ltdl                                           16/28
  Installing     : libmcrypt                                              17/28
  Installing     : php-mcrypt                                             18/28
  Installing     : openldap-devel                                         19/28
  Installing     : expat-devel                                            20/28
  Installing     : db4-devel                                              21/28
  Installing     : mysql-server                                           22/28
  Installing     : php-devel                                              23/28
  Installing     : apr-util-devel                                         24/28
  Installing     : php-pear                                               25/28
  Installing     : phpmyadmin                                             26/28
  Installing     : httpd-devel                                            27/28
  Installing     : httpd-devel                                            28/28



ちなみにここを参考というかこの通りにやっています
ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編)




続いてapacheの設定


余計なモジュールの停止
$sudo vi /etc/httpd/conf/httpd.conf
下記部分をこのように設定します

ここに概要があるので、ここを見つつ良くわからないものを調べてみると良いかと
# Example:
# LoadModule foo_module modules/mod_foo.so
#
#LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_user_module modules/mod_authz_user.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule authz_default_module modules/mod_authz_default.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule logio_module modules/mod_logio.so
#LoadModule env_module modules/mod_env.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
#LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
#LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule info_module modules/mod_info.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
#LoadModule actions_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule suexec_module modules/mod_suexec.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
#LoadModule cgi_module modules/mod_cgi.so

これでかなり使用メモリが削減されます


次は同時アクセス数の設定

下記の部分ですね。内容は先ほどのページをご参考に
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   10
ServerLimit      256
MaxClients       30
MaxRequestsPerChild  800
</IfModule>


apachを起動してみます
# service httpd start



mysqlの設定


まず起動します
# service mysqld start


続いて専用スクリプトで設定
# /usr/bin/mysql_secure_installation
最初はパスワードはないので何もいれずリターン
続いてrootパスの設定、その後は全てyで問題なし




phpmyadminの設定


ランダム文字列の設定が必要です
$ sudo vi /usr/share/phpmyadmin/config.inc.phpip

下記部分を入力します
$cfg['blowfish_secret'] = 'ここに適当な文字列'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

後は接続元のipを指定します

$ sudo vi /etc/httpd/conf.d/phpmyadmin.con

<Directory "/usr/share/phpmyadmin">
  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1
  Allow from ここに追加
</Directory>
これでphpmadminに接続できます

最後に各ソフト自動起動の設定をします
# chkconfig httpd on
# chkconfig mysqld on
設定確認
# chkconfig --list|grep -E "httpd|mysql"
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
上のようになってればOK!



ついでにやったこと
vimの導入
screenの導入




そのうちやりたいこと
eAccelaraterの導入




反省
最初は全て調べて全体像を理解しながらやっていたが、
途中からあまりの進みの遅さにいらいらして一気にやってしまいました
これから徐々に勉強していかなきゃ…

No comments:

Post a Comment