Home

inputlog

Concrete5をxamppにインストール

MOONGIFTで紹介されていたConcrete5を試すため、xamppにインストールしたのでメモを残しておきます。 すでにxamppはインストール済みだったのでその次のステップから書いていきます。

Concrete5のファイル一式ダウンロード

まずは必要なファイル一式のダウンロードです。Concrete5公式サイトからDownloadボタンを押してSourceForge.netからダウンロードできました。(僕がダウンロードした時点では5.1.0RC1)

c5.localhostでアクセスできるように

ほかのサイトと分けるため、localhostのサブドメインのような形でアクセスできるように設定します。まずhostsファイルに追記して、c5.localhostでアクセスした際、自分のPCを指し示すようにします。 hostsファイルはVistaだと C:\Windows\System32\drivers\etc\hosts にあります。

127.0.0.1       localhost
::1             localhost
127.0.0.1       c5.localhost

次に、ドキュメントルートを作ります。僕はxamppでつかうlocalhostのサブドメインはC:\wwwの中にドキュメントルートを用意していますのでC:\www\c5\htdocsという風にフォルダを作成しました。 フォルダを作成したらダウンロード済みのConcrete5を解凍して展開しておきます。(index.phpがある場所がhtdocs直下になるように展開しました)

ファイルが展開できたらApacheの設定に移ります。C:\xampp\apache\conf\extra\httpd-vhosts.confというファイルがありますのでここにサブドメインを設定します。19行目付近、NameVirtualHostの設定がコメントアウトされている場合はコメントを外して有効かします。

 ~略~
 #
 # Use name-based virtual hosting.
 #
NameVirtualHost *:80
 ~略~
<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs"
  ServerName localhost
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot "C:/www/c5/htdocs"
  ServerName c5.localhost
</VirtualHost>

また、httpd.confのほうにセキュリティのためC:\xampp\htdocs以外を表示できなく設定されていますのでC:\www以下を表示できるように追加します。203~231行目の<Directory "C:/xampp/htdocs">が閉じた後に以下を追記しました。

<Directory "C:/www">
  Options Indexes FollowSymLinks Includes ExecCGI
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

confファイルをいじったので忘れずにApacheを再起動しておきます。(コントロールパネルのApacheを停止→開始でOK)

MySQLの準備

データベースの準備です。Concrete5は空のDBを一つ用意しないといけないようです。まずはphpMyAdminにアクセスします。(http://localhost/phpmyadmin/)

ついでにユーザーも作ってしまいたいのでトップページから「特権」→「新しいユーザーを追加する」で

  • ユーザー名:c5
  • ホスト:すべてのホスト(空)
  • パスワード:{任意}
  • 同名のデータベースを作成してすべての特権を与える

として一気にユーザーとデータベースを作ります。権限は SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER だけあればよいようなので気になるようなら修正してください。

また、日本語を使うために「c5データベース」の「操作」タブから照合順序を utf8_general_ciに変更しておく必要があります。(1度ここを忘れて日本語が????になってしまいインストールしなおしました)

URLにアクセスしてインストール

あとはhttp://c5.localhost/にアクセスすればサイト名、MySQLのID,PASSなど聞かれますのでここまでで作成した情報を入力すればインストール完了です。

すぐにUsersに入りadminを検索、ユーザー名、パスワードを任意のものに変えておくとよいかもしれません。

ubuntuのメモリを6GBに増設

家のデスクトップであるubuntuのメモリを増設しました。元の2GBに+4GBして合計6GBです。 4GBを越えると32bit OSでは通常認識できません。さしただけでは3GB程度しか認識されませんでした。

そこでPAE(Physical Address Extension)を使います。PAEを使うとアドレスを拡張して32bit OSでも64GBまでのメモリを認識することができます。

ubuntuでPAEを有効にするにはカーネルをPAEを有効にしたものにする必要があります。ubuntuではserver用カーネルでPAEが有効になっているようなのでこちらを使うことにします。書くブログを参考に以下をSynapticでインストールしました(不要なものも含まれてるかもしれません)。

  • linux-image-server
  • nvidia-kernel-source
  • linux-headers-server
  • module-assistant
  • linux-restricted-modules-server
  • linux-restricted-modules-2.6.24-19-server

これらをインストールすることでPAEが有効なserverカーネルで起動することができます。

ここまでですべて完了したかに見えたのですが、なぜか5GBしか認識してませんでした。BIOS画面で確認したところBIOS時点で5GBしか認識されていないようです。メモリの不具合かと思い、いろいろ試してみました。

  • 元の状態(1GB+1GB)-> 2GB
  • 元+新しいメモリ(1GB+1GB+2GB+2GB)-> 5GB
  • 新しいメモリ(2GB+2GB)のみで起動 -> 3GB
  • 新しいメモリ単体(2GB)-> 2GB
  • スロット変えてみる(2GB + 2GB)-> 3GB

という感じで、どうやら新しいメモリ2枚を同時に使うと1GB分どこかへ消えているようです。

BIOSをアップデートしたり、マザーボードの型番 ASUS P5B で検索していると、どうやらメモリリマップという機能を発見。メモリリマップをBIOSで有効にしたところ無事、6GB認識することができ、ubuntuからも普通に6GB認識されました。

いままで32bit OSでは4GBまでしかメモリを載せられないと思っていましたが、予想以上に簡単に認識させることができました。これでVMwareのWindowsに3.6GBのメモリを割り振るとか贅沢な設定にすることができます。メモリも安いですし32bitだからとメモリ増設を諦めていた方はぜひお試しください。

参考

JavaScriptでの1文字変数名の慣習

プログラム言語には仕様にはないけど、多くのプログラマーが同じように書いている慣習があります。その中で1文字の変数名とその意味を集めてみました。(間違っていたり、これが抜けてるよ!などありましたらコメントでご指摘いただけるとうれしいです)

  • a: 一時的な配列(Array)
  • e: イベント [thx:javascripterさん]
  • i: ループの中のカウンター(indexの頭文字)
  • j: ループを2重、3重にする場合、アルファベットを順番でj,k..とiの代わりに順番に利用
  • k: ループを2重、3重にする場合、アルファベットを順番でj,k..とiの代わりに順番に利用
  • n: 一時的な数字(Number)
  • o: 一時的なオブジェクト(Object)
  • s: 一時的な文字列(String)
  • x: x座標
  • y: y座標
  • $: document.getElementById()に相当する機能を持つfunction

おまけ

  • hoge: 適当な名前の変数を宣言したいときに使われる何の意味もない名前
  • foo: 適当な名前の変数を宣言したいときに使われる何の意味もない名前(英語圏版)
  • bar: 適当な名前の変数を宣言したいときに使われる何の意味もない名前(英語圏版)

OR演算子を使ったデフォルト値の設定

コメントでe–reiさんより以下のようにOR演算子(||)についての質問をいただいたので解説してみます。

JQuery,MooTools,他多数ライブラリ内部で (例) 1 :var SomeClass = Class.create(); 2 :SomeClass.prototype = { 3 : initialize: function(options){ 4 : Object.extend( 5 : this, 6 : Object.extend({ 7 : property1: 1, 8 : property2: 2 9 : }, options || {}); 10: ); 11: } 12:}; の様なソースがあったとして、 9行目の”options || {}”様な書き方がされているのをよく見るのですが、 これはどの様な読み方なのでしょうか。

OR演算子(論理和演算子・Logical OR Operator)は通常、if文の中で左右のどちらかがtrueであればtrueと判定したい場合に使います。

if (a < 1 || b > 2) {
  //aが1未満、またはbが2より大きい場合に実行されるスクリプト
}

質問のような使い方をする場合は||の動作について知っておく必要があります。||があった場合以下のように処理されます。

  1. まずは左側の式がtrueかどうか調べる
  2. 左側の式がtrueの場合は左側の式をそのまま返す
  3. 左側の式がfalseの場合は右側の式がtrueかどうか調べる
  4. 右側の式がtrueの場合は右側の式をそのまま返す
  5. 両方ともfalseならfalseを返す

この性質を利用すると特定の変数がundefindなど設定されていなかった場合、他の値を使うということができます。

var foo = bar || 0;

このように書くとbarがtrueの場合(つまり値が設定されているなどの場合)はbarの値を、undefindなど設定されていない場合は0を使うことになります。デフォルト値を設定する際に使うと便利です。もちろん同じ式をif文を使って書くこともできますが、だいぶ長くなってしまいます。

var foo;
if (bar) {
  foo = bar;
} else {
  foo = 0;
}

質問でいただいた”options || {}”はoptionsがあればそれを使い、なければ空のオブジェクトを使うという意味になります。

参考:オライリー JavaScript 第5版 5.7.2 論理和演算子(||)

yuga.js 0.6.3 - 優雅なWeb制作のためのJavaScript

主にコメントでいただいた不具合を修正したyuga.jsの0.6.3を公開します。0.6.0からの差分は以下の通りです。

  • 0.6.3 :thickboxのクラスが付いていても2重に設定されないように調整、ストライプがテーブルでうまく動作しない不具合の修正
  • 0.6.2 : ロールオーバーセレクタで#nav li imgなどの指定とselfリンクが合わせて使えなかった不具合を修正
  • 0.6.1 : ロールオーバーセレクタカスタム時に複数指定に対応、#のみの仮リンクにするするスクロールを適用しないように

基本的には特定環境におけるバグフィックスです。0.6.0でも問題がないかたは無理にアップデートする必要はありません。

yuga.js 0.6.3 ダウンロード

不具合などありましたら、この記事にコメントしていただけると助かります。

Home

Search
Feeds
Meta

Return to page top