joppot

コピペで絶対動く。説明を妥協しない

サーバ

CentOS6.5にcakephp2.5.6をインストールする

投稿日:2014年12月21日 更新日:

Pocket

hgahgahiu

概要

みなさんこんにちはcandleです。今回はCentOSのapacheサーバー上にcakephpを導入してみましょう。

前提

CentOSにapacheがインストールされている
mysqlがインストールされている
wgetがインストールされている

cakephpをダウンロードする

cakephpをgithubからダウンロードしましょう。
cakephpをダウンロードする場所はapacheの標準公開ディレクトリの/var/www/に設置します。

wgetコマンドでオプションをつけてcakephp.zipという形でダウンロードします。

cd /var/www/

sudo wget -O cakephp.zip https://codeload.github.com/cakephp/cakephp/zip/2.5.6

wgetcakephp

ダウンロードしたら解凍し、zipファイルを削除します。

sudo unzip cakephp.zip
sudo rm -f ./cakephp.zip

unzipandrm

ディレクトリ名をcakephp-2.5.6からcakephpに変更しましょう。

sudo mv cakephp-2.5.6 cakephp

権限を変更します。apacheを使う場合は特に設定をしてなければ、管理者はapacheにしてグループはログインユーザーに私はしています。
もちろん、セキュリティを高めたい場合は管理者もグループもapacheにする事をお勧めします。

一般に下のコマンドでcakephpのフォルダの権限を変更します。

sudo chown -R 管理者:グループ /var/www/cakephp/

今回の場合ですと下の様にしましょう。

sudo chown -R apache:apache /var/www/cakephp/

chownpublicfolder

これでcakephpのインストールが終わりました。

cakephpの設定をする

次に、cakephpの設定をしていきましょう。

セキュリティーシードの設定

cakephpでは多分このシードを使って暗号化とかしていると思われるランダムな値を設定します。
cakephpフォルダのapp/Config/core.phpを開きます。エディタはemacsでもvimでも何でも良いです。
security.saltの値を変更します。これは英数字40文字くらいにします。

cd ./app/Config/
sudo emacs core.php
Configure::write('Security.salt', 'xqMStgq77GXkmuUNY3ExGXW9Qzat9KzrbiqqLK9g');

同じcore.phpのsaltの下のseedを変更します。seedの値は数字35文字程度でランダムな値を作ります。

Configure::write('Security.cipherSeed', '72344773592376554426837593966557647');

最終的にこんな感じになります。

saltandseed

core.phpの設定は以上です。


cakephp用のデータベースを作成する

次にmysqlにログインしてデータベースを作成します。
データベースは2つ用意すると良いでしょう。 

1つは開発用、もう一つはテスト用です。一般に下の様な命名規則で作ると便利です。

サービス名_dev
サービス名_test

今回の場合は下の2つのデータベースを作りましょう。

cakephp_dev
cakephp_test

mysqlにログインして下のコマンドを実行しましょう。

CREATE DATABASE IF NOT EXISTS cakephp_dev DEFAULT CHARACTER SET utf8;
CREATE DATABASE IF NOT EXISTS cakephp_test DEFAULT CHARACTER SET utf8;

createdatabasecakephptestdev

データベースが作成できました。

cakephpのデータベース設定をする

cakephpフォルダの中の./app/Config/database.php.defaultをコピーしてdatabase.phpを作ります。

cd ./app/Config/
sudo cp database.php.default database.php

makedatabasephp
database.phpを編集します。

下の様にしましょう。

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => '',
        'database' => 'cakephp_dev',
        'prefix' => '',
        'encoding' => 'utf8',
    );

    public $test = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => '',
        'database' => 'cakephp_test',
        'prefix' => '',
        'encoding' => 'utf8',
    );


cakephpdatabasedste

この設定はmysqlのrootユーザーを使用していますが、本番では別のmysqlユーザーを作成しパスワードも設定して使いましょう。

apacheのドキュメントルートを変更する

centosのapacheはデフォルトで/var/www/html/が公開ディレクトリになっているので、それを/var/www/cakephp/に変更しましょう。

/etc/httpd/conf/httpd.confを開きます。

sudo emacs /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html"
↓
DocumentRoot "/var/www/cakephp"

editdocmeuntroot


cakephpの.htaccessを許可する

デフォルトだと、恐らくcakephpの.htaccessは無効になっているのでそれをhttpd.confから許可します。

/etc/httpd/conf/httpd.confを開きます。
ファイルの一番下に下の内容を加えます。

<Directory "/var/www/cakephp/">
    Options FollowSymLinks
    AllowOverride All
</Directory>

htaccessok


phpのタイムゾーンを設定する

php5.3以上でcakephpを使う時はphpのタイムゾーンを設定する必要があるらしいです。
/etc/php.iniを開きます。

sudo emacs /etc/php.ini

下の場所を変更します。

date.timezone =
↓
date.timezone = Asia/Tokyo

datatimezonephp

保存しましょう。

サーバを起動して確認する

サーバを起動しましょう。

sudo service httpd restart

serverhttpdrestart

サーバにアクセスします。下の様に表示されれば成功です。

goodinformation

まとめ

うまくインストールできたでしょうか?
railsに比べれば簡単ですね。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-サーバ
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

wordpress skeletonを使った開発環境の構築

はじめに みなさんこんにちはcandleです。wordpressは大変便利なのですが、いまいちgitで管理するのが難しいものです。 というのも、wordpress全体をgit管理対象にしてしまうと、w …

awsのec2にtd-agentの環境を構築する

English 日本語 概要 みなさんこんにちはcandleです。 今回はec2にtd-agentの環境を構築したいと思います。 基本的には前回のCentOS6.5に構築するのと同じになります。 前提 …

pythonのfabricでファイルを分割しfabfileに読み込む方法

概要 皆さんこんにちはcandleです。今回はfabricで分割したpythonファイルを読み込んでみましょう。 fabricはfabfile.pyというファイルに実行したいコマンドを書くのですが、 …

Mysqlの管理ユーザーを追加する

概要 みなさんこんにちはcandleです。今回はmysqlの管理者を加える方法です。 この記事は別段書かなくても、いくらでもweb上にあるのですが、私がよく使うのでまとめました。 前提 mysqlの実 …

railsのaws-sdk gemを使ってs3のフォルダ(folder)を削除する

概要 みなさんこんにちはcandleです。今回はs3にあるフォルダを丸ごとrailsのaws-sdk gemを使用して削除してみたいと思います。 実はこの方法を確立するまですごく四苦八苦しました。なん …

  • English
  • 日本語

プロフィール


ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー

スポンサードリンク

アーカイブ