ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由: Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このガイドはもう維持されていません。

代わりに参照してください:
このガイドは参考として役立つかもしれませんが、他のUbuntuリリースでは機能しない可能性があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

CakePHPについて

CakePHPは、 Model-View-Controller(MVC)プログラミングパラダイムを中心に構築された強力で堅牢なPHPフレームワークです。 これを使用してアプリケーションを構築するための柔軟な方法に加えて、ファイル、クラス、およびデータベーステーブル名を整理するための基本構造を提供し、すべての一貫性と論理性を維持します。

CakePHPの最小要件は、WebサーバーとPHP5.2.8以降です。 最も一般的にはApacheで実行されますが、CakePHPはLighttpdやMicrosoftIISなどの他のサーバーでも動作します。 さらに、データベースはほとんどのWebアプリケーションの一部であるため、CakePHPは、MySQL、PostgreSQL、Microsoft SQL Server、SQLite(すべてそれぞれのPDO拡張機能がインストールされている)などの多数のドライバーをサポートしています。

このチュートリアルでは、CakePHPをインストールして使い始める方法を学びます。 このため、すでに独自のクラウドサーバーインスタンスとWebサーバーを実行していることを前提としています。 このチュートリアルでは、オペレーティングシステムには Ubuntuを使用し、Webサーバー(+ PHPおよびMySQL)にはApacheを使用します。

CakePHPのインストール

サーバーにCakePHPをインストールする方法はいくつかあります。 CakePHP Webサイトからアーカイブをダウンロードして解凍したり、Gitを使用してGithubからリリースを複製したり、PEARを使用したりすることもできます。 最初のものが最も簡単なので、最初のものを使用します。

したがって、必要なのは、最新の安定版リリース( CakePHP Webサイトのホームページにあるリンク)をダウンロードして、フォルダーに解凍することです。 それでは、Webサーバーのルートフォルダーに移動して、アーカイブをダウンロードしましょう。

cd /var/www
wget https://github.com/cakephp/cakephp/zipball/2.3.9

これにより、リリースバージョンを名前として持つ.zipファイルがダウンロードされます。 次に、このファイルを解凍する必要があります。 unzipをインストールしていない場合は、次のコマンドを実行してすばやくインストールします。

sudo apt-get install unzip

これで、アーカイブを解凍できるようになります(.zipファイルの名前をダウンロードしたばかりの名前に置き換えてください)。

unzip 2.3.9

すべてのCakePHPファイルを含む新しいフォルダーを取得する必要があります。 先に進んで、このフォルダの名前をもっと便利な名前に変更できます。たとえば、projectとしましょう。

mv cakephp-cakephp-4b9e390 project

フォルダの名前を、アーカイブを解凍した後に取得した名前に置き換えてください。 そして、このコマンドはそれをprojectに名前変更します。 したがって、現在、 / var / www /projectフォルダーにCakePHPがあります。 そこに表示されるファイルとフォルダー構造の詳細については、こちらをご覧ください。

次に、アプリケーションの app / tmp フォルダーのアクセス許可を変更しましょう。これは、CakePHPがそれをかなり使用する必要があるため、Webサーバーで書き込み可能である必要があるためです。 Apacheの場合、 / var / www /projectフォルダー内から次のコマンドを実行します。

cd project
chown -R root:www-data app/tmp
chmod -R 775 app/tmp

これにより、フォルダとその中のすべての所有権がrootユーザーとwww-dataグループ(Apacheが使用する www-dataユーザーを含む)に変更されます。プロセスを実行するため)。 次に、2番目のコマンドは、www-dataグループが書き込むことができる方法でフォルダーのアクセス許可を設定します。

URL書き換え

CakePHPはクリーンなURLで非常にうまく機能するため、WebサーバーでURLの書き換えが可能であることを確認しましょう。 これは、Apacheモジュール mod_rewrite を有効にする必要があり、仮想ホストが.htaccessファイルによるオーバーライドを許可することを意味します。 したがって、最初に次のコマンドを使用して、システムでmod_rewriteが有効になっているかどうかを確認します。

apache2ctl -M

リストにrewrite_moduleが表示されている場合は、問題ありません。 そうでない場合は、次のコマンドを使用してモジュールを有効にします。

a2enmod rewrite

次に、これが当てはまらない場合は、Apacheのデフォルトの仮想ホストファイルを編集し、 / var /www[に対してAllowOverridesAllに設定されていることを確認します。 X168X]ディレクトリ。 次のコマンドでファイルを編集します。

nano /etc/apache2/sites-available/default

そして、このブロックが表示されている場所で、以下に対応するように変更を加えます。

		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all

これにより、.htaccessファイルがデフォルトのApache命令を上書きできるようになります。 これらの手順のいずれかを実行した後、変更を有効にするためにApacheを再起動してください。

sudo service apache2 restart

追加の構成

URL書き換え機能ができたので、CakePHPが提供するセキュリティ関連の構成、つまり「salt」と「seed」に注意してみましょう。 最初の文字列はCakePHPがセキュリティハッシュで使用するカスタム文字列であり、2番目の文字列は暗号化に使用されるカスタム番号です。 後で心配する必要がないように、今すぐ設定しましょう。 さらに、CakePHPアプリケーションのホームページには、表示されない場合に2つの大きな赤い通知が表示されます。

app /Configフォルダーにあるcore.phpファイルを編集して、次のブロックを見つけます。

/**
 * A random string used in security hashing methods.
 */
	Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');

/**
 * A random numeric string (digits only) used to encrypt/decrypt strings.
 */
	Configure::write('Security.cipherSeed', '76859309657453542496749683645');

実際の文字列と数値は場合によって異なる場合がありますが、ここで値を推測不可能なものに変更する必要があります。 cipherSeedの番号のみを含めるようにしてください。

ファイルを保存して終了します。

データベース接続

CakePHPにはデータベースは必要ありませんが、ほとんどのWebアプリケーションは情報を保存するためにデータベースを必要とします。 それでは、これから作成するMySQLデータベースへの接続を設定しましょう。 データベース自体の作成方法の詳細については説明しません。MySQLの操作方法の詳細については、このチュートリアルを参照してください。 または、必要に応じて、MariaDBへの移行をガイドするこのチュートリアルを確認することもできます。

したがって、小さなサンプルアプリケーションを作成する次のチュートリアルの目的のために、すでにいくつかのコンテンツを含むデータベースを作成し、CakePHPにそれを認識させましょう。 5つの列(id、title、body、created、modified)を持つ1つのテーブルを含むデータベースが必要です。 1つ目は主キーとしての自動インクリメント整数、2つ目はVARCHAR(500)、3つ目はTEXT、最後の2つはDATETIMEである必要があります。 先に進んで、このテーブルにいくつかの行を作成することもできます。

チュートリアルでは、データベースに「cake」、テーブルに「posts」という名前を付けます。 テーブルの名前付けは、CakePHPでは実際には非常に重要です。これは、その規則に従うと大きなメリットが得られるためです。 モデルとコントローラーの作成を検討するときに、これについて詳しく説明します。

したがって、いくつかのコマンドを使用して、これらすべてを実行できます。

MySQLまたはMariaDBにログインします。

コンソールから、データベースを作成できます。

create database cake;

次に、このデータベース内に、前述の列を含むテーブルを作成できます。 ただし、最初に「ケーキ」データベースに接続します。

use cake;

そして今、あなたはテーブルを作成することができます:

CREATE TABLE posts (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(50),
    body TEXT,
    created DATETIME DEFAULT NULL,
    modified DATETIME DEFAULT NULL
);

そして、非常に簡単にコンテンツを挿入します。

INSERT INTO posts (title,body,created)
    VALUES ('Title 1', 'Some body text.', NOW());

これにより、「投稿」テーブルに新しい行が追加されます。

次に、このデータベースを使用するようにCakePHPを構成してみましょう。 最初に行う必要があるのは、 / app / Config/フォルダーにあるdatabase.php.defaultファイルのコピーを作成し、database.phpという名前を付けることです。 ]。 次に、ファイルを開き、次のコードブロックを見つけます(cakeBlogおよびc4k3-rUl3Z をmysqlのログインとパスワードに変更します):

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'port' => '',
    'login' => 'cakeBlog',
    'password' => 'c4k3-rUl3Z',
    'database' => 'cake',
    'schema' => '',
    'prefix' => '',
    'encoding' => 'utf8'
);

あなたが今しなければならないのはあなたのケースに特有のデータベース接続情報を提供することだけであり、あなたは行ってもいいです。 ファイルを保存して終了します。 これで、ブラウザでナビゲートして、Webサーバーのドキュメントルートにあるプロジェクトフォルダ(または、CakePHPを配置したフォルダに名前を付けることを選択)をポイントできます。

http://www.example.com/project

新しいCakePHPアプリケーションのホームページが表示され、前に行った構成の後、すべての通知が緑色になっているはずです(外部のオプションのライブラリであるDebugKitに関する通知を除く)。

ただし、PHPからタイムゾーン関連のエラーが発生した場合は、 app /Configフォルダーにある同じcore.phpファイルの次の行のコメントを解除してください。

/**
 * Uncomment this line and correct your server timezone to fix
 * any date & time related errors.
 */
    date_default_timezone_set('UTC');

結論

このチュートリアルでは、クラウドサーバーにCakePHPをインストールしてセットアップする方法を見てきました。 次の記事では、CakePHPを少し試して、前に構成したデータベースと対話する単純なアプリケーションを作成します。

投稿者: Danny