Xoops d3blog が表示されない Allowed memory size of 8388608 bytes exhausted

Xoops

XoopsのD3blogで新規投稿、もしくは投稿記事の内容を閲覧しようとすると、以下のようなメッセージがでてしまうときは、

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 9801 bytes)

PHPのmemory_limitを変更することでこのエラーを解消できます。

詳しくはこちら

http://onlineconsultant.jp/pukiwiki/?Allowed%20memory%20size%20of%208388608%20bytes%20exhausted

Xiaomi Redmi HM 2LTE-CMCCにGoogle のアプリを入れてみる

Android

2015年、5月に中国で買ってきたシャオミ(小米)のスマホですが(現時点で2015年12月10日)、開発用にちゃんと使ってみよう!ということで、いろいろやってみたので、書いておきます。

約2万円で入手したシャオミです。

xiaomi1.jpg

裏面。
xiaomi2.jpg

結果的にはやりたいことはできなかったのですが、同じことをやりたい方のために、ご参考まで。


まず、モデル番号やら、デバイスIDを確認します。
モデル番号は、Settings→About PhoneにModel Numberとして書いてあります。
私の場合はHM 2LTE-CMCCです。


デバイスIDは、スマホのカバーを外し、バッテリーを外したところに張ってあるシールの番号です。

こんな感じのシール。
xiaomi3.jpg

私の場合は2014112です。


で、この二つの数字で、ググったりしてみると、カスタムROMが見つかります。

シャオミでは、MiuiというカスタムROMを配布しています。
で、これでGlobal ROMという中国版ではないROMに入れ替えられます。

下記のページが参考になります。
http://en.miui.com/thread-78494-1-1.html

ですがっ 私の場合は、とてもマイナーなスペシャルバージョンを買ってしまったようです(つД`)

しかし、スーパーサイヤ人が下記のページで、Global ROMのダウンロードリンクを教えてくれます。
http://en.miui.com/thread-186784-1-1.html

ROMをFlashする方法はこちら
http://en.miui.com/a-232.html


上記の手順にのっとって、やってみますが、99%でinstall update.zip failed となります(>_<) 再度調べてみると、下記のリンクによると、このバージョンはマイナーすぎてGlobal ROMが入れられないらしい… ガガーン http://en.miui.com/thread-96646-1-1.html


一応、下記のカスタムROMでもう一度Flashしてみます。

http://www.miui.com/download-273.html#381

今度は成功!!

別に大した違いを感じなかったのですが…とりあえず、これでMiuiにはなったということでしょうか。。。


ただ、開発用にはGoogle のいろんなフレームワークやプラグインが必要です。

Googleのアプリをインストールする方法は、ネットにいろいろありますが、
「谷歌○○」
というアプリをインストールしてから、Googleのアプリをインストールすることになります。
ちなみに、谷歌とはGoogleのことです。

ですが、いくつかやってみた谷歌のアプリは偽物が多く、ちゃんと動作しませんでした。

Miuiのサイトにある、下記のものが動作します。
http://en.miui.com/thread-3998-1-1.html

上記のページの、中ほどにある
「Google installer谷歌应用下载器.apk 」
をクリックしてください。
しかし、なんとこれをダウンロードするのに、Miuiのアカウントを作らないといけません。
しかも、アカウントを作ってダウンロードすると、1クレジット消費しました、とか書いてあってイヤな感じがかなりします( ゚Д゚)
(最初25クレジット持ってるらしい)


Google installer谷歌应用下载器.apk
をRedmiにインストールすると、Googleのアプリたちが、無事インストールできます。

やったー!!

しかし、本当はGlobal ROMを入れたかったのですよね。
そんで、Root化。

今度時間があったら、下記の方法を試したいと考えています。
http://en.miui.com/forum.php?mod=viewthread&tid=157798

Xdebugをセットアップする

Eclipse
PHP

Cake PHP等mod_rewriteを使用する環境ではZend Debuggerは使えません。
そのような環境でも、Xdebugを使えば快適にデバッグすることができます。
以前と違い現行バージョンでは、Eclipse PDTとXdebugの組み合わせで、変数の値が日本語でも文字化けせずに表示されるようになりました。

Windows XAMPP環境でのセットアップ

ここからはXAMPP 1.7.1でセットアップする方法について説明します。
なおXAMPP 1.7.1では、PHPのバージョンは5.2.9、Xdebugのバージョンは2.0.4になります。

php.iniの設定変更

Zend OptimizerとXdebugは共存できないので、php.iniの[Zend]項目をコメントアウトし、[Xdebug]項目のコメントを外します。

 [Zend]
 ;zend_extension_ts = "\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
 ;zend_extension_manager.optimizer_ts = "\xampp\php\zendOptimizer\lib\Optimizer"
 ;zend_optimizer.enable_loader = 0
 ;zend_optimizer.optimization_level=15
 ;zend_optimizer.license_path =
 [XDebug]
 ;; Only Zend OR (!) XDebug
 zend_extension_ts="\xampp\php\ext\php_xdebug.dll"
 xdebug.remote_enable=true
 xdebug.remote_host=localhost
 xdebug.remote_port=9000
 xdebug.remote_handler=dbgp
 xdebug.profiler_enable=1
 xdebug.profiler_output_dir="D:\xampp\xampp-1.7.1\tmp"
 

なお、XdebugはZend Extensionとして動作させる必要が有り、通常のextensionとして動作させると一部機能しか動作しません。
下記行のコメントはそのままにしておきます。

 ;extension=php_xdebug.dll
 

変更の反映・確認

apacheを再起動してphpinfoを表示し、Xdebugの項目が存在することを確認してください。

Eclipseのデバッグ構成

サーバー・デバッガにはXdebugを設定してください。

Linux

インストール

下記コマンドでインストールできます。

 #pecl install xdebug

php.iniの設定

例えば、下記のように設定します。

 [Xdebug]
 zend_extension=/usr/lib/php/modules/xdebug.so
 xdebug.remote_enable=true
 xdebug.remote_host=localhost
 xdebug.remote_port=9000
 xdebug.remote_handler=dbgp
 xdebug.profiler_enable=1
 xdebug.profiler_output_dir=/tmp
  • Zend OptimizerやZend Debuggerとは共存できません。
  • xdebug.remote_hostは、zend_debuggerとことなりIPアドレスは一つしか指定できません。

リモートデバッグ

Zend Debuggerのように簡単にデバッグ用クライアントを複数指定できると楽なのですが、Xdebug単体では、デバッグ用クライアントのIPアドレスを1つしか指定できません。

※xdebug 2,1以降では下記設定項目で、任意のIPアドレスから接続可能です。

 xdebug.remote_connect_back = on

(xdebug.remote_hostの設定は無視され、IPアドレスのフィルタリングは効かなくなりますので、別の手段で
アクセス制限をかける必要があります。)

複数の開発者でデバッグ用サーバーを共有するためには、以下のようにいくつか対処方法があります。

ディレクトリ単位で単一の開発用PCを割り当てる

開発用PCごとにディレクトリを分けて、.htaccessで開発用PCのIPアドレスを指定することができます。
.htaccessでディレクトリ単位で、xdebug.remote_hostのIPアドレスを切り替えます。
例えば、下記のように.htaccessを記述します。

 php_value xdebug.remote_host 192.168.0.10

DBGpプロキシーを使って共有する。

Xdebugには、dbgp proxyというプロキシー経由で複数のクライアントマシンから接続する機能を持っています。
リモートでバッグを開始する前に複数のデバッグ用クライアントを区別するためのIDEキーでプロキシーを登録しなければなりません。

Active StateがPythonで実装されたデバッガープロキシーを公開しています。
下記URLから、開発サーバーのOSのPython Remote Debuggingを入手します。
http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging
※PHP Remote Debugingではありません。PHP Remote Debugingの中身はXdebugです。

 # tar -xvzf Komodo-PythonRemoteDebugging-5.1.4-30485-linux-x86.tar.gz
 # cd Komodo-PythonRemoteDebugging-5.1.4-30485-linux-x86
 # cd bin

dbgp proxyを実行します。通常はXdebugを動作させるサーバーと同じサーバーで動かすことになるでしょう。
デフォルトでは、IDE登録を127.0.0.1:9001番、Xdebug接続を127.0.0.1:9000で行います。
ただし、デフォルトパラメーターのままだとサーバー外からdbgp proxyに接続できません。
サーバー外からの接続に使用するIPアドレスを指定して実行する必要があります。例えば、開発サーバーのIPアドレスが192.168.1.100とすると、下記のように実行します。

 # ./pydbgpproxy -i 192.168.1.100:9001 -d 127.0.0.1:9000
 INFO: dbgp.proxy: starting proxy listeners.  appid: 10826
 INFO: dbgp.proxy:     dbgp listener on 127.0.0.1:9000
 INFO: dbgp.proxy:     IDE listener on  192.168.1.100:9001

次にIDE側で、dbgpに接続する設定をします。
IDEがEclipseの場合は下記の通りの手順になります。

Window→Preferences→PHP→Installed Debuggersを開き、Xdebugを指定してConfigureボタンをクリックします。
eclipse-pdt-installed-debuggers.png

DBGp Proxy SupportのUse Proxyにチェックを入れ、Proxy Addressに開発サーバーのIPアドレス:ポート番号を入力します。
IDE Keyは開発者名や開発PC名などにすると良いでしょう。デフォルトでは「ECLIPSE_DBGP_開発PCのIPアドレス」になっています。
eclipse-xdebug-dbgp-settings.png

IDEキーの登録に成功すると、dbgpサーバー側で下記のようなメッセージが出力されます。

 INFO: dbgp.proxy: Server:onConnect ('192.168.1.4', 61455) [proxyinit -p 9000 -k ECLIPSE_DBGP_192.168.1.4 -m 0]

※この登録処理はdbgp proxyを立ち上げるたびに行う必要があります。IDEキーの登録が済んでいない場合は下記のような警告が出力されるのでキーの再登録が必要です。

 WARNING: dbgp.proxy: No server with key [ECLIPSE_DBGP_192.168.1.4], stopping request [<__main__.sessionProxy instance at 0xb7b85b4c>]

再登録は、use debug proxyのチェックを一旦外してつけ直すのが簡単でしょう。

なお、PDT2.1時点では複数のリモートでバッグ環境は保存できません。

以上の設定が済めば、ローカルデバッグと同様にリモートデバッグが可能になります。

  • 参考リンク

http://derickrethans.nl/debugging_with_multiple_users.php
http://community.activestate.com/faq/komodo-ide-debugger-proxy-pydbgpproxy

  • XAMPP1.7.4では、Zendはデフォルトでコメントアウトされてました。 — A {2011-03-17 (木) 18:02:58}

Xdebug Xamppで動作しない

PHP
Eclipse

Xdebug Xamppで動作しない

Xampp1.7.4
Eclipse Helios Service Release 2

という環境で、なぜかXdebugが動作せずに困っていました。
2つ原因があったので、書いておきます。

ちなみに、Xdebugの設定については、Xdebugをセットアップするを見てみてください。

①セットアップ過程でxdebugが動作しないという場合

 xdebug.remote_enable=true

をつけていなかったことが原因でした。
ローカルでも、trueにしないといけないんですね。

②セットアップは完了したのに、デバッグがすぐ止まってしまう

EclipseのWindow→Preference→PHP→Serverで、設定してあるサーバーをクリックし、Editをクリックしてください。
Path Mappingというタブに、すでにディスク上にはないようなファイルにパスマッピングがされてないでしょうか。
そういうものがあれば、クリックで選択し、「Remove」をクリックします。

Xcodeに画像が追加したのに読み取れない場合

Xcode
Xcodeのプロジェクトに画像を追加して
`UIImage* i = [UIImage imageNamed:@”hoge.png”];`
というようにUIImateを取得しようとしてもnilが返ってくることがあります。
WEBから来た人はディレクトリ指定が間違っているのかな?と思ったりするかもですが、Xcodeはディレクトリ指定はないので単純にファイル名を指定すればOKです。ただ、同じファイル名が存在してしまうと警告なりなんなりありますので、注意してください。

こういう場合は@2x、@3xファイルが足りないことがまず考えられます。
なのでファイル名の最後に@2xをつけることで解決できますが、どうしてかそれでも画像が読み込めない時があります。

そういうときはimages.xcassetsを使います。
ここではアプリアイコンなどを管理しているかと思うのですが、その他の画像もここで管理が可能です。画像のサイズなど一覧で確認できるので基本はここで管理したほうがいいかと思います。

追加方法はAppIconなどが並んでいるところの下の方に「+」があるのでクリック、New Image Setを選択します。
そうするとImageとうのができるのでそこに画像を追加していきます。単純にドラッグアンドドロップです。
画像を追加したらImageという名称を変更します。最初に上げた例だと「hoge」とでもしておきましょう。
そうするとこのプロジェクト内では`hoge`と指定するだけで、画像が取得できます。以下のような形です。
`UIImage* i = [UIImage imageNamed:@”hoge”];`