IISだから・・・という部分はありませんが、再設定するときのためにメールの設定をメモ。

「php.ini」のメール設定を環境に合わせて修正します。

例)

[mail function]
SMTP = xxxx.gine.jp
smtp_port = 25

 

また、「mb_language」を使用するので、「php_mbstring.dll」を有効にします。

 

このままだと、メールのタイトルが文字化けするので、下記サイトを参考に「/concrete/helpers/mail.php」を修正します。

XROSS CUBE concrete5メールの文字化け:その2CommentsAdd Star
http://d.hatena.ne.jp/xross-cube/20090509/1241883451

 

137行目あたりの「mail(・・・)」の前に「mb_language("neutral");」を追加します。

mb_language("neutral");
mail($to, $subject, $this->body, $header);

 

123行目あたりの「Content-type」を「ISO-2022-JP」に変更する。

$header  = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/plain; charset=ISO-2022-JP\r\n";

 

上記でメールフォームから文字化けなくメールが送信できました。

せっかく、Concrete5インストールしたので、まったり検証中です。

公開で使うならSEO対策も考えるだろうから、URL Rewrite の設定を行います。

 

■IIS7.5の設定

1.URL Rewrite Module のダウンロードします。

Microsoft URL Rewrite Module for IIS 7.0 (x64)
http://www.microsoft.com/downloads/details.aspx?familyid=6C15B777-8D9E-4D99-B359-A98E2C0880F7&displaylang=en

2.ダウンロードした「URL Rewrite Module」をインストールします。

3.「インターネット インフォメーション サービス(IIS)マネージャー」を起動し、左側の「接続」のサイトの下にある「Concrete5」を選択します。

4.「URL Rewrite」が追加されているので、ダブルクリックして「URL Rewrite」を表示します。

001s


4.右側の「操作」から「Import Rules...」をクリックして、「Import mod_rewrite Rules」を表示します。

5.真ん中にあるの「Rewrite rules」に、下記のテキストをコピーし、「Converted rules」が全て正常(緑色)になっていることを確認します。

<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</ifmodule>

 

002 

 

6.右側の「操作」にある「適用」をクリックします。「変更内容は正常に保存されました。」と表示されれば完了です。「Back To Rules」をクリックすれば追加したルールが確認できます。

003

 

■Concrete5の設定

Concrete5の設定はサイトにも書かれているので、特に書く必要もないと思ったりしますが一応メモ。

1.ログインして、「管理画面」を表示します。

2.「サイト全体の設定」の「SEO対策」にある「プリティーURLを使用する」にチェックをつけて、「保存」をクリックします。

3.上記で設定は完了しているので、「サイトに戻る」をクリックして、トップ以外のページにアクセスしてURLに「index.php」が含まれていなく、ページが表示されるのを確認します。

例)
http://ServerName/Concrete5/examples/sitemap/

いろいろなサイトで話題になっているオープンソースのCMS「Concrete5」をIISにインストールします。

ブラウザで見たまま編集できたり、承認フローなども実装していて、かなり評価の高いCMSです。

 

■環境

  • Windows 2008 R2(RC版)
  • IIS7.5
  • PHP    5.2.10
  • MySQL    5.1.35 x64版 (Windows MSI Installer)
  • concrete 5.3.1.1.ja

■MySQL設定

1.「MySQL Command Line Client」を起動しrootでログインします。

2.データベースを作成

create database Concrete default character SET utf8 COLLATE utf8_general_ci;

3.「exit」で「MySQL Command Line Client」を終了します。

4. 「my.ini」の修正

「sql-mode」を「"NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"」に修正します。

 

■PHP設定

1.「php.ini」の修正

下記3行のコメントアウトを解除します。

extension=php_mysql.dll
extension=php_gd2.dll
extension=php_gettext.dll

 

■インストール準備

1.concrete5日本語版をダウンロードダウンロードし解凍します。

concrete5日本語公式サイトからダウンロード可能です。
http://concrete5-japan.org/

2.解凍したファイルを 「C:\inetpub\wwwroot」 にコピーし、フォルダ名を「Concrete5」 に変更します。

3.Concrete5直下に「sitemap.xml」を作成します。

4.「Authenticated Users」に下記ファイルやフォルダの「読み取り」と「書き込み」権限を与えます。

/config
/files
/sitemap.xml

 

■インストール

1.ブラウザでインストールページ( http://servername/Concrete5/ )にアクセスします。

001

2.必要な情報を入力し、「Concrete5をインストール」をクリックします。

3.そのまましばらく待って、インストール完了。「サイトを開く」をクリックすれば、ログインした状態でトップページが表示されます。

002 003

■参考サイト

1. Html.ActionLink for images in ASP.NET MVC
http://devblog.ailon.org/devblog/2008/12/default.aspx

2. ASP.NET MVC Tip #47 ? Using ResolveUrl in an HTML Helper
http://stephenwalther.com/blog/archive/2009/02/18/asp.net-mvc-tip-47-ndash-using-resolveurl-in-an-html.aspx

 

上記サイト(1)に書かれているようにReplaceでimgタグに置換しますが、(2)のImageのHelperクラスを作成し使った方が良い感じでしょうか。

<%= Html.ActionLink("__IMAGE_PLACEHOLDER__", "index", "root").Replace("__IMAGE_PLACEHOLDER__", Html.Image("ID", "IMAGEURL", "ALT"))%>

ソースコードを書く場合BlogEngine.NETには、標準で「CodeFormatterExtension」がありますが、 今回は「SyntaxHighlighter 2.0 Extension For BlogEngine.NET」を使用します。

1.まずは下記からダウンロード

SyntaxHighlighter 2.0 Extension For BlogEngine.NET
http://sh2forbe.codeplex.com/

 

2.解答して出来る「App_Code」と「SyntaxHighlighter」をサーバの「BlogEngine.NET」のルートにコピーし、「NETWORK SERVICE」ユーザーに下記のフォルダ・ファイルの変更権を与えます。

/SyntaxHighlighter
/web.config

 

3.「BlogEngine.NET」にアクセスし、「コントロールパネル」の「Extensions」をクリックし、一覧の中に「SyntaxHighlighter」があるので、「編集」をクリックします。

image

 

4.「Folders」と「Brushes」の設定を必要に応じて修正します。

 

5.「HTMLにて記入」にチェックをつけてエディタを変更後、試しに下記のC#のソースコードをブログに上げます。

<pre class="brush: csharp;">
using System;
namespace HelloWorld
{
    class Hello
    {
        static void Main()
        {
            System.Console.WriteLine("Hello World!");
        }
    }
}
</pre>


で、下記のようになればOKです。

using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            System.Console.WriteLine("Hello World!");
        }
    }
}