現在共有レンタルサーバで運用してきたこのブログですが、初めてレンタルサーバを使ってみたということもあって、ちょっといびつな構成になっていて、それを整理したいとずっと思っていました。
そこで今回、一旦サーバをさくらのVPSに移動してみようと思います。
(レンタルサーバはレンタルサーバで管理の手間がなくて便利なのですが、構成がおかしくなっているのでバックアップもまともにとれているかわからない・・・という状況なわけです。当方はたかが趣味のサイトとはいえ、ファーストサーバの一件もありましたし。)
で、WordPressをインストールするわけですが、それに先立って、LAMP環境を構築します。設定は「さくらインターネット創業日記」の「ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編)」を参考にして行いました。(が、同じではありません。あれこれ弄っています。)
1.yumのレポジトリ追加
1)remiの追加
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm http://rpms.famillecollet.com/enterprise/remi-release-6.rpm を取得中 警告: /var/tmp/rpm-tmp.cxjLKg: ヘッダ V3 DSA/SHA1 Signature, key ID 00f97f56: NOKEY 準備中... ########################################### [100%] 1:remi-release ########################################### [100%] #
2)RPMForgeの追加
# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm を取得中 警告: /var/tmp/rpm-tmp.bc4mXG: ヘッダ V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY 準備中... ########################################### [100%] 1:rpmforge-release ########################################### [100%] #
3) epelの追加
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm を取得中 警告: /var/tmp/rpm-tmp.DDqTKc: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY 準備中... ########################################### [100%] パッケージ epel-release-6-7.noarch は既にインストールされています。 #
EPELはすでに追加されていました・・・。
2.パッケージのインストール
# yum --enablerepo=remi,epel,rpmforge install httpd-devel php-devel php-pear mysql-server phpmyadmin -y Loaded plugins: downloadonly, fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile epel/metalink | 5.4 kB 00:00 * base: ftp.nara.wide.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.nara.wide.ad.jp * remi: remi-mirror.dedipower.com * rpmforge: mirror.fairway.ne.jp * updates: ftp.nara.wide.ad.jp remi | 2.9 kB 00:00 remi/primary_db | 278 kB 00:01 rpmforge | 1.9 kB 00:00 rpmforge/primary_db | 2.6 MB 00:03 Setting up Install Process Resolving Dependencies --> Running transaction check (途中略) --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: : Installing for dependencies: : Updating for dependencies: mysql-libs i686 5.5.27-1.el6.remi remi 773 k Transaction Summary ================================================================================ Install 22 Package(s) Upgrade 1 Package(s) Total download size: 40 M Downloading Packages: (1/23): apr-devel-1.3.9-5.el6_2.i686.rpm | 176 kB 00:00 : (23/23): phpmyadmin-2.11.11.3-2.el6.rf.noarch.rpm | 2.7 MB 00:04 -------------------------------------------------------------------------------- Total 707 kB/s | 40 MB 00:57 warning: rpmts_HdrFromFdno: Header V3 DSA/SHA1 Signature, key ID 00f97f56: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi Importing GPG key 0x00F97F56: Userid : Remi Collet <RPMS@FamilleCollet.com> Package: remi-release-6-1.el6.remi.noarch (installed) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Warning: RPMDB altered outside of yum. Installing : php-common-5.3.15-1.el6.remi.i686 1/24 WARNING : These php-* RPM are not official Fedora/Redhat build and overrides the official ones. Don't file bugs on Fedora Project nor Redhat. Use dedicated forums http://forums.famillecollet.com/ Updating : mysql-libs-5.5.27-1.el6.remi.i686 2/24 WARNING : This MySQL RPM is not an official Fedora / Red Hat build and it overrides the official one. Don't file bugs on Fedora Project nor Red Hat. Use dedicated forums http://forums.famillecollet.com/ Installing : php-cli-5.3.15-1.el6.remi.i686 3/24 : Verifying : mysql-libs-5.1.61-4.el6.i686 24/24 Installed: httpd-devel.i686 0:2.2.15-15.el6.centos.1 mysql-server.i686 0:5.5.27-1.el6.remi php-devel.i686 0:5.3.15-1.el6.remi php-pear.noarch 1:1.9.4-7.el6.remi phpmyadmin.noarch 0:2.11.11.3-2.el6.rf Dependency Installed: apr-devel.i686 0:1.3.9-5.el6_2 apr-util-devel.i686 0:1.3.9-3.el6_0.1 compat-mysql51.i686 0:5.1.54-1.el6.remi cyrus-sasl-devel.i686 0:2.1.23-13.el6 db4-cxx.i686 0:4.7.25-17.el6 db4-devel.i686 0:4.7.25-17.el6 expat-devel.i686 0:2.0.1-11.el6_2 mysql.i686 0:5.5.27-1.el6.remi openldap-devel.i686 0:2.4.23-26.el6 perl-DBD-MySQL.i686 0:4.013-3.el6 perl-DBI.i686 0:1.609-4.el6 php.i686 0:5.3.15-1.el6.remi php-cli.i686 0:5.3.15-1.el6.remi php-common.i686 0:5.3.15-1.el6.remi php-mbstring.i686 0:5.3.15-1.el6.remi php-mysql.i686 0:5.3.15-1.el6.remi php-pdo.i686 0:5.3.15-1.el6.remi Dependency Updated: mysql-libs.i686 0:5.5.27-1.el6.remi Complete! #
でLAMP環境が構築されます。
3.Apacheの設定と起動
/etc/httpd/conf/httpd.confを編集します
1)ロードモジュールの設定
# # Dynamic Shared Object (DSO) Support # # To be able to use the functionality of a module which was built as a DSO you # have to place corresponding `LoadModule' lines at this location so the # directives contained in it are actually available _before_ they are used. # Statically compiled modules (those listed by `httpd -l') do not need # to be loaded here. # # 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 substitute_module modules/mod_substitute.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_ajp_module modules/mod_proxy_ajp.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 cgi_module modules/mod_cgi.so LoadModule version_module modules/mod_version.so
2) 無効にしたロードモジュールに合わせた編集
mod_autoindexを無効化しているので、/etc/httpd/conf/httpd.conf のIndexOptionsで始まる行をすべてコメントアウト(といっても、1行のみ)
# IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
3)同時接続数の編集
デフォルトでは以下のようになっている。
<IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule>
これを、
<IfModule prefork.c> StartServers 5 MinSpareServers 3 MaxSpareServers 10 ServerLimit 128 MaxClients 20 MaxRequestsPerChild 1000 </IfModule>
とする。どうせそんなにリクエストこないし。
4)Apacheの起動
サービスを起動する。事前にFirewallの80番ポートを開けておく。
# service httpd start httpd を起動中: [ <span style="color: #008000;">OK</span> ]
3.MySQLの設定と起動
1)MySQLの起動
# service mysqld start
2)初期設定
# /usr/bin/mysql_secure_installation・・略・・Enter current password for root (enter for none):<span style="color: #ff0000;"> ← デフォルトではパスワードが無いので、そのままリターン</span> OK, successfully used password, moving on...Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation.Set root password? [Y/n] <span style="color: #ff0000;"> ← デフォルトYなのでそのままリターン</span> New password: <span style="color: #ff0000;">← rootパスワードとして設定したい文字列を入力してリターン</span> Re-enter new password: <span style="color: #ff0000;">← もう一度入力してリターン</span> Password updated successfully! Reloading privilege tables.. ... Success!By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.Remove anonymous users? [Y/n] <span style="color: #ff0000;">← デフォルトYなのでそのままリターン</span> ... Success!Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n] <span style="color: #ff0000;">← デフォルトYなのでそのままリターン</span>... Success!By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.Remove test database and access to it? [Y/n] <span style="color: #ff0000;">← デフォルトYなのでそのままリターン</span> - Dropping test database... ... Success! - Removing privileges on test database... ... Success!Reloading the privilege tables will ensure that all changes made so far will take effect immediately.Reload privilege tables now? [Y/n] <span style="color: #ff0000;">← デフォルトYなのでそのままリターン</span> ... Success!Cleaning up...All done! If you've completed all of the above steps, your MySQL installation should now be secure.Thanks for using MySQL!
4.phpmyadminの設定
1)blowfish_secretの設定
/usr/share/phpmyadmin/config.inc.php を編集する。
$cfg['blowfish_secret'] = '適当な英数文字列'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
2)接続元IPアドレスの設定
/etc/httpd/conf.d/phpmyadmin.conf を編集する。
<Directory "/usr/share/phpmyadmin"> Order Deny,Allow Deny from all <span style="color: #ff0000;">Allow from localhost</span> Allow from 127.0.0.1 </Directory>
設定はVPS上のfirefoxでやるので、localhost を追加する。
3)設定の再読み込み
# service httpd reload
4)phpmyadminを見てみる。
Firefoxで「http://localhost/phpmyadmin」をアクセスしてみると、「mcrypt 拡張をロードできません。php の設定を確認してください。」というメッセージが・・・。
# yum -y install php-mcrypt # service httpd restart
で解決した。ユーザー名にroot、パスワードにMySQLで設定したパスワードを入力するとログインできた。
5.自動起動の設定
# chkconfig --list | grep -E "httpd|mysql" httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off # chkconfig httpd on # chkconfig mysqld on # chkconfig --list | grep -E "httpd|mysql" httpd 0:off 1:off 2:on <span style="color: #ff0000;">3:on 4:on 5:on</span> 6:off mysqld 0:off 1:off 2:on <span style="color: #ff0000;">3:on 4:on 5:on</span> 6:off #