a-blog cms の管理画面 URL を変更する方法

昨日 a-blog cms の記事書いていたら kazumich さんから直接説明もらった。
どうやら config.server.php の50行目あたりの以下の行を書き換えれば良いようです。

50
define('LOGIN_SEGMENT', 'login');

ファイルのこの部分を、例えば ablog-login に変更すれば、特に面倒な作業も必要ないまま ablog-login からアクセスできるようになりました。

EC-CUBE でも似たようなことやってたけど、EC-CUBE だと変更できなかったもんだから、今度は EC-CUBE もやって欲しい。a-blog cms 抜かりないですな!

それにしても弄ると知りたくなる不思議 CMS。

  • Date: 2010-9-01 (水) 23:47:04
  • Category: a-blog cms

BASIC 認証でアクセスを制限されている URL に直接 ID と PASS を書き込んでアクセスする方法

本日、とあるディレクトリの画像ファイルをサイトに JavaScript を使って読み込むだけの簡単なお仕事をしていたのですが、とあるディレクトリに BASIC 認証でアクセス制限がかかっていたため読み込むことが出来ませんでしたが、以下のページに解決策が書いてありました。
ベーシック認証をURLに直接書く

http://user:password@examplel.com/

ただし、ID と PASS が丸見えになってしまうことから、一般公開にはよろしくないですね。
ちなみに以上のページは @kozmats さんと @UsagiLatte さんに教えていただきました。

いやーこんな方法があるなんて、初めて知りました。

  • Date: 2010-9-01 (水) 15:37:11
  • Category: BASIC
  • Tags:

a-blog cms の管理画面(ログイン画面)へアクセスする方法

a-blog cms の研究中ですが、適当にインストールしていじくり回してたらログインできなくて10分くらい経ってしまいました。なぜ検索エンジンに引っかからない以下のページ!
管理ページにログインする | システムの管理 | サポート・マニュアル | a-blog cms – Web制作者のためのCMS

http://インストールしたドメイン/login

実はサーバー管理ツールとかの BlueOnyx をいれている場合、/login とか /admin とかにアクセスすると、サーバーの管理画面に飛んでしまいます。

多分サーバー管理ツールの方で何か設定をすれば回避することもできると思いますが、どうせなら管理画面 URL を変えておけば、わざわざ管理ツールに変更を加える必要はありません。

a-blog cms もなるべく名前が重複しないように、管理画面の URL を /ablog-login とか /ablog-admin とかに変えると、Blue なんちゃら系のサーバー管理ツールが導入されたサーバーでもなんなく使えると思いました。デフォルトで変更できるかな。今度探してみよう。

ちなみに WordPress なんかも管理画面は /wp-admin としていますので、そういうことを想定しているのではないでしょうか!僕の作るクライアント向け Web システムも、サーバー移転を考慮して管理画面 URL はクライアント名の頭文字などを付けた URL としています。

MacPorts で package require Pextlib 1.0 というエラーが出る場合の解決策

新しく購入した Macbook で何かを失敗して以下のようなエラーが出てしまいました。

can’t find package Pextlib 1.0
while executing
“package require Pextlib 1.0″
(procedure “dportinit” line 310)
invoked from within
“dportinit ui_options global_options global_variations”
Error: /opt/local/bin/port: Failed to initialize ports system, can’t find package Pextlib 1.0

いろいろ弄ってるうちに解決できましたので、私の行った作業を紹介しておきます。

Xcode の再インストール

多分この作業は私の場合は必要なかったように思います。
なぜなら、この作業を行ったところで何も問題が解決されなかったからです。

MacPorts の再インストール

そもそも以下のページを参考に、MacPorts を入れなおそうとしようと思ったんですが、私の場合はこれでは解決できないんです。
mac OS X 10.6 snow leopard にアップデートしたらmac ports が動かなくなった – ウマい話、ちょいくれや。
チームリーダー日記 : [memo]Snow Leopard(10.6)移行後にMacPortsが動かなくなった→対応したMacPortsをインストールしたら直った。→(追記)それだとダメっぽくて入れ直した。
Migration – MacPorts

いろいろ触ってるうちに、寝ぼけて古い DarwinPorts をインストールしていたみたいで、それが原因なのかもしれないことが判明。すぐに DarwinPorts のアンインストール方法を探して発見。
Getting rid of DarwinPorts – The macosxhints Forums

1
rm -rf /opt/local /Applications/DarwinPorts /Library/Tcl/darwinports1.0 /etc/ports

でも実際は MacPorts や DarwinPorts 関連のアンインストールは以下のディレクトリだけで OK だそうですよ。またしても @nanasess さんから情報もらいました。

1
sudo rm -rf /opt/local

私が Macbook Pro で15インチを選択した理由

Macbook Pro の15インチを購入しました。

メインのデスクトップパソコンは譲ったり、高負荷処理専用 PC になったり、ファイルサーバーになったり、いろいろと各自新しい役割ができて毎日せっせと働いてます。11年前の PC はもう限界だったので寝てもらいます。

ところで、Macbook は13インチ、15インチ、17インチと3種類のサイズがあるのですが、皆さんどれにするか悩む方も多いかと思いますので、私の15インチを選択した理由を紹介しておきます。

それぞれのサイズに以下のような役割があるのかな

13インチ

  • 外によく出歩き外出先で PC を弄ることがよくある
  • 特に制作はこの PC では行わない

15インチ

  • 外によく出歩くことはないが出歩くかもしれない
  • この PC で制作を行っていこうと思っている

17インチ

  • 外によく出歩くことはない
  • この PC で制作を行っていこうと思っている
  • この PC であらゆることをやっていきたい

私は外によく出ませんし、この PC であらゆることをやっていきたいと思っています。
ですが、ディスプレイのサイズは15インチも17インチの変わらないと思います。

そのため17インチよりも15インチのほうが良いと思われます。

もし大きめのディスプレイで動画などを楽しみたいのであれば、17インチよりももっと大きなディスプレイを購入して15インチの Mac を大きなディスプレイに繋げば完璧だと思うです。

17インチだとカバンとかにも入りませんしね。

もし17インチを購入された方がいれば、そのあたりをお教えくださいませ。

Web 制作を最高効率で行うために開発環境を3ヶ月かけて整えたよ

私は趣味でやっている Web 制作が大好きです。
そんな Web 制作を本気で行えるように開発環境を整えましたので自慢します。
趣味なのに、ここまでやったので読んでください。

最高の開発環境とは

  • ファイルの管理を効率的に行えている
  • プロジェクトの管理を行えている
  • 家だけではなく会社でも外でもリビングでも飯を食べながらでも作業ができる
  • 自分の開発の進捗や興味を持っていることを世界に公開することができる環境がある
  • より良いものを作るにはより良い息抜きが必要であり、その息抜きを効率的に短時間で行うことができる
  • 自分の周囲の技術レベルあるいは環境が整っており、自分のために有効活用できる
  • 息抜きと作業を物理的に区別して、作業へ対する集中力を最大限に高められる

この条件を満たすべく行った作業

ファイルの管理を効率的に行う

以下のようにリポジトリをサーバーに立てることで実現しました。
heteml に svn のリポジトリを作成して TortoiseSVN やコマンドから管理する方法 | ウェブル
heteml から Serverman@VPS に SVN のリポジトリを移転する方法 | ウェブル
Subversion のコマンドをマスターしたい – Level1 | ウェブル

プロジェクトの管理を行う

以下のように Redmine をインストールし実現しました。
CentOS に Redmine 1.0 をインストールする手順 | ウェブル
heteml に RubyGems をインストールする方法 | ウェブル
heteml から ServersMan@VPS に乗り換え作業中 | ウェブル

ここまでで VPS をレンタルし CentOS を勉強することになりました。

好きな場所で作業をする

メイン PC をノートにすることで解決。
メイン PC に求めるスペックは以下。

  • UNIX である
  • やる気の出る UI である
  • iTunes で音楽を聞きながら作業できる
  • バッテリーが長持ちする
  • 持ち運びがしやすい

そうしたら Macbook Pro しか無いですね。写真取るのめんど。
これは息抜きと作業を物理的に区別することに繋がりますね。

自分の開発の進捗や興味を持っていることを公開できるようにする

ウェブルでプロジェクトの簡易的な進捗状況を管理・公開できるようにして実現しました。

息抜きを効率的に短時間で行うようにする

私は購入した DVD や CD などはパソコンに取り込んで楽しんだりするのですが、今までデスクトップの環境からしかこれらのファイルにアクセスすることができませんでした。
そのため、今回はファイルサーバーを設けて、そこにデータを保存することで、どこからでもアクセスできるようにして、いつでもどこでも楽しむことができるようにしました。

これは周囲の技術レベルあるいは環境を整えることにも繋がります。

いろいろと副産物もありまして、ネームサーバーが立ち上がったり、ネットワークを理解したり、ubuntu の samba を弄ったり、PC の BIOS を弄りまくったり、英語がちょっと読めるようになったり、もうマジでいろいろ勉強になりました。

というか、3ヶ月間も何もしていなかったと思う人いると思いますが、そんなことやってたんですよー!時間を無駄になんてしていません。

ちなみに、これからは制作をしていきますので、ふふふー楽しみにしていてください。

  • Date: 2010-8-24 (火) 21:42:01
  • Category: 雑記

WordPress を高速化するには WP Super Cache を入れよう

WP Super Cache の存在は前々から知っていたんですが、最近になって WordPress が重くなってきて困っていたので使ってみました。
WordPress › WP Super Cache « WordPress Plugins

最近の WP Super Cache は日本語化されてて設定は簡単です。
それにしても、なぜ重くなったんでしょうか。考えられる原因は以下です。

  • 最近密度の濃い記事を投稿するようになった
  • 最近サーバーを Serverman@VPS に移転した
  • 最近アクセスが増加した
  • 何か処理に時間のかかるプラグインを導入した

まぁサーバー移転が原因でしょうが…。でも VPS 最高なので止められない!
でもこの程度で重くなる WordPress も結構重い CMS だと思います。前々から少し重いなと思っていたので良い機会です。
ちなみにこの記事は WP Super Cache のテストのために投稿しました…。

PEAR をインストールできない環境で MDB2 を使う方法

PEAR をインストールできない環境なんて無いんですが、なるべくサーバーにインストールして使うっていうのを避けたかったので、試行錯誤してやりました。もう PEAR と仲良くなれたハズです。

今回は以下のページを参考にしました。
PEAR::MDB2のページ – テテのweb開発メモ – livedoor Wiki(ウィキ)

PEAR を用意する

以下のページから PEAR をダウンロードします。
PEAR のダウンロードページ

その後、ドキュメントルートでもどこでも良いので、任意のディレクトリに PEAR というディレクトリを作って、その中に展開したフォルダの中の PEAR.php とかが入った階層のファイルすべてを突っ込みます。

MDB2 を用意する

以下のページから MDB2 をダウンロードします。
MDB2 のダウンロードページ

展開したフォルダの中の MDB2.php と MDB2 を PEAR ディレクトリに全部突っ込みたい。

MDB2_Driver_mysql を用意する

以下のページから MDB2_Driver_mysql をダウンロードします。
MDB2_Driver_mysql のダウンロードページ

展開したフォルダの中の MDB2 ディレクトリすべてを先ほどの MDB2 ディレクトリすべてに大して上書き保存します。マージでも良いのかな。試しに私はマージにしました。

MDB2 を試してみる

PEAR フォルダを作ったディレクトリに以下のファイルを設置します。
ちなみに、以下は WordPress のデータベースから記事一覧をすべて出力するコードなので、適宜変更してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php 
ini_set('display_errors', "1");
error_reporting(E_ALL & ~E_DEPRECATED);
 
echo 'start<br>';
 
require("PEAR/MDB2.php");
 
//DSN 
$dsn = "mysql://user:password@localhost/dbname?charset=utf8"; 
 
//接続 
$mdb2 =& MDB2::factory($dsn); 
 
//フェッチモード設定 
$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC); 
 
//SQL文発行 
$sqlStr = "SELECT * FROM wp_posts"; 
$res = $mdb2->queryAll($sqlStr);
 
//結果を表示 
foreach ($res as $obj) { 
    print $obj["id"];
    print '	';
    print $obj["post_title"];
    print '<br>';
} 
 
//クローズ 
$mdb2->disconnect(); 
 
echo 'end';
?>

出力結果

以下のように出力されました。

4000 WordPress で特定のカテゴリの記事をリストで一覧にするコード
4002 WordPress でカレンダーを出力するタグ
4006 WordPress のページでどれだけ深い階層からでも最上階の親ページのスラッグとタイトルを取得するコード
4004 WordPress の the_excerpt() で記事の抜粋と続きを読むリンクを出力させる方法
4013 WordPress でカテゴリのタイトルやスラッグを取得する方法
4015 制作効率を高めるには寝る前にスケジュールを立てよう
4019 PHP ファイルが文字化けてしまう場合は .htaccess で文字コードを UTF8 にする
4023 UTF-8 で半角・全角を数えるには一度 Shift-JIS に変換から行う
4025 WordPress のページテンプレートの情報を取得する方法
4034 WordPress の $post の中身・内容を調べてみよう
4036 Amazon に商品を返品したけど返金してもらえなかった(前編)
4041 MySQL の LIKE 演算子で濁音・半濁音を区別して検索する方法
4044 Amazon で商品を返品する際にメーカー既成の梱包は絶対に開封してはいけない

MDB2 以外の PEAR ライブラリについても同じような感覚でできそうです。

a-blog cms を ubuntu のローカルにインストールする

a-blog cms を ubuntu にインストールしてみました。
途中でなんかいろいろ動かなかったのでメモ残しておきます。

ダウンロード

a-blog cms のパッケージをダウンロード
ダウンロード | a-blog cms – Web制作者のためのCMS

ionCubeローダーをダウンロード
暗号化ソフト – ionCube PHP Encoder | アシアル株式会社

※ionCubeローダーが既にダウンロードされている人は必要ありません。

ionCube ローダーをインストール

いろいろ面倒くさいので最速の方法でやりました。
既にインストールされている人はこの作業要りません。

まず、ダウンロードしたパッケージを展開し、/usr/local/ioncube にそのまま移動します。
その後 /etc/php5/apache2/php.ini に以下のように記述する。

zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so

Apache を再起動して終了です。

a-blog cms をインストール

ブラウザからアクセスするとインストールが始まります。
かなり簡単に設定ができるので、WordPress とかに比べると楽ですね。

ちなみに、ドメインは hoge.com のようでないとインストールできないので、社内のイントラネットとかでブログ作る場合とかに短いアドレスで syanai なんてやるかもしれないけど、それができないのは残念かもなぁーと思った。

いろいろあるんだろう。次は Web サーバに乗せよう。

Web デザイナーでも15分でフォームが作れる phpform の使い方

phpform の使い方を紹介します。
こちらの記事を参考にすればデモサイトの様なフォームが簡単に作れます。
LGPL ライセンスで公開しておりますので、公開・非公開はご自由にどうぞ。

ダウンロード

phpform_1.0.tar.gz
phpform_1.0.zip
※現在β版として公開中です。バグがありましたら報告ください。

phpform を設置

ダウンロードして解凍したら、以下のような構成になっています。

  • index.php
  • form.css
  • phpform/
    • config.php
    • phpform.php
    • includes/
    • plugin/
    • sample/
    • template/

index.php

あなたが主に設定するファイルです。
ここに HTML と phpform タグを記述していきます。

form.css

これはデフォルト用の CSS です。削除して頂いて構いません。

phpform/config.php

メールフォームの設置の際に必ず設定するファイルです。
メールの送信先や自動返信の有無などです。

phpform/template/*

このディレクトリ以下にはメールを送信する際のテンプレートが入っています。
後ほど説明していきますが、とても便利です。

phpform タグ

phpform 設定タグ(必須)

項目タイプ タグ
phpform 読み込みタグ <?php require ’phpform/phpform.php’; ?>
フォーム開始タグ <?php $form->create(); ?>
フォーム終了タグ <?php $form->end(); ?>

phpform 部品タグ

項目タイプ タグ
テキストボックス <?php $form->text(項目名, オプション); ?>
テキストエリア <?php $form->textarea(項目名, オプション); ?>
パスワード <?php $form->password(項目名, オプション); ?>
隠しデータ <?php $form->hidden(項目名, オプション); ?>
チェックボックス <?php $form->checkbox(項目名, 選択肢, オプション); ?>
ラジオボタン <?php $form->radio(項目名, 選択肢, オプション); ?>
セレクトボタン <?php $form->select(項目名, 選択肢, オプション); ?>

以上が phpform で使えるタグ一覧です。
以下に部品タグの詳細を説明します。

phpform 部品タグ詳細

phpform 読み込みタグ(必須)

phpform の機能を読み込みます。環境によってパスを書き換えてください。
ページの一番先頭に書くことが推奨されます。

1
<?php require 'phpform/phpform.php'; ?>

フォーム開始タグ(必須)

フォームを開始する前に以下のタグを書きます。

1
<?php $form->create(); ?>

フォーム終了タグ(必須)

フォームを終了するところで以下のタグを書きます。

1
<?php $form->end(); ?>

テキストボックスタグ

テキストボックスを設置するタグ。

1
<?php $form->text('項目名'); ?>

テキストエリアタグ

テキストエリアを設置するタグ。

1
<?php $form->textarea('項目名'); ?>

パスワードタグ

パスワード入力欄を設置するタグ。

1
<?php $form->password('項目名'); ?>

チェックボックスタグ

チェックボックスを設置するタグ。
これまでのタイプとは違い、選択肢を事前に設定します。

1
<?php $form->password('項目名', Array('選択肢1', '選択肢2')); ?>

セレクトボックスタグ

セレクトボックスを設置するタグ。
チェックボックス同様、選択肢を事前に設定します。

1
<?php $form->select('項目名', Array('選択肢1', '選択肢2')); ?>

ラジオボタンタグ

ラジオボタンを設置するタグ。
チェックボックス同様、選択肢を事前に設定します。

1
<?php $form->radio('項目名', Array('選択肢1', '選択肢2')); ?>

隠しデータタグ

隠しデータを送信するタグです。
隠しデータの項目名と送信される値を入力しますので、以下のようになります。

1
<?php $form->hidden('隠し項目名', Array('value' => '隠し内容')); ?>

一通りタグを紹介しましたが、さらに細かい設定についてはタグの引数について理解していただく必要があります。phpform のタグを表にしましたのでご確認ください。

それぞれ、項目名と選択肢は必須です。
オプションは設定しなくても問題ありません。

オプションは基本的に Array(‘value’ => ‘hoge’) と、連想配列でデータを設定します。
設定できるオプションは以下をご覧ください。

phpform タグオプション

オプションの指定場所は、先程の表にも書いてあるようにそれぞれタグによって違います。
例えばテキストボックスへ初期値を設定しつつ、必須項目に設定する場合は、以下のように設定します。

1
<?php $form->text('項目名', Array('value' => '初期値', 'required' => true)); ?>

オプションの詳細について、以下の表を参考にしてください。

共通オプション

オプション名 説明
value 初期値。checkbox の時のみ配列で value の値を格納します。
(checkbox は複数選択可能なため、value 値も複数必要。)
id 部品に対して id を指定します。
class 部品に対して class を付与します。
maxlength 最大文字数を設定します。
minlength 最低文字数を設定します。
data_type int もしくは integer で整数のみの受付。
float もしくは double もしくは real 浮動小数点のみの受付。
string で文字列のみの受付。
state false で入力は送信はさせるが、確認画面や自動返信メールには表示しない。デフォルトは true が設定されている。
required true で必須項目。デフォルトは false が設定されている。
repetition 同じキーを入れると重複チェック機能や年月日存在チェック機能が働きます。

ラジオボタン用オプション

オプション名 説明
fieldset true で fieldset と legend を出力。false で div で囲みます。
legend true で fieldset と legend を出力。false で div で囲みます。

phpform タグオプション詳細説明

初期値設定

以下のようにして初期値を設定することができます。

1
<?php $form->text('項目名', Array('value' => '初期値')); ?>

チェックボックスは複数の項目を選択できるため、初期値の設定がチェックボックスの場合は通常とは違い、以下のように設定します。

1
<?php $form->select('項目名', Array('項目1', '項目2'), Array('value' => Array('項目1', '項目2'))); ?>

id + class の設定

id と class を部品に付加することができます。

1
2
3
<?php $form->text('項目名', Array('id' => 'textID')); ?>
<?php $form->text('項目名', Array('class' => 'textClass')); ?>
<?php $form->text('項目名', Array('id' => 'textID', 'class' => 'textClass')); ?>

最大文字数・最低文字数を設定

1
2
<?php $form->text('項目名', Array('maxlength' => 32)); ?>
<?php $form->password('パスワード', Array('minlength' => 4)); ?>

型チェック機能

数値や文字列などをチェックできます。
数値のみで金額を入力してもらいたい場合などに便利な機能です。

1
<?php $form->text('金額', Array('data_type' => 'int')); ?>

非表示機能

入力はさせたい、もしくは送信はさせたいが利用者及びブラウザ上では非表示にしておきたい場合の切り替えが可能です。
通常の部品はすべてデフォルトは true になっていますが、hidden だけはデフォルトで false になっています。

1
<?php $form->text('秘密の質問', Array('state' => false)); ?>

必須機能

最も使用頻度の高い機能かもしれません。
全ての部品はデフォルトでは false が設定されています。

1
<?php $form->text('名前', Array('required' => true)); ?>

repetition 機能

様々な機能に対応しているオプションです。
部品に同じ値を入れておくことで、重複チェックをすることが可能です。
例えば、メールアドレスと確認用メールアドレスのチェックを行う場合は、以下のようにタグを書くだけで OK です。

1
2
<?php $form->text('メールアドレス', Array('repetition' => 'email')); ?>
<?php $form->text('確認用アドレス', Array('repetition' => 'email')); ?>

また、checkdata と設定することで、その年月日が存在するかのチェックを行うことも可能です。

1
2
3
<?php $form->select('年', null, Array('repetition' => 'checkdate')); ?>
<?php $form->select('月', null, Array('repetition' => 'checkdate')); ?>
<?php $form->select('日', null, Array('repetition' => 'checkdate')); ?>

設定ファイルの編集

phpform/config.php ファイルを必ず編集します。
主に送信先、送信元を変更するだけです。

テンプレートの編集

phpform/template 以下にメール送信の際のテンプレートがあります。
それぞれ管理者へのメール送信用、自動返信用のテンプレートが用意されています。
テンプレート内ではタグが使えます。

[[お名前]] 様

お問い合わせ頂きありがとうございました。
以下がお問い合わせ内容です。お控えください。

————————————————

[[ALL]]

————————————————

今後ともよろしくお願い致します。

2重カッコで囲い、フォームの項目名を書く事で、入力された値に置き換わります。
[[ALL]] というのは、お問い合わせ内容を項目名と値で一覧にしてくれます。
簡易的なフォームの場合は [[ALL]] が便利でしょう。

他にもプラグインや隠し機能があるのですが、今回はここまで。

Page 1 of 4512345102030...Last »