命守 星光版 徒然草

2013-07-20

うわぁ、気がつけば半年もたってる!!

世の中の動きも早いようで気がつけば人気のlunuxはmintとやらになっているらしい。

サークルの代表に突っ込まれそうだが入れてみることにする。

windowsからの書き込みはこれが最後になりそうだ(職場で書くようなことがない限り)。インストールDVD(もうCDじゃないんですね。)

2013-01-03 新年あけましてVPSへ引越し(1)

自宅鯖もいろいろガタがきたので正月休みにVPSへ引っ越してみる。

以下、やったことメモ。

VPSの契約

VPSさくらちゃんにしました。「ぜったい大丈夫だよ」。

http://vps.sakura.ad.jp/

詳細は省略しますが

sshd

公開鍵認証のみでrootログインを不可にする

  1. 一般ユーザーを作る
  2. 一般ユーザーのauthorize_keysに公開鍵を登録
  3. authorize_keysのパーミッションは600
  4. rootパスワード変更
  5. sshd_config
  6. 疎通確認

sshd_configの変更内容は、

# diff sshd_config_org sshd_config
42c42
< #PermitRootLogin yes
---
> PermitRootLogin no
64c64
< #PasswordAuthentication yes
---
> PasswordAuthentication no
66c66
< PasswordAuthentication yes
---
> #PasswordAuthentication yes

iptables

sshとhttpは空けとく。ほかはdrop

# cat /etc/sysconfig/iptables
*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -i lo -j ACCEPT
-A INPUT -p 51 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

いろいろ入れる

yum install -y httpd
yum install -y mysql-server
yum install -y php
yum install -y php-devel
yum install -y php-pdo
yum install -y php-mysql

2012-05-29 mydns+spf+OB25

この組合せ、メールが送信できない・・・。


今のところ、mydnsさんは、登録IPを元にSPFを作ってくれる。これはこれでありがたいのだが、OB25されてると、プロバイダーのメールサーバーをリレーする形を取らざるをえない。

そうなると、配送先メールサーバーからすると、SPFレコードで承認されていない、プロバイダーのメールサーバーからのメールとなるので、差し戻される。

先日google appsに切り替えたんだが、SPFを任意に設定できないので、やっぱり問題が出てくる。

プロバイダーのメールサーバーgoogle Appsも固定の固定のIPだろうから、任意のTXTレコードがかければ問題はないのだが・・・。

それはそれとして、意外とメールが送信できる。SPFというものが広まっていないということなのかもしれない。(中継されたら配送できないのは使いづらいんだろうな。)

2012-04-12 WordPressのプラグイン更新

管理画面でのプラグイン更新って、実際の処理としてはプラグインディレクトリごと削除して再度展開しているんですよね。

で、wordpressごとSVNに入れて管理していると、.svnディレクトリごと消されるわけです。当然コミット時にエラーになる。

いろいろ対策はあると思うが、.svnディレクトリtarで固めておいて、プラグインを更新。tarを展開することで帳尻をあわせたところcommitできた。まーしょうがないところではあるな。

mihoshimihoshi 2012/12/29 22:32 gitに乗り換えればいいんじゃね?

2012-03-06 [php]OpenIdの依存関係

phpのextension、dom が必要らしい。

これで5hぐらい持ってかれた・・・。

phpOpenIdライブラリを一番外からデバッグ、結局xdebugで中断できるようにしてからはわずか30分ほどで解決までたどり着いたよ。

やっぱりデバッガは必須だな。

2012-02-22 shutdownユーザー

linuxだと無効になってるみたいですね。

ログインしたらshutdownが走るshutdownユーザーを作ろうというお話。

shutdownシェル

#!/bin/bash
sudo /sbin/shutdown -h now

/root/script/shutdown.sh としておきましょうか。

/etc/passwd

shutdown:x:6:0:shutdown:/sbin:/root/script/shutdown.sh

ユーザーshutdownのログインシェルにshutdownシェルを指定する

/etc/sudoers

shutdown        ALL=(ALL)       NOPASSWD: ALL

shutdownユーザーでshutdownをsudoできるように設定

全コマンドを実行できるようにしている。あんまり良くないかも。

パスワードを削除

passwd -d shutdown

パスワード入力なしでログインできるように

注意 sshログインできる

良し悪しは分かれるところだが、sshdの設定で何とかする

2012-02-20 [cakePHP]リンクを絶対パスで

htmlヘルパーとか、formヘルパーなんかで生成されたURLって基本的に相対パスで書かれる。これを絶対パスで書いてもらおうとするお話。

とりあえず、cake/lib/router.phpを見てみる

 * @param mixed $full If (bool) true, the full base URL will be prepended to the result.
 *   If an array accepts the following keys
 *    - escape - used when making urls embedded in html escapes query string '&'
 *    - full - if true the full base URL will be prepended.
 * @return string Full translated URL with base path.
 * @access public
 * @static
 */
	function url($url = null, $full = false) {
		$self =& Router::getInstance();
		$defaults = $params = array('plugin' => null, 'controller' => null, 'action' => 'index');

おお、router::urlの第二引数をtrueにすればいいらしい。


とりあえず、デフォルト値をtrueにしてみたんだが、相対パスで出力された。

htmlヘルパーを見てみると

	function link($title, $url = null, $options = array(), $confirmMessage = false) {
		$escapeTitle = true;
		if ($url !== null) {
			$url = $this->url($url);
		} else {
			$url = $this->url($title);
			$title = $url;
			$escapeTitle = false;
		}

で、

	function url($url = null, $full = false) {
		return h(Router::url($url, $full));
	}

ってなってた。

urlメソッドで$fullは受け取れるようになってるんだが、linkメソッドで値を渡していないので、相対パスになってしまう。

ヘルパーの各メソッドを直すのは筋悪なので、router.phpに手をつけることにした。

	function url($url = null, $full = false) {
		/* ここで無条件にtrueに変更 */
		$full = true;

		$self =& Router::getInstance();
		$defaults = $params = array('plugin' => null, 'controller' => null, 'action' => 'index');

		if (is_bool($full)) {
			$escape = false;

で、全部のリンクが絶対パスになった。

同一サイト内のリンクは相対パスでもいいのだが、SEO的には絶対パスのほうが価値が高いという説があるのでその対応でした。