osx 10.5でウェブ環境を構築した

10.6がもうすぐ出るという時期に今更ながら10.5にアップデートしました。

10.4のようにentropy神に頼る事も出来ないのでGoogle先生とその先にある情報に縋りつつソースからチマチマとWeb環境を構築しました。 万が一の時、同じ事で悩みたく無いのでメモ。

OSX10.5いれる

プリンタドライバと日本語以外のインプットメソッドは削りました。X11は入れます。
ソフトウェアアップデートで10.5.7に…アップデート後に知ったのですが、Radeon搭載のMacでVMwareFusionを使っている人は10.5.7にアップデートすると3Dアクセラレーションを使えなくなるそうなのでアップデートしない方がい良いかも。
ファイアウォールを「特定のサービスおよび…」に変更。
ことえり環境設定>入力文字>JISキーボードの円記号で入力する文字をバックスラッシュに変更。

Xcodeいれる

Xcodeを入れないとソースコンパイル出来ないしCocoaの勉強も出来ないので入れます。

apacheのconf変更

10.5のApache設定ファイルの位置は/private/etc/apache2/
mod_perlが消えてmod_fastcgiが入っていました。折角なのでこれも使います。

viはiで入力状態、Escキーで入力状態の終了。 閲覧状態で/を入力すると検索(nで続けて検索)、 :wqで保存して終了。待機状態で:set numberで行番号表示。
/phpでphpと記述されている行に移動。114行目あたり。

sudo vi /etc/apache2/httpd.conf
#LoadModule php5_module        libexec/apache2/libphp5.so
#LoadModule fastcgi_module     libexec/apache2/mod_fastcgi.so

…の行頭の#を外す。
続いてFastCGIを動かすための設定をhttpd.confの最後の行に移動して…

Include /private/etc/apache2/extra/httpd-fastcgi.conf

…と追加。
続いてextraディレクトリにhttpd-fastcgi.confを作成。

sudo vi /etc/apache2/extra/httpd-fastcgi.conf

    AddHandler fastcgi-script .fcgi
    FastCgiIpcDir /var/run/fastcgi

…と入力して保存終了。 これでFastCGIが使える、はず。

続いてユーザ設定ファイルを変更…

sudo vi /etc/apache2/users/USER.conf
USERDIR/Sites/">
    AddHandler cgi-script .cgi
    Options Indexes MultiViews Includes ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    
        DirectoryIndex index.fcgi index.cgi index.php index.html
    

ユーザの~/SitesでCGIが動くようにしました。

MySQLいれる

5.1は避けて5.0を入れました。MySQL :: MySQL 5.0 Downloadsからdmgをダウンロード。pkgダブルクリックでインストール。

ユーザ専用でシステム環境設定にパネルをインストール。自動起動は必要ないので入れませんでした。
パネルからMySQLを起動してファイアウォールの特定サービスに追加。
今の時点ではMySQLのユーザとパスワードは作りません。

余談ですがpkgインストーラーを起動した状態でコマンドキー + iを押すか、インストーラーメニューのファイル>ファイルを表示、でインストールされるファイルを確認できます。

画像ライブラリなど

GDやImageMagickで使うので入れます。

libjpeg

libjpegです。かなりの鬼門らしいです。 ソースからコンパイルして入れる場合、CPUによって設定を変える等面倒です。
面倒を避けたい場合はMac OS X Portsで公開されている素晴らしいパッケージソフトを使えば、特に悩む事なくlibjpegとlibpngをインストールできます。

ソースから入れる場合はIndependent JPEG Groupからjpegsrc.v6b.tar.gzを入手。解凍。 もし無ければインストールするディレクトリを予め作成

sudo mkdir -p /usr/local/include
sudo mkdir -p /usr/local/lib
sudo mkdir -p /usr/local/bin
sudo mkdir -p /usr/local/man/man1
cd ~/Downloads/jpeg-6b
ln -s `which glibtool` ./libtool

でリンクする方法ではエラーが出るので

cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess .

でファイルコピー。

MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --enable-shared
make test
sudo make install

で終わり。なんだけどパスが通ってないようでmanが使えませんでした…MANPATHに追加しないと駄目ですね。

余談です。libjpegを入れたのでjpegtranなどのコマンドラインツールが使えるようになりました。 jpegtranは再圧縮せずにExifやソフトウェア情報etcを削り最適化してくれるので便利です。 Automatorを使ってドロップレットやファインダープラグインから呼び出せば気軽に使えます。

libtiff

Tiffも入れときます。 MapTools Download: /dl/libtiffからソース落として解凍。

./configure CFLAGS="-isystem /usr/local/include"
make
sudo make install

これでbmpやgif、rawデータをtiffに変換できます。

jasper

jpeg2000も扱えるようにしときます。 The JasPer Project Home Pageからソースげっと。解凍。

cd  ../jasper-1.900.1/
./configure CFLAGS="-isystem /usr/local/include" --enable-shared
make 
sudo make install

PHPにGDとmcryptを

GDはphpで画像操作するのに使うので入れます。mcryptはphpMyAdmin3.2.0で警告が出るのが鬱陶しいので入れました。 Open Source - ReleasesからバージョンにあったPHPを落とします。PHPのサイトから落としても良いかも知れません。

mcryptいれる

Plugging mcrypt into PHP, on Leopard 10.5.6 | Michael Gracieで紹介されている方法で入れました。 SourceForge.net: mcrypt: Filesからmcryptもらいます。解凍。

cd ../libmcrypt-2.5.8/
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64' LDFLAGS='-O3 -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64' ./configure --disable-dependency-tracking
make -j6
sudo make install

mcryptが入りました。

cd ../php-5.2.8/ext/mcrypt/
phpize
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-O3 -fno-common -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64" LDFLAGS="-O3 -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64" CXXFLAGS="-O3 -fno-common -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64" ./configure --with-php-config=/Developer/SDKs/MacOSX10.5.sdk/usr/bin/php-config
make -j6
sudo make install

PHPでmcryptが使えるようになりました。

GDいれる

GDです。

cd ../gd/
phpize

libjpegとlibpngをパッケージインストーラーで入れた場合は--with-png-dir=/usr/localで良いと思います。

MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load" ./configure --with-zlib-dir=/usr --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6 --with-xpm-dir=/usr/X11R6

php.iniいじる

sudo cp /etc/php.ini.default /etc/php.ini
sudo vi /etc/php.ini

「Dynamic Extensions」のセクションに

extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20060613"
extension=gd.so
extension=mcrypt.so

を追加。さらに「MySQL」セクションの

mysql.default_socket =

mysql.default_socket = /tmp/mysql.sock

に変更。

Apacheを再起動。~/Sites/に

<?php phpinfo(); ?>

と記述したテキストファイルをtest.phpとして保存。http: //localhost/~USER/test.phpにアクセスしてGDとmcryptが存在している事とmysqlのソケットが/tmp/mysql.sockになっている事を確認。

ImageMagickいれる

いまげまぎckです。MacPortsでこれだけを入れようとするとかなり面倒です。libjpeg+libpngインストーラーパッケージ+ソース+ソース同梱perlMagickが確実ではないかと。
ImageMagick: Downloadsからソースをダウンロード。

cd ~/Downloads/ImageMagick-6.5.3-10
./configure

長々とconfigureの結果が出て…最後の方に適用されたオプションがでます。 Web用なのでjpeg、gif、pngに対応していれば特に問題ないですが、余計に入れたtiffとjpeg2000も適用されていました。 jp2に対応しているブラウザは少ないのでWebで使う機会は無いと思いますが。

make 
sudo make install
convert -version
Version: ImageMagick 6.5.3-10 2009-06-28 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC

ImageMagickが使えるようになりました。

perlMagickも

ImageMagickのソースに付属しているperlMagickも入れます。バージョンが食い違うとまずいのでCPANは使いません。

cd ./PerlMagick/
perl Makefile.PL
make
make test

ここで唐突にX11が起動したのでビックリ。

sudo make install

これでperlから使えるようになったはずです。 後で確認することにして次にいきます。

CPANつかう

すでに入っているので設定だけです。

sudo -H cpan

地域やダウンロードサーバ、UNINST=1など一部除いてほぼエンター連打で設定しました。

cpan[1]> Bundle::CPAN

でCPANモジュールをインストール。対話部分は全部yesで。時間かかります。

モジュールのバージョンやインストール状況など見たい場合はi モジュール名

cpan[1]>  i LWP::Simple                                                         
Module id = LWP::Simple
    DESCRIPTION  Simple procedural interface to libwww-perl
    CPAN_USERID  LWWWP (The libwww-perl mailing list )
    CPAN_VERSION 5.827
    CPAN_FILE    G/GA/GAAS/libwww-perl-5.828.tar.gz
    DSLIP_STATUS Rmpf? (released,mailing-list,perl,functions,)
    MANPAGE      LWP::Simple - simple procedural interface to LWP
    INST_FILE    /System/Library/Perl/Extras/5.8.8/LWP/Simple.pm
    INST_VERSION 1.41

入っていればこのように情報が見られます。正確な名前が分からない場合は i /モジュール名/で正規表現検索。

cpan[1]> install FCGI

ついでにfastCGIのモジュールも入れました。

DBD::MySQLいれる

PerlからMySQL使う場合は必要ですが…鬼門らしいです。駄目もとでCPAN使って入れてみます。 DBD::SQLiteさえ動けば特に困らないので失敗したら諦めます。

Re: Installing DBD::mysql on Leopardを参考に以下のようなシンボリックリンクを作ります。 ファイルのレイアウトが鬼門になっているのでしょうか…

sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
sudo ln -s /usr/local/mysql/include /usr/local/mysql/include/mysql

CPANで入れます。

sudo -H cpan
cpan[1]> install DBD::mysql

何事も無く終わりました。 入った?のかな?ん?

Perlモジュールの確認

DBD::Mysqlの確認用に適当なスクリプト書いて最初から入っているtestデータベースに接続してみます。 Image::Magickも読み込んでみます。

#!/usr/bin/perl -Tw
use strict;
use CGI::Carp qw{fatalsToBrowser};
use CGI qw{:standard};
use Image::Magick;
use DBI;
print header('text/html;charset=utf8');
if(my $dbh = DBI->connect('DBI:mysql:database=test;host=localhost', 'root', ''))
{
    print h1 $dbh->err || '(`・ω・´)';
    print p $dbh->ping;
}
exit(0);

MySQLサーバに接続出来ました。 perlMagickとDBD::mysqlが使えます。

phpMyAdmin設置

コマンドラインで管理するよりGUIの方が楽なので phpMyAdminをダウンロード。 phpMyAdminバージョン3.2.0を~/Sites/phpMyAdmin320/として配置。 Sequel ProなどのGUIアプリケーションを使うのも良いかも。

ターミナルでrootのパスワードを設定しておきます。

/usr/local/mysql/bin/mysql -u root

mysql> select host, user, password from mysql.user;
+------------+------+----------+
| host       | user | password |
+------------+------+----------+
| localhost  | root |          | 
| imac.local | root |          | 
| 127.0.0.1  | root |          | 
| localhost  |      |          | 
| imac.local |      |          | 
+------------+------+----------+
5 rows in set (0.01 sec)

mysql> set password for 'root'@'localhost' = password('TYPEYOURPASSWORD');
Query OK, 0 rows affected (0.01 sec)

mysql> select host, user, password from mysql.user WHERE password != '';
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *ABCDEFGHIJKLMNOPQRSTUVWXYZ12345667890ABC | 
+-----------+------+-------------------------------------------+
1 row in set (0.00 sec)

mysql > quit
Bye

これでphpMyAdminにlocalhost接続でrootとrootのパスでログインできるようになりました。 config.sample.inc.phpをconfig.inc.phpに変えてblowfish_secretに適当な文字を放り込んで完了。

おしまい。

phpMyAdminの他にWordPress(PHP)と自作ブログ(Perl)を動かしてみましたが今のところ問題無いようです。

今回、HDDクラッシュ→クリーンインストールという最悪の形で10.5にアップデートしたのですが失ったデータの事を考えると鬱です…
せめて覚え書きの類いはブログの記事にしとけば…こまめなバックアップの大切さを思い知りました。

以下はとても参考になったサイトです。この記事を見るより良いと思います。



selected entries

categories

archives

recent comment

recent trackback

links

profile

search this site.

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM