wordpressでアップロードした画像を編集するにはphpでGDが使える必要

本文書くまでもなく、タイトルがすべてを物語ってるのですが、
先程嵌ったので、原因の調査と対処方法を書いておきます。

まず、以前使ってたサーバ(@FreeBSD)にはあった下のボタンがない事が判明。
メディアを編集_‹_俺用メモVer1_2_—_WordPress
wordpressは頭がいいので、原因に応じて機能を制限するっぽいので、サーバ側による理由で使えないんだなって事を把握。
(例えば手動でアップロードしたファイルthemeディレクトリ内のファイルにはphpで編集する権限が無いから「編集する」ボタンを表示しないとか)

んで、調べてみると、動かない理由はphpでGDが使えないとの事。実際入ってないか確認してみます。

方法は色々あるのですが、phpinfo関数で確認する方法。
以下の内容をinfo.phpとして保存し、documentroot以下に設置してブラウザでアクセスしてみてください。

<?php phpinfo(); ?>

そうするとインストールされてるプラグインとかpearとかpeclとかphp.iniで設定した項目が出てくるのですが、
GDがインストールされてると以下の表示がされるので、あるかないかを調査してください。
phpinfo__
無かったら、インストールする必要があります。

インストール方法はOSにもよりますが、yumが使える環境なので以下のコマンドで完了。

$ yum -y install php-gd

apacheを再起動後すれば、見えなかった編集ボタンがほら。

画像のリサイズって結構使うのですよね。
wordpressとskitchとブラウザがあれば、大体自分用のマニュアルが作れるってのは便利な世の中です。

以下のサイトを参考にさせて頂きました。
http://www.tekboy.net/archives/787

0

google appsほど高機能ではないけどそれっぽく使えそうなoutlook.comを使ってみる

CentOS でメールサーバを運用するのは面倒なので、google appsを使おうと思ってたんですが、
¥600/1account とかするので、あえなく断念。昔はただだったのになぁ。

代替サービス(というかMXレコード設定したらメールサーバとして動いてくれる奴)として、
outlook.comが使えそうなので、やってみて、無事使える事を確認したので、
出来るまでの作業ログを残しておきます。

  1. Windows Live アドミンセンター( https://domains.live.com/Signup/SignupDomain.aspx )でドメインを登録
    1
  2. 管理者のMicrosoftアカウントを選択して、ログイン
    2
  3. 確認をして。。
    3
  4. 指定されたMXレコードを取得し、DNSサーバに登録
    4

    具体的に言うと、自分のドメインのネームサーバでMXレコードをoutlook.comに向けます。
    設定方法などはレジストラやDNSサーバによってまちまちなので各自ご確認くだされ。
    ちなみにdjbdnsというDNSサーバで運用してる特異な私は以下のような書き方になります。

    @[domain]::[unique].pamx1.hotmail.com:10:300
    '[domain]:v=msv1 t=[unique]:300
    
  5. MXレコードの登録を確認し、更新ボタンを押す

    確認はターミナルから以下のコマンドで。

    dig mx [domain]
    
  6. 問題が無ければそのままアカウントを作成。
    5
  7. 必要項目を入力して
    6
  8. 出来上がり。
    7

後は、http://outlook.com/ から作ったアカウントでログインすればwebメールとしてすぐ使えるはず。
そもそもEmail使ってないので、不要と言えば不要なのですが、念のため、ね。

0

すべてのアクセスをphpに丸投げしてふんふふん

ドキュメントルートの下にphpを置いて、そこでいっさいがっさいをやるって時に
こんなmod_rewriteで対応します。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?q=$1 [QSA,L]

こうやると、path_infoは$_GET[‘q’]に入ってきます。

例えば、クッションページの仕組みを作るならこんな感じなら、
php側ではこんな感じで叩かれたURLを取得。
以下の方法は、query_stringの情報もちゃんと取れるはず。

$Query = array();
$targetlink = htmlspecialchars($_GET['q'], ENT_QUOTES);
unset($_GET['q']);
foreach (array_keys($_GET) as $key) {
	if (($key) && ($_GET[$key])) {
		array_push($Query, $key . "=" . $_GET[$key]);
	} else if ($key) {
		array_push($Query, $key);
	}
}
if ($Query[0]) $targetlink .= "?" . implode("&", $Query);
0