俺 Pedia

窓際エンジニア(仮)の日常

さくらのレンタルサーバの環境設定

この記事は「低予算でも闘う企画担当者の為の鎮魂歌 Advent Calendar 2015」の6日目の記事です。
 
今回はさくらのレンタルサーバの環境設定について説明します。

準備する環境

さくらのレンタルサーバではスタンダード以上のプランからシェルログインが利用できます。 その為Composerをはじめとして必要であればgitの利用も可能です。
 
今回は今後の記事で利用するComposerが利用できる環境を準備したいと思います。
記事中では契約ユーザー名が表示される部分を「(ユーザー名)」又は「(username)」と置き換えて表記しております。
 
「アンインストール用シェル関数の登録」についての説明を削除(アンインストール手順は別手順を記載済み)

① シェルをbashへ変更

さくらのレンタルサーバでは初期状態ではシェルはcshとなっています。

% echo $SHELL
/bin/csh

私は普段使い慣れているbashに設定しますが、その他にも利用可能なものはありますので自分の好みで設定してもよいでしょう。

■bashのパスの確認

% which bash
/usr/local/bin/bash

■利用可能なシェルの確認

% cat /etc/shells
# $FreeBSD: release/9.1.0/etc/shells 59717 2000-04-27 21:58:46Z ache $
#
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/sh
/bin/csh
/bin/tcsh
/usr/local/bin/zsh
/usr/local/bin/rzsh
/usr/bin/passwd
/usr/local/bin/bash
/usr/local/bin/rbash

 
シェルの変更は「chsh」コマンドで行います。

% chsh -s /usr/local/bin/bash
Password:
chsh: user information updated

変更の際はパスワードの入力を求められますのでサーバパスワードを入力します。

合わせて「.bash_profile」と「.bashrc」も作成しましょう。 予め両ファイルを作成しその後必要な部分のみ編集します。

% touch .bash_profile
% touch .bashrc

次に「.bash_profile」を編集します。

vi .bash_profile

記載内容は次の通りです。

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

現時点では特に記載すべきものはありませんので「.bashrc」が存在した場合の読み込みのみ記述します。 作業完了後再ログインし設定したシェルの環境に切り替わっている事を確認してください。
 

② binディレクトリの作成

「.profile」を確認するとわかりますが、さくらのレンタルサーバではユーザーのホームディレクトリ配下の「bin」ディレクトリに予めパスが通っています。
しかし該当のディレクトリは存在しない為、ディレクトリを作成しこのディレクトリに実行ファイルのインストールを行いたいと思います。

[(username)@www ~/bin]$ mkdir ~/bin

 

③ 「php.ini」ファイルの編集

次に「php.ini」ファイルを編集します。
Composerを利用する際次のようなエラーがでる場合があります。

The "https://packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
https://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date

このエラーに対応する為に予めcurlで使用する証明書を取得し使用するように設定します。 予めファイルの保存先(「ssl」ディレクトリ)を作成し、そこに証明書をダウンロードし保存します。

[(username)@www ~/bin]$ mkdir ~/ssl
[(username)@www ~/bin]$ wget http://curl.haxx.se/ca/cacert.pem

次にさくらのレンタルサーバのコントロールパネルから「php.ini」の設定を編集します。
コントロールパネルにログイン後、メニュー内の「PHP設定の編集」を選択し、次の内容を記載します。

curl.cainfo=/home/(username)/ssl/cacert.pem
openssl.cafile=/home/(username)/ssl/cacert.pem

記載後「保存する」をクリックし編集は終了です。 なお、本操作後は「/home/(ユーザー名)/www/php.ini」にファイルが作成されています。
 
なお、私はこの問題の解消に以下のサイトを参考にしました。

qiita.com  
 
合わせてコントロールパネルからPHPのバージョンも設定します。
さくらのレンタルサーバでは2015年12月6日現在デフォルトの設定では「PHP 5.4.45 (cgi-fcgi) (built: Oct 19 2015 11:02:31)」が設定されています。なお、さくらのレンタルサーバではその他に「4.4」「5.2」「5.3」「5.4」「5.6」が選択可能ですのでここでは「5.6」に変更しておきましょう。
リストから「5.6」を選択して「変更」ボタンをクリックして変更は完了です。
 
コントロールパネルでの操作を終えた後「.bash_profile」に「PHPRC」の設定を追加します。

PHPRC=/home/levelnine/www/php.ini
export PHPRC

上記の設定を行う事で先ほど設定した証明書の設定がコマンドラインからの実行時にも正常に読み込まれるようになります。
 
以上で作業は終了となります。
 

④ Composerの導入

準備は整いましたのでComposerの導入を行います。
Composerの導入そのものはご存じのとおりのコマンドを実行するだけですので、インストール先ディレクトリに移動し実行します。

[(username)@www ~/bin]$ cd ~/bin
[(username)@www ~/bin]$ curl -sS https://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /home/(username)/bin/composer.phar
Use it: php composer.phar

インストールそのものは以上で完了です。

私はリンクを張り利用しますがここは好みでよいかと思います。

[(username)@www ~/bin]$ ln -s composer.phar composer

念のため動作確認もかねてバージョン確認を行います。

[(username)@www ~/bin]$ composer --version
Composer version 1.0-dev (feefd51565bb8ead38e355b9e501685b5254d0d5) 2015-12-03 16:17:58

正常にバージョンが取得できました。
 

⑤ ライブラリ導入先ディレクトリの作成

最後にライブラリの導入先ディレクトリを作成します。
今回はユーザーのホームディレクトリ直下に作成していますが、例えばアプリケーション毎に管理する場合はアプリケーションディレクトリ内に作成するといいでしょう。

[(username)@www ~/bin]$ mkdir ~/lib

今後Composerを利用してパッケージの導入を行う場合はこのディレクトリに移動し操作を行います。
以上で現状必要となる環境設定は完了です。

Composerの使い方

最後にComposerの使い方を簡単に説明します。

① パッケージのインストール

多くのサイトでは「composer.json」を編集してパッケージを導入する方法を紹介していますが私は多くの場合コマンドラインから直接導入を行います。
例えば「monolog」を導入する場合は次のように行います。

[(username)@www ~/bin]$ composer require monolog/monolog

「require」オプション付きで実行する事で合わせて「composer.json」にも追加されています。 バージョンを指定しない場合は最新のバージョンが導入されますが、もしバージョンも指定したい場合はパッケージ名の後にコロンを追加しその後にバージョン番号を指定します。

[(username)@www ~/bin]$ composer require 'monolog/monolog:1.17'

 

② パッケージのアンインストール

「remove」を実行する際に「--update-with-dependencies」オプションを指定します。
このオプションの指定により依存するパッケージも合わせて削除されます。

[(username)@www ~/bin]$ composer remove monolog/monolog --update-with-dependencies

 

③ プログラムからパッケージを利用する

実際に導入したパッケージをプログラムから利用する場合、プログラム内で「vendor/autoload.php」を呼び出します。

<?php

require 'vendor/autoload.php';

※パスは省略してありますので適切に指定してください
 

 
以上でさくらのレンタルサーバでの環境設定は終了です。
その他にも幾つか便利に使う為の設定はありますので機会があれば紹介したいと思います。

明日からは昨日紹介したライブラリを個々の紹介したいと思います。