Linux+Apache+MySQL+PHP。FreeBSDを使ったから実際にはBAMP?

主にFreeBSDでApache+MySQL+PHPをPortsを使って素速くインストール | WhiteMixを参考にした。

Apache

$ add_pkg -r apache22
  
\# $ portinstall www/apache22 だと時間がかかる

FreeBSDを起動したとき、apacheも起動するために/etc/rc.confに

\# apacheをリブートしても起動するように設定
  
apache22_enable="YES"

を追記する。

httpd.conf

/usr/local/etc/apache22/httpd.confを編集する。

\# phpのための設定
  
LoadModule php5_module libexec/apache22/libphp5.so

AddType application/x-httpd-php .php
  
AddType application/x-httpd-php-source .phps

\# ファイル名がなくディレクトリ名だけ指定されたとき、探しに行くファイル
  
<IfModule dir_module>
      
DirectoryIndex index.html index.htm index.php
  
</IfModule>

\# userごとの~/public_htmlを作って
  
\# http://hoge.com/~username/でアクセスできるようにしたい場合は
  
\# 以下のようにコメントを外す
  
\# User home directories
  
Include etc/apache22/extra/httpd-userdir.conf

さらに~/public_html/cgi-bin/以下でcgiを使いたい場合は以下のように編集する

[bash title=”/usr/local/etc/apache22/extra/httpd-userdir.conf”]

Options ExecCGI

SetHandler cgi-script

[/bash]

MySQl

データベースはSQLiteを使うので飛ばす。

PHP5

$ cd /usr/ports/lang/php5
  
$ make config

以下を追加でチェックする

  • Build Apache module – pkg_addでphp5をインストールすると、これにチェックが入ってないらしく、サーバーでPHPが使えないというとんでもないことになる
  • Enable zend multibyte support
$ portinstall lang/php5

ここで失敗。

=> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
fetch: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/php-5.3.2.tar.bz2: File unavailable (e.g., file not found, no access)
=> Couldn't fetch it - please try to retrieve this
=> port manually into /usr/ports/distfiles/ and try again.

と出たのでPHP: Releasesから自分でfetchして再度トライ。

$ cd ../../distfiles/
  
$ fetch http://museum.php.net/php5/php-5.3.2.tar.bz2
  
$ portinstall lang/php5

さらにphp5-extensionsをインストール

$ cd ../php5-extensions
  
$ make config

以下を追加でチェック。それ以外も用途に合わせて追加する。

  • CURL support
  • GD library support(後のオプション設定でjapanese supportのチェックを確認)
  • multibyte string support(後のオプション設定でregexがチェックされているか確認)
  • MySQL database support
$ portinstall lang/php5-extensions

php.ini

php.iniをコピー

$ cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

お好みでdisplay_errors = OffをOnにする。

ここまできたら、apacheを再起動する。

$ /usr/local/etc/rc.d/apache22 restart

参考にしたサイト

VirtualBoxの設定

VirtualBox上に構築した場合はさらに設定が必要。

Ubuntu/VirtualBox/NAT接続でもポートフォワードでゲストOSに接続する方法 – TOBY SOFT wikiを参考にしてVirtulboxの設定する。

仮想マシンは切っておく。コマンドプロンプトを開いて、VirtualBoxがインストールされているフォルダ(C:\Program Files\Oracle\VirtualBoxなど)に移動。

VBoxManage modifyvm <仮想マシン名> &#8211;natpf1 "guestweb,tcp,,50080,,80"

と打ち、VirualBoxのFreeBSDを起動して

\# su
  
\# cp /usr/local/www/apache22/data/index.html /home/<user>/public_html

などでHTMLファイルを作成。ブラウザでhttp://localhost:50080/にアクセスし、「It works!」が表示されればOK。

関連

リンク