Maccle

CORESERVER(XREA)にsymfonyをインストールした手順

約 7 分

CORESERVER(XREA)にsymfonyをインストールした手順

phpの構文は超基本しか知らない私ですが、今回、ちょっと色々なAPIを使ってちょっとしたWebアプリケーションなんぞを作ってみようと思ったところ、「PHPってどんなんよ?」なんてすごいところから始まって「どうやらMVC」という概念をちゃんと意識して機能(モデル)とデザイン(ビュー)を分けて作ったほうがいいというとこまでは理解しました。

そして、一番評判のよかったPHPの本を読みながらMVCフレームワークを自作すればよいのかと奮闘していたら、なんとまぁ世の中には既にMVCの概念を持ったすばらしいオープンソースのフレームワークが既にあるじゃない!

その中でもsymfonyというフレームワークが互換性や機能、特にAjaxにも対応していて情報量からみても一番適しているようなので、これを採用。

がしかし、所有しているサーバはCORESERVERで、PHPがSafeモードのために何やら普通にsymfonyをインストールしてセットアップしただけではダメらしい。
これまた忘れないうちに自分用メモ。

現在のCORESERVER(XREAも同様)は、PHP ver.5であり、既にsymfony自体はインストールされていたので、作業自体はsymfonyの一番大きな単位となるプロジェクト(例:ネットショッピング)を作成し、この特定のプロジェクト内であらゆる機能を持つアプリケーション(例:商品検索、カート機能、決済機能など)を必要に応じて個々に作成していく、という流れになります。

前提環境(例):

  • サーバ : CORESERVER or XREA
  • URL : http://hogehoge.com/
  • サーバ上のパス : /virtual/myname/public_html/hogehoge.com
  • symfonyのプロジェクトパス : /virtual/myname/public_html/my-prj

事前にやっておくこと

  • CORESERVERの管理画面から、「ホスト情報の登録」を済ませておく。
    ※SSHのログインIDとパスワードは、FTPと一緒。
  • SSHでアクセスするので、Windowsの場合は、TeraTermなどのターミナルソフトを入手しておく。
    ※Macは普通にターミナルでログインできる。

とりあえず、symfonyが入ってるかを一応チェック

SSHでサーバにログイン。

とかでパスワード入力してそのままログイン。

以下で確認可能。

結果は例えばこんなん。

プロジェクトファイル群を置くためのディレクトリを作成

symfonyプロジェクト用のディレクトリは、公開用の実際のURL参照先となるドキュメントルート(/public_html/hogehoge.com)よりも上位の階層に作成。

プロジェクトを初期化して関連ファイル群を作成

プロジェクト用のディレクトリに移動して、プロジェクト定義(以下の例では my-prj がプロジェクト名)。

すると、/my-prj/ディレクトリの配下にこのような構成でフォルダとファイルが作成される。

my-prj/(プロジェクトフォルダ)
– apps/ アプリケーションフォルダ
– batch/ コマンドラインやスケジューラーから呼び出されるバッチファイル群
– cache/ 表示を高速化するためのキャッシュフォルダ
– config/ プロジェクトの設定ファイル群
– data/ データ用フォルダ
– doc/ ドキュメント用フォルダ
– lib/ 外部クラス・ライブラリ用フォルダ
– log/ symfonyによるログファイル群
– test/ 単体テスト用フォルダ
– web/ Webサーバー用ルートフォルダ

プロジェクト内で使用するアプリケーションを作成

実際のサイトの個々の機能を担うアプリケーションを作成。
ここではとりあえず、myapp という名前でアプケーションを作成。

Webフォルダの移動

プロジェクトディレクトリ(my-prj)と実際のサイト用ディレクトリ(hogehoge.com)は異なるため、プロジェクトディレクトリに作成されたWebフォルダをサイト用のディレクトリに移動する。

sfフォルダのシンボリックリンク作成

symfonyルートディレクトリの正規化

Webフォルダを移動したため、/virtual/myname/public_html/hogehoge.com/index.php のsymfonyルートディレクトリが正しく認識されるよう、viなどで編集。

以下の箇所を

以下に変更。

PHPをCGI版モジュールとして動かす

CORESERVER, XREAは、PHPがセーフモードで動いているので、スクリプトからsymfonyのキャッシュやログファイルにアクセスできないため、そのままでは全く動きません。

そこでサイトのドキュメントルート(/virtual/myname/public_html/hogehoge.com)の.htaccessを以下のように編集して、PHPをCGI版で稼働するように定義。

としてviで.htaccessを開き、「i」キーで編集モードに変更後、以下をコピペして先頭に追加。

「esc(エスケープ)」キーを押して、「:」「w」「q」として保存、viを閉じる。

動作確認

http://hogehoge.com/ にアクセスして、

Symfony Project Created
Congratulations! You have successfully created your symfony project.

と表示されればとりあえずsymfonyのプロジェクトとアプリケーションの作成は正常に完了。

以降は特に必要なし。

文字コード設定

同様に、/virtual/myname/public_html/hogehoge.com/php.ini をviで作成して以下を定義。

config.phpの編集

/virtual/UserName/public_html/my-prj/config/config.php を編集。
viで以下の内容を追記。

SCRIPT_NAMEの削除、ロケール、文字コードの定義

※サイトがサブディレクトリである場合(http://hogehoge.com/myprj/ など)は、$_SERVER[“SCRIPT_NAME”] = “/myprj”; などとする。

database.ymlの編集(※後からでも可)

/virtual/UserName/public_html/my-prj/config/database.yml を編集。
viで以下の内容に変更。

propel.iniの編集(※後からでも可)

/virtual/UserName/public_html/my-prj/config/propel.iniを編集。
viで以下の内容に変更。

この記事を書いたひと

某IT系なんちゃってエンジニアヨーダ
Apple好きだけど盲目マカーは気持ち悪いと思ってる中道だと思い込んでるしがないダメダメエンジニア。

今もってるApple製品↓
Macbook Pro 15 inch, iMac 27 inch (Late 2009), iPhone 6 Plus, iPad (初代! いらない!)
Follow :

コメントはこちら

*

COMMENT ON FACEBOOK