Posts Tagged ‘php’

Homebrewを使ってMacにPHP環境を構築する

Homebrewのインストール方法はいろいろなところで見られるので手短に

$ ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"
$ brew install git
$ brew update

これでbrewコマンドが使えるようになったので、下のFormula(パッケージの情報みたいなもの)を使ってPHPやMySQLなどをインストールする。

最近のMacだとデフォルトPHPとか入ってるけど、何かアップデートとか面倒そうなのでbrewを使ってインストールし直してる。

$ brew install https://github.com/adamv/homebrew-alt/raw/master/duplicates/php.rb --with-mysql --with-intl

という感じでインストールした。
インストール後にwhichコマンドで、どのphpバイナリを示しているかを確認すると、デフォルト?のphpが参照されてままだった。(Homebrewは/usr/local/bin/以下にインストールしていく)

$which php
/usr/bin/php
なので、Homebrewでインストールしたものを示すように.bashrcでPATHを書き換える必要がある。(この辺brew linkとかでどうにかなったりしそうだけど…)
/usr/local/bin/php
デフォルトのMacだと.bashrcがないので自分でホームに作成する必要があるけど、そのままではTerminalで読み込まれなくて、~/.bash_profileを作って~/.bashrcを読み込むようにする。

~/.bash_profile を作り、下記の内容を書き加える。

if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
同じ要領で、~/.bashrcを作って下記の内容を書き加える。
export PATH="$(brew --prefix)/bin:$PATH"
これで、Terminalを再起動すると、~/.bashrcが読み込まれるようになるので、
$ which php
/usr/local/bin/php
というようにHomebrewでインストールしたphpが使えるようになる。
ブラウザからphpのファイルにアクセスするにはApacheの設定も必要になるけど、下記を参考に設定した。
MacのApacheは「システム環境設定」→「共有」→「Web共有」をON/OFFすれば、コマンドから再起動とかしなくてもいい。後、デフォルトだとPHPモジュールが読み込まれてないので、MacでApache, MySQL, PHP環境を作ったよ – bojovs blogのように httpd.conf のコメントアウトを外してPHPモジュールを読み込むようにする。

httpd-vhosts.conf を使って、バーチャルホストを設定する際は設定を変更して保存したら

apachectl -t

のコマンドで文法ミスがないかをチェックしてから再起動などして試した方が安心。
またコピペして設定する時は、クオーテーションがおかしくないかなども確認した方がいい。

参考

閲覧者が何をテキストコピーしていったか監視するスクリプト

サイトに訪れた人がどんな文章や単語をCtrl+Cや右クリックから選択してコピーしていったのかを調べるスクリプトです。

Webページ上のテキストコピーを監視し, 貼り付けにはリンクバックを付けるTyntが$8Mを調達
http://jp.techcrunch.com/archives/20100416tynt-gets-8-million-for-ctrl-c-action/

この記事を読んでどんなものをコピーしたのかを解析すれば面白いと思ったので、かなり適当にでっち上げてあります。
言語はJavaScript+PHPで結果をtxtファイルにするという適当な感じです。

上のファイルをダウンロードすると

copylogger
├──copylogger.js  
└──dataStorage.php

となっているので、二つのファイルを同じ場所において(もしくはフォルダごとアップして)、

<script type="text/javascript" src="http://example.com/lab/copylogger.js"></script>

みたいにjsファイルを読み込んでおくと、テキストコピーに反応して、log.txtに

コピーページのタイトル<>コピーページのURL<>コピーした文章<>コピーした時間

という感じで出力されていきます。

正直、見やすくもなく実用的でもないですが、コピーされてる文章からどういう行動をとってるのかが分かって面白いです。
例えば

「RefControl」でリファラを偽装しておくべきサイト | Web scratch<>http://efcl.info/2009/0923/res1352/<>blogs.yahoo.co.jp<>2010/4/19 20:21
「RefControl」でリファラを偽装しておくべきサイト | Web scratch<>http://efcl.info/2009/0923/res1352/<>fc2.com<>2010/4/19 20:22
「RefControl」でリファラを偽装しておくべきサイト | Web scratch<>http://efcl.info/2009/0923/res1352/<>plusd.itmedia.co.jp<>2010/4/19 20:22

という感じのlogがあると、このページには登録すべきサイトをまとめたテキストとインポート方法も書いてあるのに一個一個コピーしてるところを見ると、気づかなかったのかもしくはすべてを登録する必要はないからコピペしてるのかなーとか想像できます。

まあ、copyloggerって名前にしてるように閲覧者は気持ちよいものではないと思うので、お遊び程度にしてみた方がいいかもしれないです。(PHPファイルの方も作りが適当なので安全か怪しいし)

JavaScript部分の参考資料

<script>タグから読み込んだjsのディレクトリを取得 – prog*sig
http://efcl.info/adiary/%3cscript%3e%e3%82%bf%e3%82%b0%e3%81%8b%e3%82%89%e8%aa%ad%e3%81%bf%e8%be%bc%e3%82%93%e3%81%a0js%e3%81%ae%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%82%92%e5%8f%96%e5%be%97

WordPress 2.6 でタグ名が表示されない(2バイト文字)

WordPress 2.6ではタグページの表示にバグがあるみたいで、タグに日本語などの2バイト文字がある場合
タグが表示されないようです。
(<?php single_tag_title(); ?>の返り値がNULLになる)

WP2.6.1では改善されるようなので、運営に致命的な影響を与えるわけではないのでバージョンアップ待ちで大丈夫かと。
今すぐに直したい方はwp-includes/taxonomy.phpをhttp://trac.wordpress.org/export/8364/branches/2.6/wp-includes/taxonomy.phpに置き換えることで直ると思います。

WordPressはセキュリティ面からも狙われやすいことも多いので、バージョンアップはできるだけ早く行うといいです。

mingでphpファイルをコンパイルする[swf]

phpにはphp_ming.dllを使ってphpソースからswfなどのflashを作成することができます。
今回は別に積極的な開発をするわけではなくて、配布されているソースをちょっこといじるためだけにいろいろ整えるのはめんどくさいので、mingを簡単に扱うメモ。

  1. PHP: Downloadsから最新版zipをダウンロードする(自分の時はPHP 5.2.6 zip package)
  2. zlib1.dllをダウンロードする。(どこに最新版があるのかよく分からない)
  3. mingをダウンロードする。

ダウンロードするのはこれだけで十分だと思うので、PHPのzipを解凍してわかりやすい場所に移す。(C:\phpに置いたとする)
コメント欄で教えていただいた方法。コメント欄参照

実は必要なdllは初めからzipファイルの中に入っているようです。解凍したphpのフォルダの中にある(今回で言うとphp-5.2.6-Win32でしょうか)extというフォルダです。
ですので、php.ini中のextension_dir項目をextension_dir = “./ext”としてやることで、上記作業がいらないっぽいですねb

それと、mb_internal_encodingのエラーについてですが、それはphp.iniのextension=php_mbstring.dll(デフォルトでは;extension=php_ming.dll同様にコメントアウト)を有効にしてやることで動くみたいです。

これに少し追加します。
このままではmingのバージョンが古いみたいなので、最初に落とし置いたphp_ming.dllをextの中身に上書きしましょう。
他の3つ(libming-0.dll、libpng12.dll、libungif4.dll)とzlib1.dllはphp.exeと同じフォルダに置かないといけないみたいです。
これでflash8のバージョンまでコンパイルできるようになりました。

もう一つの方法

要は置き場所が違うだけなので、mingのみを扱う場合はこちらの方が楽な気がする。

php.exeと同じフォルダにphp_ming.dll,libming-0.dll、libpng12.dll、libungif4.dllの四つとzlib1.dllを入れる。

次はphp.ini設定
そしてphp.exeと同じディレクトリにphp.ini-recommendedというのがあるのでphp.iniとリネームして、テキストエディターで
;extension=php_ming.dll

extension=php_ming.dll
とセミコロンを外す。こうすればmingが実行できるようになる。
;extension=php_mbstring.dll のコメントアウトを外すことで
mb_internal_encoding()が使えるようになります。

mingの実行方法はコマンドプロンプトを開いて、ソースファイル.phpがある場所まで移動してから
C:\path\source> C:\php\php.exe flvplayer_wrapper.php
という風に実行してエラーが出なかったらファイルが出力できる。

こっからはflvplayer_wrapperのはなし。
flvplayer_wrapperをコマンドプロンプトから出力する場合はflvplayer_wrapper.phpの
$movie->output();をコメントアウトして
//$movie->output();
とする。

まとめると

  1. 最新mingのdllなどを入れる。
  2. php.iniにリネームして設定
  3. 使用するディレクトリを指定する。(デフォはphp.exeと同じフォルダ)
  4. ;extension=php_ming.dll
    ;extension=php_mbstring.dll
    のコメントアウトを外す
  5. php.exe flvplayer_wrapper.php みたいな感じでコマンドプロンプトでコンパイル。

環境:Vista premium
参考[nicolist.net] flvplayer_wrappe

コメントに感謝。

Firefoxでメモリ、保存、flashが重いのを解決?

Firefoxの嫌なところ – 将来が不安

  • 使ってるとメモリを食いまくって (それが理由か知らないが) 処理が酷く重くなる (要・定期的に再起動)
  • 画像の保存に妙に時間が掛かる(IEならサクサクなのに何故?)
  • Flashの実行(イベント発生?)が重い気がする

というのを見て何となく解決策っぽいものを書いてみる。

  • 使ってるとメモリを食いまくって処理が酷く重くなる

Firefoxはデフォルトでは放置しておくとどんどんメモリを食う仕組みになっているので仕様と言えば仕様です。
FirefoxやThunderbirdのメモリ消費量を劇的に減らす方法 – GIGAZINE
上のような操作をすることで、最小化するときにFirefoxのメモリを解放する設定ができます。
最大化するときにもっさりすることはあるかも。(Windows でのみ有効。)
また、Firefoxでは何十個のタブを同時に開くことは想定されていないので、20とかそれ以上開く人は素直にOperaを試してみてください。
自分はそこまでメモリは気にしないというか、アドオンたっぷりなので大量消費。

  • 保存時にやたらと重い

ダウンロード履歴を記録しないようにする。ダウンロード履歴はチェック時に大量のメモリを消費するので、使わない。履歴ファイを消去したら(ダウンロード→履歴の削除)、今後は記録されないように ツール → オプション → プライバシー → ダウンロードしたファイルを記録するのチェックを外しておく
またダウンロードの時にウイルス対策ソフトがチェックしている可能性もあるので、一概にはFirefoxが原因でないかも。

また、画像の保存だけに限定するならアドオンでいいものがありそうなので、探してみるといいかも。

  • Flashの実行(イベント発生?)が重い気がする

これは何ともいえませんが、Flashなどのプラグインは結構バージョンによって動作が
悪くなったりよかったりします。
できるだけ最新のバージョンに保つのがいいかもしれませんが、環境によって左右される気がするので、自分に適切なのを
見つけられると良い。
cl.pocari.org – Firefox の Flash Player をアップデートする方法

Flash関係の問題はよく見かけるので解決が少しめんどくさそうです。
Mozilla Japan ナレッジベース – Flash Player の更新に関する注意喚起

とりあえず思い当たる解決策を書いてみました。
Firefoxというかソフト全般に当てはまる事ですが、プロファイルが壊れている場合は意味がないので、
上の方法や検索してきた方法で全くだめな場合はバックアップを取ってから、

Firefox Hacks:Firefox拡張:FEBE――Firefox環境のバックアップとリストア – ITmedia エンタープライズ

プロファイルを新規作成してためしてみるといいかもしれません。
自分の経験ではprefs.jsが壊れる事が多い気がするのでその辺のチェックをするといいかもしれないです。

Mass InstallerでまとめてFirefoxの拡張機能をインストール

Mass InstallerはFirefoxの拡張機能をまとめてインストールするための拡張機能です。
新規環境に移行する時や、初めてFirefoxをやるときに最初に入れてみるとかなり作業がはかどります。
これはテキストファイルに記載されているURLからどんどん拡張をインストールしていきます、
まだ試した事がないですがMass Installerをインストールして再起動(Firefoxを)すると、
ダイアログがでてテキストファイルを選択するようです。

Mass Installer 0.3.1 – Add-ons Mirror
本体がよくわからなかったのでミラーしているサイトを拾ってきた。
一度ファイルとして保存してから、FirefoxへD&Dすればインストールできます。

自分の拡張機能一覧のテキストファイル。

infolist.txt

こういう拡張機能の一覧を作成するにはInfoLister
という拡張を使えば簡単にできます。

WordPress 2.3.2で日本語にならない(設定)

サーバー側の原因?かよく分かりませんでしたがWordpressが日本語で表示されないで、
英語表示になってしまっていたので、修正する方法。

Read the rest of this entry »

プロフィール: azu(アズ)
Firefoxの事やソフトウェアの紹介や使い道、Greasemonkeyの作成
  • OS:Windows Vista, 7
  • ブラウザ:Firefox
  • Twitterのアカウントはこちら
  • azu_re
  • メールアドレス(Twitterの方が確実)
  • info@ドメイン名
リンク

WebMoney ぷちカンパ