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

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

関連記事

apache2.4でvirtualhost毎に環境変数を定義しphpで使用する方法

English 日本語 概要 みなさんこんにちはcandleです。 今回はapache2.4でバーチャルホスト毎に環境変数を定義して、それをphp側で受け取る方法を紹介します。 例えば、wordpre …

td-agentでnginxのerror.logとaccess.logを取得する

English 日本語 概要 みなさんこんにちはcandleです。今回はtd-agentでnginxのログを収集します。 td-agentで解説しますが、fluentdと設定は基本的に同じになると思う …

sshコマンドをaliasかssh configを使って短縮する

概要 みなさんこんにちはcandleです。今回はsshの接続先のホスト名を短くする方法です。 ssh接続は非常に強力なネットワークツールですが、接続先の指定がやや面倒ですね。それを単純にする方法をまと …

ruby on railsのckeditor gemをapacheのproductionの本番環境で動かす

概要 みなさんこんにちはcandleです。今回はckeditorを本番環境で動かしてみたいと思います。 とは言っても基本的な記述はdevelopment環境と同じなので、そこまでは前回の記事を参照お願 …

AWS環境でELB(ロードバランサー)とEC2サーバでapacheを使っている場合にhttpからhttpsにリダイレクトする方法

概要 みなさんこんにちはcandleです。今回はマニアックな記事ですが、恐らくスタートアップ企業などではわりと使う内容だと思うのでまとめておきます。 この方法が全てのサービス上でベストなやり方なのかど …

  • English
  • 日本語

プロフィール


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

スポンサードリンク

アーカイブ