以前の記事でセキュリティ関連の対応をすませたので、
今回は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