#diary #blog #evernote #twitter

Evernote使い始めたのは結構前ですが、ちゃんとノートブックを整理してライフログ始めたのはまだこの二ヶ月の話です。 それからなかなかブログ更新するきっかけが少なくなりましたね。ただ教訓としてメモするのは基本Evernoteに蓄積してるし、普段思いついたものやストレス、情報共有とかは随時Twitterにつぶやくようになりました。

まあ、Evernote書いたメモって共有する価値はあるといえばありますが、何だかんだ重複作業になるような気がして抑えてはいます。またEvernoteって、基本自分向けなので気軽に書けるメリットもありますし、仕事が忙しくなったら本当にEvernoteに書くのも精一杯になりますからね。 と言ってもブログ書かないのは、それなりのインプットがないことと思いますよ。この業界で働いているなら、絶対これだけたみんなに伝えたいくらいの出来事はあるでしょうと思います。自分と同じような誤りや遠回しは避けて欲しいぐらい。 そういう意味ではちゃんと反省しないといけないと思いますよ、ここ最近の仕事とプライベートを。ただ疲れたを言い訳にしてないか、あるいは勉強不足でインプットが足りないかって。

酒飲んで調子に乗っていろいろ書いたけど、本当反省&改善したい。

最後に、 この記事もiPhone FastEverって書いてます。いや〜本当に便利!チェックなしで発信!

#php #php

こちらを参照してください。

  • Mcrypt Requirements
  • Mcrypt Installation PHPを–with-mcrypt=DIR再コンパイルする必要があるそうです。またlibmcryptも2.5.6以上のバージョンを求められます。

一般的にもしfunction is undefinedになったら、何かライブラリをコンパイルする必要があるということになります。

# for ubuntu
sudo apt-get install php5-mcrypt

# for mac
sudo port install php5-mcrypt
#php #php #troubleshooting

障害

http_build_queryを使ってurlのパラメータを作るときにパラメータがこうなりました。

foo=bar&baz=boo&hoge=hoge

上記のように複数のパラメータがある時に;であるべきのところが&となってしまいました。

これはPHPの設定ファイル、php.iniのarg_separator.outputで制御されてて、XAMPPの場合インストールされたデフォルトでは、「&」となるそうです。

解決方法

なので、php.iniの「arg_separator.output」の値を「&」から「&」に変更する

参考

http_build_queryを使うときの注意点(PHP) http://www.multiburst.net/sometime-php/2008/12/http_build_query/

#linux #sudo #unix

ターミナルで sudo visudo

そして次のラインを追加。(“kinopyo”は自分のユーザ名に変更してください)

kinopyo ALL=(ALL) NOPASSWD: ALL

中文

先在Terminal输入 sudo visudo

接着插入下面的代码。(“kinopyo”是你的用户名)

kinopyo ALL=(ALL) NOPASSWD: ALL

English

Type this command first. sudo visudo

Then add this line at the end (change “kinopyo” to your username):

kinopyo ALL=(ALL) NOPASSWD: ALL

問題

新しい mysqlnd ライブラリは、MySQL 4.1 用の41バイトの新しいパスワードフォーマットを使用します。 古い16バイトのパスワードを使うと、mysql_connect() 系の関数は次のようなエラーメッセージを生成します。”mysqlnd cannot connect to MySQL 4.1+ using old authentication”

MacPortでインストールしたPHP5.3では、

mysqlnd(php5.3のmysql native client)が適用される。 しかし、CentOSなどのyumでインストールできるMySQLサーバーとの相性がよろしくない。 PHP Warning: mysql_connect(): mysqlnd cannot connect to MySQL 4.1+ using old authentication というエラーが現れ、接続することができません。 mysqlndを利用しないよう再コンパイルが必要となる。

解決方法

portでインストールしたモジュールを確認、mysqlndがactiveなってるはず。

sudo port installed

php5-mysql @5.3.5_0+mysqlnd (active)

そしてmysql5のvariantsを指定で再インストール。

% sudo port install php5-mysql +mysql5

--->  Computing dependencies for php5-mysql
--->  Fetching php5-mysql
--->  Verifying checksum(s) for php5-mysql
--->  Extracting php5-mysql
--->  Configuring php5-mysql
--->  Building php5-mysql
--->  Staging php5-mysql into destroot
--->  Installing php5-mysql @5.3.5_0+mysql5
--->  Deactivating php5-mysql @5.3.5_0+mysqlnd
--->  Cleaning php5-mysql
--->  Activating php5-mysql @5.3.5_0+mysql5
--->  Cleaning php5-mysql

再度port installedで確認すればmysql5がactiveになるはず。これで解決。

php5-mysql @5.3.5_0+mysqlnd
php5-mysql @5.3.5_0+mysql5 (active)

参考

【php】mysqlndを使うとMySQLに接続できない http://www.softel.co.jp/blogs/tech/archives/2225

SnowLeopard + PHP5.3でのMySQLリモート接続 http://taikimen.blogspot.com/2010/10/snowleopard-php53mysql.html

PHP: mysqlnd cannot connect to MySQL 4.1+ using old authentication http://www.bitshop.com/Blogs/tabid/95/EntryId/67/PHP-mysqlnd-cannot-connect-to-MySQL-4-1-using-old-authentication.aspx

おまけ

mysqlが古い16バイトのパスワードを使ってるかを確認する方法です。 mysqlにログインして下記コマンドを実行:

mysql> select password('aa');

+------------------+
| password('aa')         |
+------------------+
| 0123456789abcdef |
+------------------+

16位だっだら古いです。40位なら新しいってことです。