【BlogEngine.net】
============================================
概要:ファイルベースで運用可能なオープンソースのブログエンジン 2008/01/10現在で1.3が最新バージョン
URL:http://www.dotnetblogengine.net/
入手先:http://www.codeplex.com/blogengine/Release/ProjectReleases.aspx?ReleaseId=7016
実際に稼働している様子:http://ravipen.net/sakamotoblog/
==============================================
【インストール方法】
1:ZIP形式のwebprojectをダウンロード。webprojectのほうが扱いやすいです。
2:サーバー側のwwwrootの下に何か適当なフォルダを作ります。
3:仮想ディレクトリとして2で作ったフォルダを指定します。
2,3に関しては別にBlogEngine.NETに関係ないところなので、レンタルサーバーであればそのサービス提供のマニュアルを読んでください。
4:1でダウンロードしたファイルを解凍します。解凍の仕方は教えてあげません。
5:解凍したら\App_Dataフォルダを探して、users.xmlとroles.xmlを探し出します。目を凝らして探します。
5-1:users.xml内のユーザーとパスワードを書き換えます。最初はAdminとかになってるのでそこのあたりを改竄します。
※インストール後にWEBからやってもできますが、ファイルアップロード後はID,PWがadmin共通なので事前にやっておくことをお勧め
5-2:roles.xml内をusers.xmlと合わせて変更します。WEBからやってもいいけど(以下略
このあたりでいったん休憩をはさみます。バナナはおやつに入りません。おでんはおかずになりません。
6:\App_Dataの下の以下のフォルダについて「読み取り専用」を外します。
\files
\log
\monstercache
\pages
\posts
BlogEngine.NETではファイルベースですべて保存されるようなので、バックアップはこのあたりを取っておけばよいと思われます
※公式サイトのマニュアルには\App\Dataフォルダ直下をすべて読み取り専用から外すとかいてありますが、users.xmlとroles.xmlはやめた方がいいと思われます。ローカルで事前に編集してからアップロードの方向で。
7:web.configを見てみます。
<syste.web>の中に
<trust level="High" />と記述がありますが、コメントアウトします。
共有サーバーによっては権限がMediumになってますので、Highのままだと実行時にエラーになっちゃいます。Highの権限があれば別にこのままでも行けるかと。
8:準備できたもの一式をサーバー側で準備したフォルダへアップロードします。アップロード方法は鳩でも、なんでもいいです。
9:※ここが重要ですーその1
アップロードがすんだら、\App_Dataフォルダに関してIIS上の権限「書き込み」を許可します。ここまではマニュアルにも書かれてます。
10:※ここが重要ですーその2
6で上げたフォルダに関しては「書き込み」権限だけではなく、「フルコントロール」権限も与える必要があります。
なんだか危ないような気がしますが、これを入れてあげないともちろん「削除」ができません。エントリの削除とか。どうもBlogEngine.NETの場 合、ファイルベースなので「削除=ファイルの削除」となる様子。「書き込み」で上書き空白削除みたいになればいいのにな~と思います。※レンタルサーバーの場合、通常のTrust Levelに「カスタマイズ」をかけていることがあります。ふつうはMediumで全く問題ない動作もこのカスタマイズがかけられた権限でエラーになったりするので要注意
11:日本語化するには?
\App_GlobalResources
の中に色々な言語があります。画伯はほぼ全てが読み書きOKなのでどんとこーい!なのですが、どうしても日本語じゃないと、というそこのあなた!!
labels.ja.resx
とうファイルをどの国からでもいいのでコピーしてVisualStudioかメモ帳で日本語編集してあげます。
Add→追加 とかその辺りの簡単なやつしかないです。
後はサーバーへブラウザからアクセスして色々とやってみます。
BlogEngine.NET 1.4.5 をIIS7上で動かす場合のWEB.CONFIG
BE.NETをIIS7上で動かそうとすると、デフォルトのままだと「500 内部エラー!」って出ます。
で、WEB.CONFIGの値を変える必要があるのですが、以下のようになります。
------------------------------
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="BlogEngine">
<section name="blogProvider" requirePermission="false" type="BlogEngine.Core.Providers.BlogProviderSection, BlogEngine.Core" allowDefinition="MachineToApplication" restartOnExternalChanges="true"/>
</sectionGroup>
</configSections>
<BlogEngine>
<blogProvider defaultProvider="XmlBlogProvider">
<providers>
<add name="XmlBlogProvider" type="BlogEngine.Core.Providers.XmlBlogProvider, BlogEngine.Core"/>
<add name="DbBlogProvider" type="BlogEngine.Core.Providers.DbBlogProvider, BlogEngine.Core" connectionStringName="BlogEngine" />
</providers>
</blogProvider>
</BlogEngine>
<!-- configSource is not implemented in Mono.
<connectionStrings configSource="sql.config" />
-->
<connectionStrings>
<clear/>
<add name="LocalSqlServer" connectionString="dummy"/>
<!-- Mono complains if LocalSqlServer isn't specified -->
<add name="BlogEngine" connectionString="Data Source=MySQLServer;User ID=user;Password=password;persist security info=False;initial catalog=BlogEngine;" providerName="System.Data.SqlClient"/>
</connectionStrings>
<appSettings>
<add key="BlogEngine.FileExtension" value=".aspx"/>
<!-- You can e.g. use "~/blog/" if BlogEngine.NET is not located in the root of the application -->
<add key="BlogEngine.VirtualPath" value="~/"/>
<!-- The regex used to identify mobile devices so a different theme can be shown -->
<add key="BlogEngine.MobileDevices" value="(nokia|sonyericsson|blackberry|samsung|sec\-|windows ce|motorola|mot\-|up.b|midp\-)"/>
<!-- The name of the role with administrator permissions -->
<add key="BlogEngine.AdminRole" value="Administrators"/>
<!--This value is to provide an alterantive location for storing data.-->
<add key="StorageLocation" value="~/App_Data/"/>
<!--A comma separated list of script names to hard minify. It's case-sensitive. -->
<add key="BlogEngine.HardMinify" value="blog.js,widget.js,WebResource.axd"/>
</appSettings>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="auto" uiCulture="auto"/>
<httpRuntime enableVersionHeader="false" useFullyQualifiedRedirectUrl="true" maxRequestLength="16384" executionTimeout="3600" requestLengthDiskThreshold="16384"/>
<machineKey validationKey="D9F7287EFDE8DF4CAFF79011D5308643D8F62AE10CDF30DAB640B7399BF6C57B0269D60A23FBCCC736FC2487ED695512BA95044DE4C58DC02C2BA0C4A266454C" decryptionKey="BDAAF7E00B69BA47B37EEAC328929A06A6647D4C89FED3A7D5C52B12B23680F4" validation="SHA1" decryption="AES"/>
<authentication mode="Forms">
<forms timeout="129600" name=".AUXBLOGENGINE" protection="All" slidingExpiration="true" loginUrl="~/login.aspx" cookieless="UseCookies"/>
</authentication>
<pages enableSessionState="false" enableViewStateMac="true" enableEventValidation="true">
<controls>
<add namespace="Controls" tagPrefix="blog"/>
</controls>
</pages>
<customErrors mode="Off">
<error statusCode="404" redirect="~/error404.aspx"/>
</customErrors>
<membership defaultProvider="XmlMembershipProvider">
<providers>
<clear/>
<add name="XmlMembershipProvider" type="BlogEngine.Core.Providers.XmlMembershipProvider, BlogEngine.Core" description="XML membership provider" passwordFormat="Hashed"/>
<add name="SqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="BlogEngine" applicationName="BlogEngine"/>
<add name="DbMembershipProvider" type="BlogEngine.Core.Providers.DbMembershipProvider, BlogEngine.Core" passwordFormat="Hashed" connectionStringName="BlogEngine"/>
</providers>
</membership>
<roleManager defaultProvider="XmlRoleProvider" enabled="true" cacheRolesInCookie="true" cookieName=".BLOGENGINEROLES">
<providers>
<clear/>
<add name="XmlRoleProvider" type="BlogEngine.Core.Providers.XmlRoleProvider, BlogEngine.Core" description="XML role provider"/>
<add name="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="BlogEngine" applicationName="BlogEngine"/>
<add name="DbRoleProvider" type="BlogEngine.Core.Providers.DbRoleProvider, BlogEngine.Core" connectionStringName="BlogEngine"/>
</providers>
</roleManager>
<siteMap defaultProvider="PageSiteMap" enabled="true">
<providers>
<add name="PageSiteMap" description="The site map provider that reads in the .sitemap XML files." type="BlogEngine.Core.Web.Controls.PageSiteMap, BlogEngine.Core"/>
<add name="SecuritySiteMap" description="Used for authenticated users." type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" securityTrimmingEnabled="true" siteMapFile="Web.sitemap"/>
</providers>
</siteMap>
<httpModules>
<add name="WwwSubDomainModule" type="BlogEngine.Core.Web.HttpModules.WwwSubDomainModule, BlogEngine.Core"/>
<add name="UrlRewrite" type="BlogEngine.Core.Web.HttpModules.UrlRewrite, BlogEngine.Core"/>
<add name="CompressionModule" type="BlogEngine.Core.Web.HttpModules.CompressionModule, BlogEngine.Core"/>
<add name="ReferrerModule" type="BlogEngine.Core.Web.HttpModules.ReferrerModule, BlogEngine.Core"/>
<!--Remove the default ASP.NET modules we don't need-->
<remove name="PassportAuthentication"/>
<remove name="Profile"/>
<remove name="AnonymousIdentification"/>
</httpModules>
<httpHandlers>
<add verb="*" path="file.axd" type="BlogEngine.Core.Web.HttpHandlers.FileHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="image.axd" type="BlogEngine.Core.Web.HttpHandlers.ImageHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="syndication.axd" type="BlogEngine.Core.Web.HttpHandlers.SyndicationHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="sitemap.axd" type="BlogEngine.Core.Web.HttpHandlers.SiteMap, BlogEngine.Core" validate="false"/>
<add verb="*" path="trackback.axd" type="BlogEngine.Core.Web.HttpHandlers.TrackbackHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="pingback.axd" type="BlogEngine.Core.Web.HttpHandlers.PingbackHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="opensearch.axd" type="BlogEngine.Core.Web.HttpHandlers.OpenSearchHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="metaweblog.axd" type="BlogEngine.Core.API.MetaWeblog.MetaWeblogHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="rsd.axd" type="BlogEngine.Core.Web.HttpHandlers.RsdHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="css.axd" type="BlogEngine.Core.Web.HttpHandlers.CssHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="js.axd" type="BlogEngine.Core.Web.HttpHandlers.JavaScriptHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="rating.axd" type="BlogEngine.Core.Web.HttpHandlers.RatingHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="opml.axd" type="BlogEngine.Core.Web.HttpHandlers.OpmlHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="blogml.axd" type="BlogEngine.Core.Web.HttpHandlers.BlogMLExportHandler, BlogEngine.Core" validate="false"/>
<add verb="*" path="sioc.axd" type="BlogEngine.Core.Web.HttpHandlers.Sioc, BlogEngine.Core" validate="false"/>
<add verb="*" path="apml.axd" type="BlogEngine.Core.Web.HttpHandlers.Apml, BlogEngine.Core" validate="false"/>
<add verb="*" path="foaf*.axd" type="BlogEngine.Core.Web.HttpHandlers.Foaf, BlogEngine.Core" validate="false"/>
</httpHandlers>
</system.web>
<system.webServer>
<modules>
<remove name="Profile" />
<remove name="AnonymousIdentification" />
<add name="UrlRewrite" type="BlogEngine.Core.Web.HttpModules.UrlRewrite" preCondition="managedHandler" />
<add name="ReferrerModule" type="BlogEngine.Core.Web.HttpModules.ReferrerModule" preCondition="managedHandler" />
<add name="CompressionModule" type="BlogEngine.Core.Web.HttpModules.CompressionModule" preCondition="managedHandler" />
<add name="WwwSubDomainModule" type="BlogEngine.Core.Web.HttpModules.WwwSubDomainModule" preCondition="managedHandler" />
<!--The CleanPageModule below removes whitespace which makes the page load faster in IE. Enable at own risk -->
<!--<add name="CleanPageModule" type="BlogEngine.Core.Web.HttpModules.CleanPageModule, BlogEngine.Core"/>-->
<!--Remove the default ASP.NET modules we don't need-->
</modules>
<handlers>
<add name="FileHandler" verb="*" path="file.axd" type="BlogEngine.Core.Web.HttpHandlers.FileHandler, BlogEngine.Core" />
<add name="ImageHandler" verb="*" path="image.axd" type="BlogEngine.Core.Web.HttpHandlers.ImageHandler, BlogEngine.Core"/>
<add name="SyndicationHandler" verb="*" path="syndication.axd" type="BlogEngine.Core.Web.HttpHandlers.SyndicationHandler, BlogEngine.Core"/>
<add name="SiteMap" verb="*" path="sitemap.axd" type="BlogEngine.Core.Web.HttpHandlers.SiteMap, BlogEngine.Core" />
<add name="TrackbackHandler" verb="*" path="trackback.axd" type="BlogEngine.Core.Web.HttpHandlers.TrackbackHandler, BlogEngine.Core" />
<add name="PingbackHandler" verb="*" path="pingback.axd" type="BlogEngine.Core.Web.HttpHandlers.PingbackHandler, BlogEngine.Core" />
<add name="OpenSearchHandler" verb="*" path="opensearch.axd" type="BlogEngine.Core.Web.HttpHandlers.OpenSearchHandler, BlogEngine.Core" />
<add name="MetaWeblogHandler" verb="*" path="metaweblog.axd" type="BlogEngine.Core.API.MetaWeblog.MetaWeblogHandler, BlogEngine.Core" />
<add name="RsdHandler" verb="*" path="rsd.axd" type="BlogEngine.Core.Web.HttpHandlers.RsdHandler, BlogEngine.Core" />
<add name="CssHandler" verb="*" path="css.axd" type="BlogEngine.Core.Web.HttpHandlers.CssHandler, BlogEngine.Core" />
<add name="JavaScriptHandler" verb="*" path="js.axd" type="BlogEngine.Core.Web.HttpHandlers.JavaScriptHandler, BlogEngine.Core" />
<add name="RatingHandler" verb="*" path="rating.axd" type="BlogEngine.Core.Web.HttpHandlers.RatingHandler, BlogEngine.Core" />
<add name="OpmlHandler" verb="*" path="opml.axd" type="BlogEngine.Core.Web.HttpHandlers.OpmlHandler, BlogEngine.Core" />
<add name="MonsterHandler" verb="*" path="monster.axd" type="BlogEngine.Core.Web.HttpHandlers.MonsterHandler, BlogEngine.Core" />
<add name="BlogMLExportHandler" verb="*" path="blogml.axd" type="BlogEngine.Core.Web.HttpHandlers.BlogMLExportHandler, BlogEngine.Core" />
</handlers>
<validation validateIntegratedModeConfiguration="false" />
<security>
<authentication>
<basicAuthentication enabled="false" />
</authentication>
</security>
<defaultDocument>
<files>
<clear />
<add value="default.aspx" />
</files>
</defaultDocument>
<httpRedirect enabled="false">
<clear />
</httpRedirect>
</system.webServer>
</configuration>
------------------------------
System.webserver以下が追加されている部分です。