XAMPP+symfony環境構築

XAMPP for LinuxsymfonyPHPフレームワーク)をインストールした時のメモ。
さすがに前回のメモはひどかったのと、インストールし直す状況になってしまったのでちゃんと書き直します。

前提として、OSはXubuntu12.10を使用してます。

sudo tar xvfz xampp-linux-1.8.1.tar.gz -C /opt
  • /opt/lampp/lampp のシンボリックリンクを /usr/bin/lamppに作る。lamppを起動するときに、/opt/lampp/lamppとタイプする必要がなくなる。
sudo cp -s /opt/lampp/lampp /usr/bin/lampp
  • とりあえず起動してみる。
$sudo lampp start
Starting XAMPP for Linux 1.8.1...
XAMPP: Another web server daemon is already running.
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for Linux started.

二行目がなんかおかしい。

XAMPP: Another web server daemon is already running.

localhostにアクセスしてみるととりあえずサーバーは動いてるっぽいけど、localhost/xamppにアクセスしたらNot foundと怒られるのでどうもおかしい。
ぐぐってみると、同様のエラーを出している人がいて、

sudo apt-get autoremove apache2

をした後に、sudo lampp restart で無事に動いた。

さて次はsymfonyの導入ですね。個人的な都合でバージョンは1.0.22です。
xamppに入ってるpearを使ってインストールします。
/opt/lampp/binにて、

sudo ./pear channel-discover pear.symfony-project.com
./pear install symfony/symfony-1.0.22

で完了。
symfonyシンボリックリンクをlamppと同様に作成。

sudo cp -s /opt/lampp/bin/symfony /usr/bin/symfony

これでまあなんとかなる?→ならない。
symfony で適当にプロジェクトを作って、webディレクトリのシンボリックリンクを/opt/lampp/htdocs/testに作成。
localhost/testにアクセスするとエラー。
/opt/lampp/lib/php/data/symfony/config/php.ymlを以下の通り書き換え。

set:
#  magic_quotes_runtime:        off
  log_errors:                  on
  arg_separator.output:        |
    &

warn:
#  magic_quotes_gpc:            off
#  register_globals:            off
  session.auto_start:          off

まだNoticeが残る。
/opt/lampp/lib/php/symfony/symfony.php 132行目を変更

  ob_start(sfConfig::get('sf_compressed') ? 'ob_gzhandler' : '' );
↓
  ob_start(sfConfig::get('sf_compressed') ? 'ob_gzhandler' : null );

まだなんか出てくるので、sfFileCache.class.php 484行目、491行目をコメントアウト

//set_magic_quotes_runtime(0);
...
//set_magic_quotes_runtime($mqr);

プロジェクトのwebディレクトリ下に、opt/lampp/lib/php/data/symfony/data/web/sfのシンボリックリンクまたはコピーを作る。これで完成。