カテゴリー ‘ さくらのVPS

さくらのVPSでのPHPの設定


PHPのインストール

PHP5.3をyumを使ってインストールしようと思います。

とりあえず「php53」で検索してみると

yum search php53

php53.x86_64 : PHP scripting language for creating dynamic web sites
php53-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php53-cli.x86_64 : Command-line interface for PHP
php53-common.x86_64 : Common files for PHP
php53-dba.x86_64 : PHP アプリケーション用のデータベース抽出レイヤーモジュール
php53-devel.x86_64 : Files needed for building PHP extensions
php53-enchant.x86_64 : Human Language and Character Encoding Support
php53-gd.x86_64 : gd グラフィックライブラリを使用するための PHP アプリケーション用モジュール
php53-imap.x86_64 : A module for PHP applications that use IMAP
php53-interbase.x86_64 : Module for PHP applications that use Interbase/Firebird databases
php53-intl.x86_64 : Internationalization extension for PHP applications
php53-ldap.x86_64 : A module for PHP applications that use LDAP
php53-mapi.x86_64 : The PHP MAPI extension by Zarafa
php53-mbstring.x86_64 : マルチバイト文字列処理を必要とする PHP アプリケーション用モジュール
php53-mcrypt.x86_64 : Standard PHP module provides mcrypt library support
php53-mssql.x86_64 : MSSQL database module for PHP
php53-mysql.x86_64 : A module for PHP applications that use MySQL databases
php53-odbc.x86_64 : A module for PHP applications that use ODBC databases
php53-pdo.x86_64 : A database access abstraction module for PHP applications
php53-pgsql.x86_64 : A PostgreSQL database module for PHP
php53-php-gettext.noarch : Gettext emulation in PHP
php53-process.x86_64 : Modules for PHP script using system process interfaces
php53-pspell.x86_64 : A module for PHP applications for using pspell interfaces
php53-recode.x86_64 : Module for PHP applications for using the recode library
php53-snmp.x86_64 : A module for PHP applications that query SNMP-managed devices
php53-soap.x86_64 : A module for PHP applications that use the SOAP protocol
php53-tidy.x86_64 : Standard PHP module provides tidy library support
php53-xml.x86_64 : A module for PHP applications which use XML
php53-xmlrpc.x86_64 : XML-RPC プロトコルを使用する PHP アプリケーション用モジュール

これだけ候補に上がってきました。

その中で私が必要だと思う物をインストールしました。

sudo yum install php53.x86_64 php53-bcmath.x86_64 php53-cli.x86_64 php53-common.x86_64 php53-devel.x86_64 php53-gd.x86_64 php53-mbstring.x86_64 php53-mcrypt.x86_64 php53-mysql.x86_64 php53-pdo.x86_64 -y

PHP-Extensionのインストール

peclのインストール

まず、peclコマンドが使えるようにします。

sudo yum install --enablerepo=remi php-pear

APCのインストール

まず必要なライブラリをインストールします。

sudo yum install -y httpd-devel.x86_64
sudo yum install -y pcre-devel.x86_64

次にAPCのエクステンションを追加します。

sudo pecl install APC

ここで、いくつか質問がでると思いますが、デフォルトのままで基本大丈夫です。

次に、iniファイルを作成します。

sudo vim /etc/php.d/apc.ini
以下の内容を記述
extension=apc.so

これで、apcの設定が完了です。

Memcachedのインストール

まず必要なライブラリをインストールします。

sudo yum install --enablerepo=remi libmemcached-devel.x86_64
sudo yum install zlib-devel.x86_64

次に、memcachedのエクステンションを追加します。

sudo pecl install memcached

次に、iniファイルを作成します。

sudo vim /etc/php.d/memcached.ini
以下の内容を記述
extension=memcached.so

これで、memcachedの設定が完了です。

MongoDBのインストール

MongoDBのエクステンションのインストールです。

sudo pecl install mongo

次に、iniファイルを作成します。

sudo vim /etc/php.d/mongo.ini
以下の内容を記述
extension=mongo.so

これで、MongoDBの設定が完了です。

Solrのインストール

まず必要なライブラリをインストールします。

sudo yum install curl-devel.x86_64 -y
sudo yum install libxml2-devel.x86_64 -y

solrのエクステンションのインストールです。

sudo pecl install pecl/solr

次に、iniファイルを作成します。

sudo vim /etc/php.d/solr.ini
以下の内容を記述
extension=solr.so

これで、solrの設定が完了です。

 

次は、必要なサーバソフトを追加インストールします。

さくらのVPSにmysqlのインストールと設定


MySQLのインストール

sudo yum install --enablerepo=remi mysql.x86_64 mysql-server.x86_64 -y

 configファイルの設定

sudo vim /etc/my.cnf

次のように修正します。

[mysqld]

 〜 途中略 〜

character-set-server=utf8
skip-character-set-client-handshake

 〜 途中略 〜

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

データベースの作成

sudo mysql_install_db

mysqlの起動

sudo /etc/init.d/mysqld start

これでmysqlサーバが起動します。

rootパスワードの設定

/usr/bin/mysqladmin -u root password '新しいパスワード'

接続確認

mysql -u root -p

先ほど設定したパスワードで接続できたらOKです。

自動起動設定

sudo chkconfig mysqld on

これを設定しておくとサーバを再起動した時に自動的に、mysqlが起動します。

 

次にphpのインストールと設定です。

さくらのVPSにapacheの設定


Apacheのインストール

sudo yum install -y httpd

Apacheの設定

まずは、セキュリティを高める為の設定

sudo vim /etc/httpd/conf/httpd.conf

このファイルの「ServerTokens」の行はデフォルトでは「OS」となっているが、それを以下のように修正する

ServerTokens Prod

こうすることでレスポンスヘッダに詳しい情報が送信されず「Server: Apache」という簡単な情報のみが送信されるようになる

次に、「ServerSignature」の行はデフォルトでは「ON」となっているが、それを以下のように修正する

ServerSignature Off

こうすることでエラーページなどでサーバの情報が表示されなくなります。

次に、バーチャルホストの設定を行います。

sudo vim /etc/httpd/conf.d/10_vhost.conf

上記ファイルに、以下の情報を追加します。

# 9ensan.com
<VirtualHost IPアドレス>
  ServerName 9ensan.com
  DocumentRoot /web/9ensan.com/web/current
  ErrorLog  logs/9ensan.com.error_log
  CustomLog logs/9ensan.com.access_log combinedio
  <Directory /web/9ensan.com/web/current>
    Options ExecCGI FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    DirectoryIndex index.php index.html
  </Directory>
</VirtualHost>

5,6行目でエラーログとアクセスログの設定を行う。

これで、とりあえずApacheの設定は完了

 Apacheの起動

sudo /etc/init.d/httpd start

Apacheの自動起動の設定

sudo chkconfig httpd on

これをしておくことで、サーバを再起動しても自動的にApacheが立ち上がるようになります。

でもNginxの方が最近いいかなと思うのでNginxにHTTPサーバを変更するかもしれません。

Nginxの設定をする場合「cloudrop」のサイトがすごく参考になると思います。

 

次はmysqlのインストールと設定です。

さくらのVPSでの個人設定


1.sudoの設定

まず、root権限を使えるようにsudoを設定します。

ルート権限のあるユーザーで

/usr/sbin/visudo

を実行する、開いたファイルを以下の内容で編集します。

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

デフォルトでは、上記のようにコメントアウトされている箇所を

## Same thing without a password
 %wheel        ALL=(ALL)       NOPASSWD: ALL

このようにコメントを外します。

次に、ユーザーのgroupを設定します。

/usr/sbin/vigr

を実行してユーザーのgroupを変更します。

wheel:x:10:root

上記wheelのgroupが記述されている行があるので、そこに自分のユーザーをカンマ区切りで追加します

wheel:x:10:root,ユーザー名

これで「sudo」コマンドが使えるようになったはずなので確認の為に

「sudo」に続けて「ls」や「pwd」などのunixコマンドを入力して実行されるか確認します。

上手くいかない場合は、sudoにパスが通ってない事も考えられるので

/usr/bin/sudo pwd

のようにフルパスでコマンドを入力して確認して下さい。

※この設定はパスワード無しで、sudoコマンドが使えるように設定しています。

2.vimのインストール

次に、vimが使用出来ないのでvimのインストールをします。

サーバならviでいいだろと言われるかもしれないですが、個人的にvimが使いたいのでインストールします。

これが不要な場合は、飛ばしてもらって構わないです。

sudo yum install -y vim-enhanced.x86_64

これでインストールが終了したら完了です。

3.yumリポジトリの追加

yum-prioritiesをインストールします。これで、使用するyumに優先順位を付けます。

sudo yum -y install yum-priorities

次にyum-prioritiesの設定を行います。

sudo vim /etc/yum.repos.d/CentOS-Base.repo

で開いたファイルの

[base][updates][addons][extras]に、

priority=1

という記述を追加する

RPMforgeリポジトリインストール

sudo rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
sudo rpm -ivh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
sudo vim /etc/yum.repos.d/rpmforge.repo

rpmforge.repoを以下の内容で編集する

[rpmforge]が

enabled = 1
priority = 10

であることを確認する

EPELリポジトリインストール

sudo rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
sudo rpm -ivh epel-release-6-5.noarch.rpm
sudo vim /etc/yum.repos.d/epel.repo

epel.repoを以下の内容で編集する

[epel]が

enabled = 1
priority = 10

であることを確認する

 Remiリポジトリインストール

sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
sudo rpm -ivh http://rpms.famillecollet.com/enterprise/6/remi/x86_64/remi-release-6-1.el6.remi.noarch.rpm
sudo vim /etc/yum.repos.d/remi.repo

remi.repoを以下の内容で編集する

[remi]が

priority=1
enabled=0

であることを確認する

ここまでの内容は、こちらのサイトの「RPMforge EPEL Remiリポジトリインストール」で詳しく解説されているのを参考にさせて頂きましたので、分かりづらい場合はこちらを参照して下さい。

4.zshのインストール

zshをインストールしてログインシェルをzshに設定します。

個人的にzshが好きなだけなので、必要なければ省いて下さい。

sudo yum install -y zsh

5.設定ファイルの配置

ここまでで、vim、zshなどをインストールして次にscreenをインストールしますが、設定ファイルを設置していないので

パスが通らないと言う事が多々あると思いますので、ここで環境設定用のファイルを設置します。

  • .vimrc
  • .zshrc(.zshrc.local)
  • .zprofile
  • .screenrc

の5ファイルをホームディレクトリに設置します。

.vimrcは「ずんwiki

.zshrc、zshprofileは「漢のzsh

.screenrcは「そんな.screenrcで大丈夫か?

それぞれのファイルは各サイトを参考というより、ほぼそのまま利用させてもらっています。

ありがとうございます。

PATHの設定

パスの設定だけ晒しておきます。色々な場所でパスが通って無くてエラーが発生すると思いますので、

このパスを全て通すとセキュリティ上良くないと考える場合は、削って下さい。

PATH=.:$PATH:/usr/local/sbin:/sbin:/usr/sbin:$HOME/bin:/opt/local/bin:/opt/local/sbin
export PATH

6.screenのインストール

これは、サーバーに必要ないと思う場合は飛ばして下さい。

gitのインストール

sudo yum install git -y

 autoconfのインストール

最初からインストールされていますが、バージョンの関係上screenをインストール出来ないので最新のものを入れ直します。

sudo yum remove autoconf -y
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
tar zxvf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure
make
sudo make install

automakeのインストール

wget http://ftp.gnu.org/gnu/automake/automake-1.11.tar.gz
tar zxvf automake-1.11.tar.gz
cd automake-1.11
./configure
make
sudo install
sudo make install

libtoolのインストール

sudo yum install yum-utils -y
sudo yumdownloader libtool
sudo rpm -ivh --nodeps libtool-1.5.22-7.el5_4.x86_64.rpm

ncursesのインストール

sudo yum install ncurses-devel.x86_64

screenのインストール

git clone git://git.savannah.gnu.org/screen.git
cd screen/src/
autoconf
autoheader
./configure
make
sudo make install

これでscreenがインストールできます。

 

これで、個人設定は整ったので次はApacheのインストール設定を行います。

さくらのVPSでのSSHの設定


1.鍵交換方式でのログインの設定

まず、SSHでログインする時に、ユーザーID/パスワードは使用せずに、鍵交換方式でログイン出来るように設定します。

ssh-keygen -t rsa

と入力して鍵を作成します。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

この2行はパスワードを入力しても、入力しなくても大丈夫です。

パスワードを入力しなかった場合はパスワード無しで鍵が作成されます。

上記2行のパスワード設定以外は全て、デフォルトで、Enterで大丈夫です。

コマンドが上手く完了すると

ホームディレクトリ以下に「.ssh/id_rsa」と「.ssh/id_rsa.pub」というファイルが作成されます。

「.ssh/id_rsa」(秘密鍵)

これは、秘密鍵でサーバ上に配置せず、クライアント側に置いておきます。

クライアントがMacやLinuxなら「ホームディレクトリ/.ssh/」にコピーして、元ファイルは削除します。

コピーしたクライアント側のファイルの権限を「chmod」を使用して変更します。

chmod 600 ~/.ssh/id_rsa

鍵ファイルの権限を正しく設定しないとSSHエラーでログイン出来ない事がありますし、セキュリティの観点からも良くないので変更しておいて下さい。

Windowsの場合は、「Linuxでsshの鍵を作成するには」などを参考にSSHクライアント「putty」で使用して下さい。

クライアント側にコピーしたらサーバ上にファイルを残しておくとセキュリティ上良くないので削除しましょう。

「.ssh/id_rsa.pub」(公開鍵)

これは、サーバ上に残しておきます。

以下のコマンドで「~/.ssh/authorized_keys」を作成します。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

こちらも 以下のコマンドで権限を変更しておきます。

chmod 600 ~/.ssh/authorized_keys

 

鍵は、クライアント、サーバどちらでも作成できますので好きな方で作成して下さい。

今回はサーバ上で作成していますが私は、クライアント側で作成して公開鍵をサーバ上にアップロードして使用しています。

 

クライアントの設定

クライアント側に「~/.ssh/config」を作成します。

Host *
  IdentityFile        ~/.ssh/id_rsa
  ForwardAgent        yes
  TCPKeepAlive        yes
  ServerAliveInterval 15
  ServerAliveCountMax 3

IdentityFile:秘密鍵のパスを設定します。

それ以外の設定は、私がいつも使ってる設定です。

設定内容の詳しい内容がしりたい場合はこちらをご覧下さい

 

ここまで設定ができたら、ユーザーIDとパスワードでなく

鍵と鍵のパスワードでサーバにログイン出来るようになっているはずなので確認して下さい。

 

サーバ側の設定

セキュリティを高める為に、SSHはユーザーIDパスワードでのログインは許さずに、

鍵による認証のみを認めるように設定を変更します。

「/etc/ssh/sshd_config」を編集します。(root権限が必要です)

デフォルトでは

PasswordAuthentication yes

このようになっている箇所があるので、

PasswordAuthentication no

に変更します。

保存したら、sshdサーバを再起動します。

/etc/init.d/sshd restart

これで、SSHに関する設定が終了しました。

 

次は必要な個人設定をします。

return top