mod_pagespeedをインストールする

Linuxサーバー

2013/8/27時点の情報です。
mod_pagespeedを導入すると、クライアント側のレンダリング速度は改善されますが、サーバー側のCPU負荷・メモリ消費・Disk I/Oは増加し、純粋なスループットは低下します。
Disk I/O負荷を軽減するため、キャッシュ領域にtmpfsを割り当てたり、memcachedを利用することが可能です。

インストール

下記ページからサーバーにあったパッケージを取得します。
https://developers.google.com/speed/pagespeed/module/download

CentOS 65bitの場合は下記の手順になります。

 wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm
 yum install at
 rpm -U mod-pagespeed-*.rpm

デフォルトでmod_pagespeedが有効で、css/javascript/画像の最適化が
有効な状態になっています。

Webサーバーを再起動すると、mod_pagespeedが有効になります。

設定ファイルの場所

apacheの場合は下記になります。

 /etc/httpd/conf.d/pagespeed.conf

mod_pagespeedの有効・無効切り替え

pagespeed.confで有効・無効を切り替えることができます。
インストール時デフォルトで有効になっています。

有効にする

 ModPagespeed on

無効にする

 ModPagespeed off

統計データ表示

下記URLで統計データを閲覧できます。
http://server-name/mod_pagespeed_statistics

デフォルトではローカルホストしか閲覧許可していないので、必要に応じてpagespeed.confを修正します。

 <Location /mod_pagespeed_statistics>
     Order allow,deny
     Allow from localhost
     Allow from 127.0.0.1
     SetHandler mod_pagespeed_statistics
 </Location>

処理メッセージ表示

下記URLで処理メッセージを閲覧できます。
http://server-name/mod_pagespeed_statistics

デフォルトではローカルホストしか閲覧許可していないので、必要に応じてpagespeed.confを修正します。

 <Location /mod_pagespeed_message>
     Allow from localhost
     Allow from 127.0.0.1
     SetHandler mod_pagespeed_message
 </Location>

キャッシュをクリアする

cssファイル等を変更すると、キャッシュをクリアしないと表示が崩れる場合があります。
下記コマンドでキャッシュをクリアします。

 touch /var/cache/mod_pagespeed/cache.flush

古いキャッシュは、新しいキャッシュで上書きされるようになります。

  • 2013/9/17 キャッシュクリアのファイルパスを訂正しました。

mb_send_mail()でSMTP server response 451のエラーが出る

PHP

PHPでメール送信のプログラムを作っていて、テスト用にあるレンタルサーバーでメール送信をしようとしたところ、

Warning: mb_send_mail() [function.mb-send-mail]: SMTP server response: 451 See http://pobox.com/~djb/docs/smtplf.html.

というエラーメッセージが出てきて、送信ができなかった。

参照元になっている、下記のサイトを見ると
http://cr.yp.to/docs/smtplf.html

メールサーバーがQmailを使用していて、プラス改行とかに原因があるらしい。
裸のLFがダメ(直訳すぎ?)で、CR LFならOKってことだそうで。

いろいろやってみて、メール本文中の \n を削除したらエラーがでなくなりました。
\nはLFだからなんですね。

mavenでインストールしたプログラムを実行する

Java

mvn installしただけでは、依存関係が解決できずにプログラムを実行できない場合は、下記のようにするとdependancyディレクトリに全て依存ライブラリもインストールされて実行できるようになります。

 mvn clean install dependency:copy-dependencies
 java -classpath ".:*:dependency/*"  "クラス名"

jqueryなどライブラリをGoogleから呼び出す

Ajax
Javascript
Googleツール

jqueryなどライブラリをGoogleから呼び出す

jqueryやdojo,yui,prototype.jsなどライブラリをGoogleから呼び出すと、いちいちダウンロードして自社のサーバーに設置しなくてよいので、便利です。
これをGoogle Libraries APIと呼びます。

最近では、一度Googleのライブラリを読み込めば、後は関数で各ライブラリを呼び出せるので、さらに便利です。

以下、手順です。

  1. APIキーを取得します。下記のサイトへ行って、埋め込みたいサイトのURLを入力します。

http://code.google.com/apis/loader/signup.html

  1. 入手したAPIキーを、下記のコードのINSERT-YOUR-KEYと置き換えます。
  2.  <script type="text/javascript" src="https://www.google.com/jsapi?key=INSERT-YOUR-KEY"></script>
    
    1. そのあとは、呼び出したいライブラリを、次のように呼び出しましょう。
    2.  //jQueryの1.6.2を呼び出したい場合
       google.load("jquery", "1.6.2");
      

      詳しくは、公式ページで。
      http://code.google.com/apis/libraries/devguide.html

java.lang.NoClassDefFoundError com.google.android.gms.gcm.GoogleCloudMessaging

Android

java.lang.NoClassDefFoundError: com.google.android.gms.gcm.GoogleCloudMessaging

上記のエラーが出て、AndroidのGCMのライブラリが読み込めないよということになった場合、下記を試してみてください。

  1. プロジェクトのルートにlibsというフォルダを作り、gcm.jarをそこにコピー&ペーストする
  2. プロジェクトのプロパティを参照し、Java Build PathにてAndroid Private Librariesにチェックをつける
  3. プロジェクト名/src、プロジェクト名/genをUpする
  4. プロジェクトをcleanして、ビルドする