MacOSX ネットビジネス研究所

MacOSXでApache、Perl、PHPを動作させる備忘録です。

スポンサーサイト

  1. 2008/08/28(木) 12:47:30|

MacOSXでApacheを立ち上げる

ネットビジネスを立ち上げるには起業のアイデアが大事と思いますが、その前にお勉強としてWebの技術を学びたいと思います。まずは、自宅のMacで学習します。

MacOSXは基本的にUNIX(BSDの系統)をベースに構築されています。またWebアプリとして著名なApacheもプレインストールされています。またほとんどのUNIXに入っているPerlなどもバンドルされています。便利ですね。Macユーザであって良かったなあとつくづく思います。
ではまずWebサーバApacheを立ち上げてみます。

MacOSXでApacheを立ち上げるには、以下の手順を行います。
使用しているMacはバージョン10.4.11です。

1.システム環境設定→共有を開く
2.サービスタグの「パーソナルWeb共有」を入にする

これだけです。OSXではWeb共有をApacheを使って実現しているのでした。
これでApacheが立ち上がったのですが不安なので確認してみます。
以下多少UNIXの知識が必要。

1.Terninalを起動する(アプリケーション→ユーティリティ)
2.以下のコマンドをたたく

そんなことをしなくても直接Webサーバにアクセスしてみれば良いのですが
ブラウザを開き http://127.0.0.1/ または http://127.0.0.1/~アカウント名/ 
を直接指定してApacheのテストページが表示されれば起動されていることが確認できます。

ではhttp://127.0.0.1/というのはなんでしょうか?
これはローカルホストのIPアドレスです。
どのコンピュータでも自分自身をさすアドレスはこのhttp://127.0.0.1/です。

テーマ:インターネットサービス - ジャンル:コンピュータ

  1. 2008/03/01(土) 15:39:45|
  2. 日記
  3. | トラックバック:0
  4. | コメント:5

ApacheでのドキュメントとCGIの格納場所

Mac OS X ではApache のドキュメントルートは、/Library/WebServer/Documentsとなっています。ブラウザでhttp://127.0.0.1/ を指定して表示される HTML ファイルは、このディレクトリの中に入っているようです。
http://127.0.0.1/ はサーバ自体(この場合自ホスト)のIPアドレスを表し、/(Apacheのドキュメントルート)は実態の位置/Library/WebServer/Documents(UNIXのディレクトリ)を見に行くように関連づけて設定されています。
CGI はブラウザからのプリフィックスはcgi-bin、実態は/Library/WebServer/CGI-Executables が設定されています。
ここにCGIを入れてパーミッション(実行権限)をつけると動作するようになります。
ブラウザからhttp://127.0.0.1/cgi-bin/[cgiファイル名] にアクセスすると実行されるはずです。

実験してCGIが上手く動かない場合、Apacheのエラーログを調査すると原因を特定することが出来ます。エラーログは/private/var/log/httpd/error_logです。
エラーログを見るには下記のようにtailを使います。
tail /private/var/log/httpd/error_log

CGIを別のフォルダに入れても動作させることが出来るようにApacheを設定することが出来ます。これはfutomiさんのHPに書いてありましたので参考にされてはいかがでしょうか。http://www.futomi.com/lecture/macosx/config.html
ただし多くのフォルダをCGI用に設定するのはセキュリティ上問題となりますので注意が必要です。

テーマ:インターネット - ジャンル:コンピュータ

  1. 2008/03/01(土) 15:46:38|
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

Perlを利用したCGIを動かす

MacOSXではPerlがプリインストールされています。
したがって特にPerlを稼働させる環境を設定する必要はなくそのまま動きます。
perlは/usr/bin/perlにあるので、スクリプトのヘッダに

#!/usr/bin/perl

を記述すれば、Perlを使ってCGIスクリプトを作成することが出来ます。
それとWebブラウザで表示するためにCGIの実行結果ファイルはContentTypeをHTMLとすると良いでしょう。(下記)

perlを使ったCGIの記述

#!/usr/bin/perl
print "Content-type:text/html\n\n";
[実行したいスクリプトの記述]

今使っているOSX10.4.11では付属していませんが、以前のバージョンで付属していたtest-cgiやprintenvという例題を使って動作確認しても良いでしょう。
test-cgiを使うと現在のApacheのバージョンを調べることが出来ます。
私のMacでは1.3.33でした。

SERVER_SOFTWARE = Apache/1.3.33 (Darwin)
・・・・・・

testcgiのスクリプトをみると

echo SERVER_SOFWARE = $SERVER_SOFTWARE

となっていますので、環境変数SAEVER_SOFTWAREにApacheのバージョンが設定されているとわかります。





テーマ:インターネット - ジャンル:コンピュータ

  1. 2008/03/02(日) 00:59:43|
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

PHP4を使えるようにする

OSXにはPHPもプリインストールされていますので導入は簡単です。
しかし10.4.11に付属しているバージョンはPHP4です。
このバージョンは画像関係の機能が入っていないのでPHP5にアップデートすることをおすすめしますがPHP4でもある程度のことは出来ます。
まずはPHP4を設定してみます。

1./etc/httpd/httpd.confの設定を書き換えます

240行目あたりに以下の2行があるので先頭の#を取ります。
#LoadModule php4_module libexec/httpd/libphp4.so
#AddModule mod_php4.c

以下の記述も必要ですが私のMacではあらかじめ1087行目に記述されていました。
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

シンタックスを確認するには以下のコマンドを使用します。
httpd -t

OKであれば、Syntax OK と表示されますので書き換えたあとはこのコマンドで確認する癖を付けると良いと思います。

2.Apacheを再起動します
「システム環境設定」→「共有」→「サービス」から「Web共有」を選び、停止→開始とします。
ターミナルでは以下のコマンドを入力するとApacheを再起動できます。
% sudo apachectl restart

3.PHPのテスト
/Users/アカウント名/Sites にphpinfo.phpという名称でファイルを作ります。
phpinfo.phpの中には以下の記述をします。

<?php
phpinfo();
?>

そしてブラウザからこのファイルにアクセスします。

http://127.0.0.1/~アカウント名/phpinfo.php

そうするとPHPの情報が表示されます。
この情報にはApacheやMySQLなどの情報が載っていて便利です。

※しかし他人に見られると危険なので、サイトを公開する場合は消した方が良いでしょう。





テーマ:インターネット - ジャンル:コンピュータ

  1. 2008/03/02(日) 12:35:24|
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

PHP5のインストールと設定

ボクのMacOSX(10.4.11)にはPHP4が入っています。
しかしいろいろやりたいことがPHP4では難しいようです。(マッシュアップや画像をいじりたいのですが)しかもそろそろPHP6が出るそうでPHP4をやってる場合じゃないようです。
そこでPHP5をインストールして使えるようにしようと思います。
以下に手順を示します。

1.サイトからパッケージをダウンロードしてインストールする
 http://www.entropy.ch/software/macosx/php/
ここにはOSX用にコンパイル済みのPHP5パッケージが入っているので簡単です。
ボクのApacheは1.3なので1.3用の「PHP 5.2.4 for Apache 1.3」をダウンロードします。
あとはインストーラを起動してインストールします。
/usr/local/php5にインストールされました。

2.PATHの設定
ターミナルで操作します。
# which php
/usr/bin/php
# php -v
PHP 4.4.7 (cli) (built: Jul 10 2007 13:05:18)
とPHP4になっています。
パスを通します。
(UNIXでは実行ファイルはPATH環境変数に設定されたディレクトリを探します)
# setenv PATH /usr/local/php5/bin:$PATH
(tch,cshの場合。ch,bashでは構文が違います)
# which php
/usr/local/php5/bin/php
# php -v
PHP 5.2.4 (cli) (built: Aug 31 2007 23:57:08)

ただし上記ではターミナルで一時的に環境変数を変えただけなので、毎回設定し直さないと行けません。これでは不便なので自動的に設定できるようにします。
ボクは「.login」に上記のコマンドを書いて保存しました。
(パーミッションは実行権限を忘れずに)

3.Apacheが止まっているので再起動します。
#apachectl start
すると
/usr/sbin/apachectl: line 193: 422 Bus error $HTTPD
/usr/sbin/apachectl start: httpd could not be started
となって起動できません。
しかたないのでentropyで追加されたconfを外してみます。
# cd /private/etc/httpd/users
# mv +entropy-php.conf bkup(追加されていたシンボリックリンクをリネーム)

/etc/httpd/httpd.confをエディターで編集する
240行目あたり
#LoadModule php4_module libexec/httpd/libphp4.so
#LoadModule php5_module libexec/httpd/libphp5.so
LoadModule php5_module /usr/local/php5/libphp5.so #フルパスで指定

286行目あたり
#AddModule mod_php4.c
AddModule mod_php5.c

1088行目あたり
#<IfModule mod_php4.c>
# # If php is turned on, we repsect .php and .phps files.
# AddType application/x-httpd-php .php
# AddType application/x-httpd-php-source .phps
#
# # Since most users will want index.php to work we
# # also automatically enable index.php
# <IfModule mod_dir.c>
# DirectoryIndex index.html index.php
# </IfModule>
#</IfModule>
<IfModule mod_php5.c>
 AddType application/x-httpd-php .php
 AddType application/x-httpd-php-source .phps
 <IfModule mod_dir.c>
  DirectoryIndex index.html index.php
 </IfModule>
</IfModule>

4.再確認
PHP4で書いた phpinfo.php で見てみると
「PHP Version 5.2.4
www.entropy.ch Release 1 (Universal Binary)」
と表示されました。

以上でPHP5の設定は完了です。




テーマ:インターネット - ジャンル:コンピュータ

  1. 2008/03/02(日) 20:50:57|
  2. 日記
  3. | トラックバック:0
  4. | コメント:0
次のページ