ラベル mac の投稿を表示しています。 すべての投稿を表示
ラベル mac の投稿を表示しています。 すべての投稿を表示

2012年5月18日金曜日

apacheのaliasでハマった

EclipseでPHPを開発するためにPHPのワークスペースをユーザドキュメントの中に作っていました。
そこにApacheの仮想ディレクトリのエイリアスを作ったんですが、パーミッションのエラーが。。。

ワークスペースの権限ばかり気にしていたんですがもっと上の階層(今回はドキュメントディレクトリ)で権限が足りてませんでした。

メモ程度ですがしたこと

Eclipseのワークスペース: ~/Documents/Workspace/php

httpd.conf
<IfModule alias_module>
    (省略)
    Alias /~php/ "Users/<User Name>/Documents/Workspace/php"
</IfModule>

<Directory "/Users/<User Name>/Documents/Workspace/php">
    AllowOverride None
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>

ターミナル起動
$ chmod 755 ~/Documents

いやーハマりました。。。



2012年5月17日木曜日

PHP+MSSQLのインストール

Mac環境のPHP+MSSQLをインストールするやり方。
まず、http://www.freetds.org/から安定版のfreetdsをダウンロードします。

Mac環境(Linuxでも同じだと思いますが)でMSSQLに接続したい場合には、このfreetdsというのを使います。

ダウンロードしたファイルを解凍して、「/usr/local/src」に配置します。

次にターミナルを起動して配置したディレクトリに移動します。
$ cd /usr/local/src/freetds-0.91

次にfreetdsの設定・コンパイル・インストールを行います。
$ ./configure --prefix=/usr/local/freetds --enable-msdblib
$ make
$ sudo make install
password:

PHPで使用したいのでモジュールの追加を行います。
$ cd /usr/local/src/php-5.3.13
$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --with-mssql=/usr/local/freetds
$ make
$ sudo make install
password:

これで設定はOK。
Apacheを再起動してphpinfoを確認すると、下のようにMSSQLの項目が表示されると思います。


※phpinfoにはでてきてるんですが実際にプログラムを組んでみるとうまく動きませんでした。なんか設定があるのかな。調べ中です。。。

2012.5.18 追記
実際にSQLServerに接続しようとした場合、うまく動かなかったんですがインスタンス名が含まれる場合?に接続できませんでした。
マニュアルでは<computer>\<instance name>と書いてはいるんですがだめでした。

私の場合、以下のように/usr/local/freetds/etc/freetds.confに追記を行うことで接続することができました。
[server\sqlexpress]
host = server
instance = sqlexpress
tds version = 7.2

これでプログラムそのままでSQLServerに接続することができました。

Macに入れたPHP・MySQLでつまづいた点(続)

先日までセットアップしてたPHP・MySQLのセットアップで
エラーが気になって再度一から構築してみようと試みましたがやっぱり同じ箇所でつまづいてしまいました。
さらに途中からsudo -sでroot権限に切り替えないとPHPのインストールとApacheの起動ができなくなってしまったりMySQLも起動しなくなるなどボロボロ。。。

バージョンの問題なのかなと思いMySQLを5.5.24から5.1.63に変えました。
するとすんなりインストールが完了。
.bash_profileを書き換えたりする必要もなく。
また合わせてMySQLの配置を「/usr/local/mysql-5.1.63」から「/usr/local/mysql」に変更してます。
(シンボリックリンクでもいいと思います)

んーやっぱりバージョンの相性なのかな。。。



2012年5月15日火曜日

Macに入れたPHP・MySQLでつまづいた点

昨日・今日でMacにバイナリパッケージからApache・PHP・MySQLをインストールしてきましたが、単にインストールするだけなら特別問題もなくインストールできました。
Mac OS X(Lion)にApache2を手動でインストールする
Mac OS X(Lion)にPHP5.3を手動でインストールする
Mac OS X(Lion)にMySQLを手動でインストールする

本当にただ動かすためだけにインストールしてたんで
これからさらにPHP+MySQLを試みてたんですがエラーの連続でなかなかうまいこといきませんでした。
各バージョンの問題なのかOSバージョンの問題なのか
理由はいろいろなんでしょうがとりあえず調べるのに時間がかかったところだけ備忘録程度に。。。

phpizeでエラー
これはさっき書いたんで省略しますがmysqlのモジュールを追加しようと思ってこれをやってたんですが、結果追加モジュールからはうまく動いてくれませんでした。
# cd /usr/local/src/php-5.3.13
# cd ext/mysql
# phpize
# ./configure --with-mysql=/usr/local/mysql-5.5.24
# make
# make install

で結局、phpのconfigureから再コンパイルしてっとやってたんですがMySQLがうまく動いてくれません。というかmakeでエラーが出ました。
# cd /usr/local/src/php-5.3.13
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql-5.5.24
# make clean
# make

これを実行すると以下のエラー
Undefined symbols for architecture x86_64:
  "_res_9_init", referenced from:
      _zif_dns_get_mx in dns.o
      _zif_dns_get_record in dns.o
      _zif_dns_check_record in dns.o
  "_res_9_search", referenced from:
      _zif_dns_get_mx in dns.o
      _zif_dns_get_record in dns.o
      _zif_dns_check_record in dns.o
  "_res_9_dn_skipname", referenced from:
      _zif_dns_get_mx in dns.o
      _zif_dns_get_record in dns.o
  "_res_9_dn_expand", referenced from:
      _zif_dns_get_mx in dns.o
      _php_parserr in dns.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [libs/libphp5.bundle] Error 1

内容はよくわかりませんでした。
が、ぐぐった結果、.bash_profileを変更するということだったのでこんなかんじ。
# vi ~/.bash_profile
-----
export EXTRA_CFLAGS=-lresolv
-----
# source ~/.bash_profile

これで再度コンパイルからmakeを実行。
すると今度は以下のエラー
yld: Library not loaded: libmysqlclient.18.dylib
  Referenced from: /usr/local/src/php-5.3.13/sapi/cli/php
  Reason: image not found
/bin/sh: line 1: 94225 Trace/BPT trap: 5       ` if test -x "/usr/local/src/php-5.3.13/sapi/cli/php"; then /usr/local/src/php-5.3.13/build/shtool echo -n -- "/usr/local/src/php-5.3.13/sapi/cli/php -n"; if test "x" != "x"; then /usr/local/src/php-5.3.13/build/shtool echo -n -- " -d extension_dir=/usr/local/src/php-5.3.13/modules"; for i in bz2 zlib phar; do if test -f "/usr/local/src/php-5.3.13/modules/$i.la"; then . /usr/local/src/php-5.3.13/modules/$i.la; /usr/local/src/php-5.3.13/build/shtool echo -n -- " -d extension=$dlname"; fi; done; fi; else /usr/local/src/php-5.3.13/build/shtool echo -n -- "/usr/local/src/php-5.3.13/sapi/cli/php"; fi;` -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0' /usr/local/src/php-5.3.13/ext/phar/build_precommand.php > ext/phar/phar.php
make: *** [ext/phar/phar.php] Error 133

もぉよくわかりません。
とりあえず、ぐぐった結果、これまた.bash_profileを変更。。。
# vi ~/.bash_profile
-----
export DYLD_LIBRARY_PATH=/usr/local/mysql-5.5.24/lib:$DYLD_LIBRARY_PATH
-----
# source ~/.bash_profile

これで再度コンパイルからmakeを実行。
やっとエラーが消えました。

内容はよくわかりませんが、バージョンの問題なのかOSの問題なのか。。。

2012.5.17
こちらも参考程度にリンクつけときます。
Macに入れたPHP・MySQLでつまづいた点(続)



phpizeでエラー

phpizeはphpの拡張モジュールをビルドする環境を作る為のコマンドですが、ここでエラーが発生。。。
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.

autoconfが入ってない的なエラー。

ということでautoconfをインストールします。

まず、http://www.gnu.org/software/autoconf/から任意のバージョンのautoconfをダウンロードします。
(今回はautoconf-2.69をダウンロードしました。)

ダウンロードしたファイルを解凍して、「/usr/local/src」に配置します。

以下、ターミナルを起動してインストールを行います。
$ cd /usr/local/src/autoconf-2.69
$ ./configure --prefix=/usr
$ make
$ sudo make install

これでOK。


Mac OS X(Lion)にMySQLを手動でインストールする

えー引き続き今度はMySQLのインストールのやり方。
まず、http://www-jp.mysql.com/から任意のバージョンのMySQLをダウンロードします。
(今回は、MySQL-5.5.24をダウンロードしました。)

ダウンロードしたファイルを解凍して「/usr/local」に配置します。
Apache・PHPとは違いconfigureとかmakeとか必要ない?のかな

ターミナルを起動して今回はroot権限で操作を行っていきます。
$ sudo -s
password:

次にMySQLを実行するためのユーザとグループの確認をしておきます。
# grep _mysql /etc/passwd
_mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false
# grep _mysql /etc/group
_mysql:*:74

上のように表示されていればOKです。
次に配置したディレクトリに移動します。
# cd /usr/local/mysql-5.5.24

MySQLのディレクトリの権限を変更します。
# chown -R _mysql .
# chgrp -R _mysql .

次にデータベースを初期化して権限を再度変更します。
# scripts/mysql_install_db --user=_mysql
# chown -R root .
# chown -R _mysql data

これでMySQL自体は動作できるようになりますが
念のため設定ファイルをコピーしておきます。
# cp support-files/my-medium.cnf /etc/my.cnf

これでMySQLを起動・停止してみてください。
// MySQLの起動
# /usr/local/mysql-5.5.24/bin/mysqld_safe --user=_mysql &

// MySQLの停止
# /usr/local/mysql-5.5.24/bin/mysqladmin -uroot shutdown

起動したらMySQLにログインして「show databases」等、コマンドを打って動作の確認を行ってください。


細かい設定は省いていますがこれで、apache・PHP・MySQLのインストールできると思います。



Mac OS X(Lion)にPHP5.3を手動でインストールする

昨日構築したApache2のwebサーバでPHPを動かせるように
今度はPHPのインストールのやり方。

まず、http://www.php.net/から任意のPHPのバージョンのダウンロードをします。
(今回は、PHP-5.3.13をダウンロードしました。)

ダウンロードしたファイルを解凍して「/usr/local/src」に配置します。

次にターミナルを起動して配置したディレクトリに移動します。
$ cd /usr/local/src/php-5.3.13

次にインストールの設定を行います。Apache2のときと同様、本来はいろいろ設定が必要なところですがとりあえず動くようにします。
$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs

これでエラーがでなければOK。
続けて、コンパイルとインストールを行います。
$ make
$ sudo make install
password:

これでPHPのインストールは完了です。

ただし、このままではPHPをインストールしただけなので次にApacheでPHPを動かすように設定を変更します。

Apacheのhttpd.confファイルを開きます。(viエディタの例です)
$ sudo vi /usr/local/apache2/conf/httpd.conf

PHPの共有モジュールをロードするように以下を追加します。
(自動的に追加されてると思いますが確認まで)
LoadModule php5_module modules/libphp5.so

そのままPHPの拡張子を認識させるためにファイルタイプを指定します。
<IfModule mime_module>
    (途中省略)

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</IfModule>

これで設定は完了です。
修正した内容を保存してApacheを再起動します。

Apacheのドキュメントルートに「phpinfo.php」を作成して
<?php phpinfo(); ?>

http://127.0.0.1/phpinfo.php
これを開いてPHPの状態画面が表示されればOKです。




2012年5月14日月曜日

Mac OS X(Lion)にApache2を手動でインストールする

以前に、Mac OS X(Lion)にApache2+PHPをインストールという記事を書きましたが
これはMacにデフォルトで入っているwebサーバの動かし方だったんで
今度はバージョンを指定して任意のディレクトリにApache2をインストールするやり方。

まず、http://httpd.apache.org/から任意のバージョンのApacheをダウンロードします。
(今回は、Apache-2.2.22をダウンロードしました)

ダウンロードしたファイルを解凍して「/usr/local/src」に配置します。

次にターミナルを起動して配置したディレクトリに移動します。
$ cd /usr/local/src/httpd-2.2.22

次にインストールの設定を行います。本来は細かな設定をしていくところですが
今回は割愛してとりあえずそのままの状態でサーバをインストールします。
$ ./configure

続けてコンパイルを行います。
$ make

最後にインストールを行います。
$ sudo make install
password:

これでApacheのインストールは完了です。

Apache側の設定もいろいろとありますがとりあえず動かします。
$ sudo /usr/local/apache2/bin/apachectl start

これでエラーがでなければOK。
http://127.0.0.1/を開いて「It Works!」が表示されれば完了です。


※以下、私の環境でちょっと戸惑った件
XCode4.3をインストールしていたせいなのかもともとなのかよくわかりませんが
「make」コマンドが使えませんでした。
いろいろ調べた結果、「Command Line Tools」というものをインストールしなければなりませんでした。
これはXCode > Menu > Open Developer Tool > More Developer tools... からダウンロードしてインストールすることができます。
他の人のXCode4.2の環境では「make」コマンドは使えそうなかんじだったんで4.3からかもしれません。





2011年9月26日月曜日

Mac OS X(Lion)にApache2+PHPをインストール

Mac OS XにはWebサーバ(Apache2)とPHP(5.3.6)が既にインストールされていますがデフォルトでは無効となっています。

そこで有効にする手順をメモ程度に。。。
まずはPHPを有効にします。
「ユーティリティ」→「ターミナル」を開き以下のコマンドを入力
sudo nano /etc/apache2/httpd.conf
nanoというエディタがターミナル上で開きます。
カーソルキーで画面を下に移動し以下が記述された行を探します。
#LoadModule php5_module libexec/apache2/libphp5.so
この行の先頭にある「#」を削除します。
nanoエディタを保存して終了します。
(contorl+Xキー → Yキー → Enterキーの順に)

次にApacheを有効にします。
「システム環境設定」→「共有」を開きます。
サービス一覧に「Web共有」の項目にチェックをつけます。
これでWebサーバーが起動します。

あとは適当な場所にphpinfo.phpを作成してWebブラウザからアクセス
正しく有効になっていればPHPの情報が表示されます。