MAMPを使ってsymfonyの開発環境を作ろう

macsymfonyを用いたローカル開発環境を用意する際の手順メモです。

MAMPsymfonyをインストール

まずはMAMPをダウンロード


次に、macにデフォルトで入っているphpのバックアップ

sudo mv /usr/bin/php /usr/bin/php-old

MAMPphpシンボリックリンクを作成(今回はphp5.2を使用)

sudo ln -s /Applications/MAMP/bin/php5.2/bin/php /usr/bin/php

PHP5.3を用いる場合は、

sudo ln -s /Applications/MAMP/bin/php5.3/bin/php /usr/bin/php


pearも同様にバックアップとシンボリックリンクを作成

sudo mv /usr/bin/pear /usr/bin/pear-old
sudo ln -s /Applications/MAMP/bin/php5.2/bin/pear /usr/bin/pear

PHP5.3を用いる場合は

sudo ln -s /Applications/MAMP/bin/php5.3/bin/pear /usr/bin/pear


PEARsymfonyチャネルを追加

pear channel-discover pear.symfony-project.com

pear: command not found
php: Permission denied

このようなエラーが出た場合は、pearphpの権限を変更する必要がある

sudo chmod 774 /Applications/MAMP/bin/php5.2/bin/pear
sudo chmod 774 /Applications/MAMP/bin/php5.2/bin/php

参考URL:PEAR Not Found


symfonyインストール

pear install symfony/symfony


symfonyコマンドを利用可能にするため、シンボリックリンクを作成

sudo ln -s /Applications/MAMP/bin/php5/bin/symfony /usr/bin/symfony


インストール確認

symfony -V
symfony version 1.4.8


これでphp5.2環境にsymfonyのインストールができました。


参考URL:OS X: How to Install Symfony into MAMP

symfonyサンプルプロジェクトの作成

次に、サンプルとしてsymfonyプロジェクトを作成してみましょう。


macのSiteディレクトリにtestディレクトリを作成します。

cd Sites
mkdir test
cd test


プロジェクトの作成

symfony generate:project test --orm=Propel

ormをPropelに設定する場合、symfony1.4ではormオプションを付けます。


フロントエンドの作成

symfony generate:app frontend


ブラウザからアクセスできるようにhttpd.confを編集します。
sfフォルダへのパスを通さないと正しくデフォルトの画面が表示されません。

vi /Applications/MAMP/conf/apache/httpd.conf
<VirtualHost *:8888>
  DocumentRoot "/Users/apple/Sites/test/web"
  DirectoryIndex index.php
  <Directory "/Users/apple/Sites/test/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /Applications/MAMP/bin/php5/lib/php/data/symfony/web/sf
  <Directory "/Applications/MAMP/bin/php5/lib/php/data/symfony/web">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>


MAMPでサーバを再起動

これでブラウザからアクセスすればデフォルトの画面が表示されます。


参考URL:Macでローカル開発サーバ ( MAMP +バーチャルホスト)

Subversionリポジトリ管理をする場合の初期設定

rm -rf cache/* log/*
svn add *
svn propedit svn:ignore cache

cacheとlog内のファイルを無視するように設定します

svn propeditを実行しようとしたところ以下のようなエラーが発生する場合は環境変数を追加する

svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no 'editor-cmd' run-time configuration option was found


.profileにsvn用エディタの環境変数を追加

vi ~/.profile
export SVN_EDITOR=vim

.profileを再読み込み

source .profile

参考URL:How To Set SVN_EDITOR Environment Variable To Vim

svn propedit svn:ignore cache
*

svn propedit svn:ignore log
*

参考URL:Jobeet

mysqlの設定

MAMPphpMyAdmin設定

ターミナルからmysqlコマンドを使えるようにシンボリックリンクを貼る

ln -s /Applications/MAMP/Library/bin/mysql /usr/bin/mysql
ln -s /Applications/MAMP/Library/bin/mysqladmin /usr/bin/mysqladmin


MAMPmysqlにアクセス(デフォルトでのrootのパスワードはroot)

mysql -u root -p


パスワードをなしにする場合

SET PASSWORD FOR root@localhost=PASSWORD('');

参考URL:MAMPのMySQLサーバに接続したいよ(Terminalで


mysqlのパスワードを変更した後に、MAMPのスタートページにアクセスしようとしたところ、
Error: Could not connect to MySQL server!
というエラーが


MAMPの設定ファイルを変更してみたものの、パスワードなしのrootの場合、ページが正しく表示されませんでした。


rootとは別に管理ユーザを追加する

GRANT ALL PRIVILEGES ON *.* TO 管理ユーザ名@localhost IDENTIFIED BY 'パスワード' WITH GRANT OPTION;


MAMPの設定ファイルを変更する

vi /Applications/MAMP/bin/mamp/index.php
$link = @mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock', '管理ユーザ名', 'パスワード');

vi /Applications/MAMP/bin/phpMyAdmin/config.inc.php
$cfg['Servers'][$i]['user'] = '管理ユーザ名'; 
$cfg['Servers'][$i]['password'] = 'パスワー ド';


MAMPの再起動


これでMAMPphpmyadminにアクセスできました。


参考URL:LeopardにMAMPを入れた時のメモ

mysqlデフォルト文字コード設定

mysqladmin -uroot create test

というように、mysqladminを用いてDBを作成しようとしたところ、文字コードがデフォルトのlatin1となってしまい、日本語が文字化けしてしまうという事態に


MAMPに用意されているmy.cnfのサンプルファイルをリネームしてコピー

cp /Applications/MAMP/Library/share/mysql/my-small.cnf /Application/MAMP/db/mysql/my.cnf

文字コードの指定を追加

vi /Application/MAMP/db/mysql/my.cnf
[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

[mysql]
default-character-set=utf8


MAMPを再起動


これでデフォルトの文字コードがutf8になりました。


参考URL:
MAMPのmy.cnf



以上で、MAMPを使ったsymfonyの開発環境が用意できました。


他にも必要な設定が見つかった場合は、適宜ブログに追加していこうと思います。