さくらのVPS Apache+MySQL+PHPのインストール(LAMP環境構築)

さくらのVPS Apache+MySQL+PHPのインストール(LAMP環境構築)

さくらのVPS

こちらの記事の続きという位置付なので事前に読んでおくと幸せになれるかも:)

さくらのVPSに(CentOS6より良い)Scientific Linux6をインストール
さくらのVPS ログレポート(logwatch)と不正アクセス拒否(denyhosts)のインストール

まずは、最新版のMySQL やPHP を入れるために

yum リポジトリの追加

・epel
# さくらのVPS ログレポート(logwatch)と不正アクセス拒否(denyhosts)のインストール
# の記事等を実施していて
# 既に入っているのであれば必要ありません。

$ sudo rpm --import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL-6
$ sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm

・remi

$ sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

・rpmforge

$ sudo rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
$ sudo rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

Apache のインストール

$ sudo yum install httpd httpd-devel

Apache の不要なモジュール読み込み停止など

下記サイトを参考に実施

参考サイト:)
ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編)
http://tanaka.sakura.ad.jp/netservice/vps/

結果:

$ diff httpd.conf.origin httpd.conf
44c44
< ServerTokens OS
---
> ServerTokens Prod
70c70
< Timeout 60
---
> Timeout 45
105c105
< MaxSpareServers   20
---
> MaxSpareServers   10
107,108c107,108
< MaxClients       256
< MaxRequestsPerChild  4000
---
> MaxClients        30
> MaxRequestsPerChild  800
119,120c119,120
< StartServers         4
< MaxClients         300
---
> StartServers         2
> MaxClients         150
151c151
< LoadModule auth_digest_module modules/mod_auth_digest.so
---
> #LoadModule auth_digest_module modules/mod_auth_digest.so
153,156c153,156
< 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 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
159,164c159,164
< 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 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
167c167
< LoadModule logio_module modules/mod_logio.so
---
> #LoadModule logio_module modules/mod_logio.so
169,172c169,172
< 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 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
174c174
< LoadModule usertrack_module modules/mod_usertrack.so
---
> #LoadModule usertrack_module modules/mod_usertrack.so
181c181
< LoadModule dav_fs_module modules/mod_dav_fs.so
---
> #LoadModule dav_fs_module modules/mod_dav_fs.so
185,186c185,186
< LoadModule actions_module modules/mod_actions.so
< LoadModule speling_module modules/mod_speling.so
---
> #LoadModule actions_module modules/mod_actions.so
> #LoadModule speling_module modules/mod_speling.so
189c189
< LoadModule substitute_module modules/mod_substitute.so
---
> #LoadModule substitute_module modules/mod_substitute.so
193c193
< LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
---
> #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
195,197c195,197
< 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 proxy_ajp_module modules/mod_proxy_ajp.so
> #LoadModule proxy_connect_module modules/mod_proxy_connect.so
> #LoadModule cache_module modules/mod_cache.so
199c199
< LoadModule disk_cache_module modules/mod_disk_cache.so
---
> #LoadModule disk_cache_module modules/mod_disk_cache.so
331c331
<     Options Indexes FollowSymLinks
---
>     Options -Indexes FollowSymLinks
493a494,498
> # ログ記録対象外の設定
> #
> SetEnvIfNoCase Request_URI "\.(gif|jpg|jpeg|css|png|js)$" nolog_object
>
> #
526c531
< CustomLog logs/access_log combined
---
> CustomLog logs/access_log combined env=!nolog_object
536c541
< ServerSignature On
---
> ServerSignature Off
759c764
< AddDefaultCharset UTF-8
---
> #AddDefaultCharset UTF-8

・自動起動ON

$ sudo /sbin/chkconfig httpd on

・httpd起動

$ sudo /etc/init.d/httpd start

MySQL のインストール

$ sudo yum --enablerepo=remi install mysql-{devel,server}

——————-

Cannot find a valid baseurl for repo: remi

※とエラーが出たので、「/etc/yum.repos.d/remi.repo」を修正します。

$ diff remi.repo.origin remi.repo
4c4
< mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
---
> mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirror

単純に$releasever(多分6.1に展開される)を6 に変えただけです
他に良い方法があるかと思うのですが。。
——————-

MySQLの設定(安全な設定やmy.cnfなど)

・自動起動ON

$ sudo /sbin/chkconfig mysqld on

・MySQL起動

$ sudo /etc/init.d/mysqld start

・安全な利用をする為に以下コマンドを実行
※root のパスワード無しや、デフォルトのtestデータベースを削除する事ができます

$ /usr/bin/mysql_secure_installation

    最初はroot ユーザーで接続します(Enterをそのまま押せば良いです)
    Enter current password for root (enter for none):

    次に、root のパスワードを設定するか?と聞かれるのでYES
    Set root password? [Y/n] y
    New password: ★お好きなパスワードを入力
    Re-enter new password: ★もう一度入力
    Password updated successfully!
    Reloading privilege tables..
     ... Success!

    デフォルトの匿名ユーザーを削除する?YES
    Remove anonymous users? [Y/n] y

    リモートからのroot ログインを拒否する?YES
    Disallow root login remotely? [Y/n] y

    testデータベースを削除する?YES
    Remove test database and access to it? [Y/n] y

    上記の設定を反映させる?YES
    Reload privilege tables now? [Y/n] y

    All done!  If you've completed all of the above steps, your MySQL
    installation should now be secure.

    Thanks for using MySQL!

てな感じになればOKです!

・my.cnf の設定

$ sudo mv /etc/my.cnf /etc/my.cnf.origin
$ sudo cp /usr/share/doc/mysql-server-5.5.17/my-medium.cnf /etc/my.cnf
$ sudo /etc/init.d/mysqld restart

PHP のインストール

$ sudo yum --enablerepo=remi install php php-{devel,gd,mbstring,mcrypt,mysql,pear}

・PHPコンパイラのapcをインストール

$ sudo yum --enablerepo=remi install php-pecl-apc

phpMyAdminのインストール

$ sudo yum --enablerepo=remi install phpMyAdmin
$ sudo cp -p /etc/phpMyAdmin/config.inc.php /etc/phpMyAdmin/config.inc.php.origin

※$cfg[‘blowfish_secret’] の値を適当な値に書き換えます

$ sudo vi /etc/httpd/conf.d/phpMyAdmin.conf

※allow from [IPアドレス]

・Apache 再起動

$ sudo /etc/init.d/httpd restart

参考サイト:)

ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編)
http://tanaka.sakura.ad.jp/netservice/vps/

さくら VPS + CentOS のチューニングや高速化もっとこうすれば良かった作業まとめ
http://weble.org/2011/08/14/centos-config

「ServersMan@VPS」にPHP5.3,MySQL5.1,PostgreSQL8 をインストールする

DTI(ドリーム・トレイン・インターネット)が提供中の「ServersMan@VPS
(仮想専用サーバー)を契約してみてPHP5.3,MySQL5.1,PostgreSQL8 をインストールしてみました。

ServersMan@VPS」とは?
初期費用0円
月額料金490円~(今なら2ヶ月無料キャンペーン中)
メモリ:256MB
HDD:10GB

という、とってもお得な仮想専用サーバーです。
料金プランは3種類あって、Entry 、Standard、Proです。
自分は、Standardプランを契約しました。

さて、実際のコマンドですが自分用メモなので凄く簡単にまとめたものになっています。

▼yum
※「–enablerepo=remi」は、PHP、MySQLの最新バージョンを入れる為に必要です。
詳しくは、「PHP5.3 やMySQL5.1 などの最新版をyum でインストールする方法」をご参照下さい。

$ sudo yum --enablerepo=remi install mysql mysql-{server,devel}
$ sudo yum --enablerepo=remi install postgresql postgresql-{server,devel}
$ sudo yum --enablerepo=remi install php php-{devel,gd,mbstring,mcrypt,mysql,pgsql,pear}

▼mysql

$ sudo /sbin/chkconfig mysqld on
$ sudo /etc/init.d/mysqld start

$ /usr/bin/mysql_secure_installation

$ sudo mv /etc/my.cnf /etc/my.cnf.org
$ sudo cp /usr/share/doc/mysql-server-5.1.50/my-medium.cnf /etc/my.cnf

▼postgres

$ sudo /sbin/chkconfig postgresql on
$ sudo /etc/init.d/postgresql start

$ sudo /usr/bin/passwd postgres
$ sudo -u postgres psql template1

▼phpMyAdminのインストール。

$ sudo yum --enablerepo=remi install phpMyAdmin

※インストールすると以下の所にファイル等があります
/etc/phpMyAdmin
/etc/httpd/conf.d/phpMyAdmin.conf
/etc/phpMyAdmin/config.inc.php
/usr/share/phpMyAdmin
/var/lib/phpMyAdmin



$ sudo cp -p /etc/phpMyAdmin/config.inc.php /etc/phpMyAdmin/config.inc.php.org
     ※$cfg['blowfish_secret'] の値を適当な値に書き換えます

$ sudo vi /etc/httpd/conf.d/phpMyAdmin.conf
     ※allow from [IPアドレス]

$ sudo /etc/init.d/httpd restart

▼phpPgAdmin のインストール

$ sudo yum --enablerepo=remi install phpPgAdmin

※インストールすると以下の所にファイル等があります
/etc/phpPgAdmin
/etc/httpd/conf.d/phpPgAdmin.conf
/etc/phpPgAdmin/config.inc.php-dist
/usr/share/phpPgAdmin

$ sudo mv /etc/phpPgAdmin/config.inc.php-dist /etc/phpPgAdmin/config.inc.php
$ sudo /etc/init.d/httpd restart

▼php.iniの変更

$ sudo cp -p /etc/php.ini /etc/php.ini.20100821
$ sudo vi /etc/php.ini
$ diff /etc/php.ini.20100821 /etc/php.ini
> error_log = /var/log-php/php_errors.log
> default_charset = "UTF-8"
> include_path = ".:/usr/share/pear/"
> mbstring.language = Japanese
> mbstring.internal_encoding = UTF-8
> mbstring.http_output = UTF-8
> mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

$ sudo /etc/init.d/httpd restart

▼CentOSにphpコンパイラのapcをインストール

$ sudo yum --enablerepo=remi install php-pecl-apc
$ sudo /etc/init.d/httpd restart

以上です。

CentOSにphpコンパイラのapcをインストール

phpを高速化させるapcをインストールしようと思いやってみたのですが、
エラーではまってしまったので内容を備忘録の為に残しておく。

まずは、peclでインストール出来るということだったので
単純に下記のコマンドを入力。するとエラーが。。。

# pecl install apc

downloading APC-3.0.16.tgz ...
Starting to download APC-3.0.16.tgz (114,298 bytes)
.............done: 114,298 bytes
45 source files, building
running: phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
 1. Use apxs to set compile flags (if using APC with Apache)? : yes

1-1, 'all', 'abort', or Enter to continue:
building in /var/tmp/pear-build-root/APC-3.0.16
running: /var/tmp/APC/configure --with-apxs
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
ERROR: `/var/tmp/APC/configure --with-apxs' failed

何やら、Cコンパイラが無いとの事。
これに気付くのに凄く時間が掛ってしまった。。。

コンパイラが無いとの事なので、早速yumでインストール

# yum install gcc

# yum install gcc-c++

で、もう一度peclコマンドを入力

# pecl install apc

Build process completed successfully
Installing '/usr/lib/php/modules/apc.so'
install ok: channel://pecl.php.net/APC-3.0.16
configuration option "php_ini" is not set to php.ini location
You should add "extension=apc.so" to php.ini

すると今度は無事にインストール出来ました^^
でも、まだiniファイルを作らなきゃダメみたいなので

apc.iniファイルを新規追加。

# vi /etc/php.d/apc.ini

extension=apc.so

次に、apacheの再起動

# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

最後に、phpinfo()で[apc]の項目があれば完了!!