Craftworks Tech Blog - Branch このページをアンテナに追加 RSSフィード

2013-10-18

Ubuntu に公式レポジトリの nginx を入れる

| 14:48 | Ubuntu に公式レポジトリの nginx を入れる - Craftworks Tech Blog - Branch を含むブックマーク Ubuntu に公式レポジトリの nginx を入れる - Craftworks Tech Blog - Branch のブックマークコメント

Ubuntu 12.04 LTS でデフォルトで入る nginx パッケージは現時点(2013/10/18)でバージョン 1.1.19 と大分古いです。最新バージョンは 1.4.3 なのでレポジトリapt に登録します。

sudo add-apt-repository ppa:nginx/stable

あとは、普通にインストールするか、既にインストールされていれば下記でアップグレード可能です。

sudo apt-get update
sudo apt-get upgrade

2013-02-15

nginx + php5-fpm で真っ白なページしか表示されない時の対処

| 02:05 | nginx + php5-fpm で真っ白なページしか表示されない時の対処 - Craftworks Tech Blog - Branch を含むブックマーク nginx + php5-fpm で真っ白なページしか表示されない時の対処 - Craftworks Tech Blog - Branch のブックマークコメント

大分ハマりました。

ubuntu/12.04
nginx/1.2.7
php5-fpm/5.4.6

結論から書くと、Nginx 公式のリポジトリから取得したパッケージには、fastcgi_param 用の設定がデフォルトで一通り入っていますが、いくつか記述が無いものもあります。

下記の PATH_TRANSLATED を追加したら無事動きました。

fastcgi_param PATH_TRANSLATED   $document_root$fastcgi_path_info;

「nginx php5-fpm blank page」などググったら色々出てきますが、PATH_TRANSLATED に直接触れているのは少なかったです。

2010-11-15

Macbook Air 11'' を Ubuntu 10.10 とデュアルブートにしたまとめ

| 03:45 | Macbook Air 11'' を Ubuntu 10.10 とデュアルブートにしたまとめ - Craftworks Tech Blog - Branch を含むブックマーク Macbook Air 11'' を Ubuntu 10.10 とデュアルブートにしたまとめ - Craftworks Tech Blog - Branch のブックマークコメント

あまり日本語情報も無いようなので、メモ書き程度に紹介しておきます。新型 Macbook Air 11'' に Ubuntu 10.10 サーバー版 64bit をインストールしました。Boot Camp は使っていません。

大まかな流れは、

  1. OSX で rEFIt の導入とパーティション割り当ての調整
  2. Ubuntuインストール
  3. Ubuntu 上でドライバ等のセットアップ

となります。

Windows とのトリプルブートにしたい場合は、Linux インストールの前段階で行うようですが、詳細調べていないので割愛します。

以下詳細です。

事前準備

  • Ubuntu の OS イメージを USB メモリに準備しておく
    • ISO から起動可能な USB メモリとして作成するには、ISO 配布ページの「Burn your CD or create a USB drive」の項に詳しく書いてあります。
  • インストールプロセスで有線 LAN を使った方がスムーズなので、USB イーサネットアダプタを準備しておく(試していませんが、WLAN で進めようとするとドライバ周りとか多分面倒です。)
  • 普通に初回電源オン時の Mac 初期化プロセスを終えておく。(「ようこそ」から始まる一連のプロセス)

Mac 上での設定

  1. rEFItインストール(パーティションが変更されてブートローダー?が入る)
  2. Disk Utility.app (アプリケーション → ユーティリティ → ディスクユーティリティ) で Ubuntu インストール用のパーティションを準備(ファイル swap にするなら swap 用パーティション切らなくても OK)

Ubuntuインストール

  1. 用意しておいた Ubuntu イメージ入りの USB メモリと LAN ケーブルを刺した状態で再起動する
  2. rEFIt の起動画面が表示されるので、USB 起動を選択(Pen Drive)
  3. 先ほど準備したパーティションに Ubuntuインストール

ディスプレイの設定

  1. インストール後再起動すると、rEFIt の起動画面で先ほどは無かった Linux 起動が選べるようになっている
  2. Linux 起動を選ぶと、grub の起動画面になる
  3. そのまま Ubuntu を起動してもディスプレイが使えない(何も映らない)
  4. grub の起動画面で e か c を押すと、カーネルに渡す起動オプションが変更できるので、single を追加してシングルユーザーモードで起動する
  5. /etc/default/grub に、nomodeset reboot=pci を追記して、update-grub で grub に反映させる
  6. 再起動すると正常にディスプレイが使えるようになる

GUI 環境のセットアップ

  • apt-get install ubuntu-desktop で GUI 環境をインストール(サーバー版をインストールしている場合)
  • 再起動すると gdm でグラフィカルログイン出来るようになっている
    • gdm 起動でグラフィカルログインしたく無い人は、/etc/default/grub の GRUB_CMDLINE_LINUX_DEFAULT に text を追記して update-grub する
    • Ubuntu 日本語フォーラムで調べると、runlevel 云々の記事がありますが、カーネルオプションに渡すのがベストプラクティスのようです。
  • GUI が使いたいときは、ログイン後に startx すれば X が起動します。(GNOME)

各種ドライバのインストール

  • Macbook Air 用のドライバは mactel ppa で配布しているので、下記で USB, Bluetooth, マルチタッチトラックパッドなどのドライバを一通り入れてくれる
sudo apt-add-repository ppa:mactel-support/ppa
sudo apt-get update
sudo apt-get upgrade
  • サウンドは、alsamixer を起動し、矢印左右キーで「Front Sp」を選択し、M キーで有効化し、矢印上下キーで音量を上げれば鳴るようになる
  • GUI メニューの、システム管理 → ハードウェア管理 で nvidia のビデオドライバと Broadcom の無線 LAN ドライバを自動で入れてくれる(ここからようやく無線 LAN の出番)
    • 有線 LAN から有効にしているので、有線 LAN が eth0 無線 LAN が eth1 に割り当てられている
    • eth0 と eth1 の名前を入れ替えたい人は /etc/udev/rules.d/70-persistent-net.rules と /etc/network/interfaces を編集して /etc/init.d/networking restart で入れ替える
    • 無線 LAN の設定をするときに、全ユーザーで使えるようにするにチェックを入れておくと、後でテキストログインに変更した後も、自動で接続してくれる

swap 領域の設定

  • swap ファイルを作成する(下記は 4GB)
sudo dd if=/dev/zero of=/swapfile bs=1024 count=4194304
sudo mkswap /swapfile
  • /etc/fstab に追加。ついでにルートパーティションのマウントオプションに noatime,nodiratime 辺りを追記しておく
/swapfile  swap  swap  defaults  0 0

各種ソフトウェアインストール

  • VNC, Google Chrome, 日本語入力の Mozc, Flash Plugin, ターミナル用フォントなど適当に

まとめ

mactel のお陰様で大分楽に Macbook Air への Ubuntu インストールが出来るようになっています。調査には時間がかかりましたが、実際作業を始めたら割とスムーズに行ったと思います。無線 LAN や、nvidia ドライバ、マルチタッチトラックパッドやサウンドなどはすぐに使えました。音量調整もファンクションキーから行えます。

不明点

  • GUI 使用中は本体を閉じたり開いたりで問題なくサスペンド・復帰できるのですが、CUI 時に pm-suspend でサスペンドしても復帰する方法が今のところ不明です。
    • とりあえず、X を起動すればサスペンドはできるので、サスペンドをしたい外出時の携帯中は GUI で使用しているので良しとしています。(自宅では開発サーバーとして 他のマシンからアクセスしているのでサスペンドの必要がありません。)
  • ディスプレイ輝度の調整の仕方が分からない
    • 一定時間放置後の自動ディスプレイオフ時に、徐々に輝度が下がって行くので、ACPI 的にはコントロールは出来ている模様
    • xbacklight などでの設定方法が今のところ不明
    • ファンクションキーで制御できるようにしたい
  • 右 Option, 右 Command キーの割り当てを良い感じ変えたい(日本語入力の On/Off など)

上記情報お持ちの方は解決策を教えて頂けると嬉しいです!

感想

  • 蓋開閉でのサスペンドからの復帰が、OSX のように一瞬ではない
    • だが取り立てて遅いという訳ではないので、そこまで気にならない
  • SSD 速い。ログインプロンプトが表示されるまでが、テキストモードだと更に速い。快適。GNOME や Firefox の起動も速い。
  • Linux 開発環境としての使い勝手はかなり良い感じ

2010-11-06

Ubuntu に含まれている MySQL 及び InnoDB Plugin のバージョン

| 17:01 | Ubuntu に含まれている MySQL 及び InnoDB Plugin のバージョン - Craftworks Tech Blog - Branch を含むブックマーク Ubuntu に含まれている MySQL 及び InnoDB Plugin のバージョン - Craftworks Tech Blog - Branch のブックマークコメント

Ubuntuapt で入る MySQL のバージョン

Ubuntu 9.04
mysql-server 5.1.30

Ubuntu 10.04.1 LTS
mysql-server 5.1.41
InnoDB Plugin 1.0.5 (RC)

と、いうことで InnoDB Plugin を使いたかったら Ubuntu 9.04 では MySQL 公式サイトからパッケージを持ってくるか、ソースからビルドしないといけないです。

Ubuntu 10.04 LTS ではパッケージに含まれていますので、そのまま使えます。ただし、調べていたら、http://d.hatena.ne.jp/sh2/20091120 のコメント欄に InnoDB Plugin 1.0.5 はまだ危なそうな感じで書いてあったので、自分は公式のソースコードの最新版を落としてきてビルドして使っています。

configure オプションは、mysqlbug コマンドを実行すると最下部に現在入っているパッケージのものが確認できますので、それのプラグイン指定の箇所だけ書き換えて指定しています。

2010-09-28

Ubuntu 10.04 LTS の MySQL で InnoDB Plugin を有効にしようとしたらハマったメモ

| 00:36 | Ubuntu 10.04 LTS の MySQL で InnoDB Plugin を有効にしようとしたらハマったメモ - Craftworks Tech Blog - Branch を含むブックマーク Ubuntu 10.04 LTS の MySQL で InnoDB Plugin を有効にしようとしたらハマったメモ - Craftworks Tech Blog - Branch のブックマークコメント

Ubuntu 10.04 LTS の MySQL は 5.1.41 なので、InnoDB Plugin をソースからインストールしなくてもそのまま使えますが、セットアップしていて少しつまづいたのでメモです。

/etc/mysql/my.cnf に

ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so

を追記して、MySQL をリスタートしても、

[ERROR] Can't open shared library '/usr/lib/mysql/plugin/ha_innodb_plugin.so' (errno: 0 failed to map segment from shared object: Permission denied)

と言われてしまい、起動できなかったのでググったら、どうやら SELinux の設定が関係しているようです。

/etc/apparmor.d/usr.sbin.mysqld というファイルがあるので、そこに

  /usr/lib/mysql/plugin/* rm,

を追記して、

service apparmor restart

で無事 InnoDB Plugin を読み込んで起動できました。