Posts Tagged PHP

MacPortsでPHP5、Apache2、MySQL5をインストール

Mac OS X添付のPHPではモジュールがたりないのでMacPortsでPHP、Apache2、MySQL5をインストールしてみた。

パッケージの導入は次の手順で。

$ sudo port install apache2
$ sudo port install mysql5 +server
$ sudo port install php5 +apache2 +mysql5 +pear

MySQLに対する作業。データベースのインストールとデーモンの起動、rootのパスワード設定の順で作業する。

$ sudo -u mysql mysql_install_db5
$ sudo /opt/local/lib/mysql5/bin/mysqld_safe &
$ sudo /opt/local/bin/mysqladmin5 -u root PASSWORD xxxx

, , ,

No Comments

PHP5.2.2をインストール

MacBookにPHP5.2.2をインストールした。必要なライブラリがないのでそれをインストールし、PHPをビルドする。

jpeglibは次の手順でビルドし、インストール。

$ tar zxfv jpegsrc.v6b.tar.gz
$ cd jpeg-6b/
$ ln -s /usr/bin/glibtool libtool
$ ./configure --enable-shared
$ make
$ sudo make install

他のライブラリはお決まりの手順でインストール

$ ./configure
$ make
$ sudo make install

No Comments

昔のデジカメのファイルの日付 解決編

シェルコマンドだけの解決を考えたができそうにないのでPHPのスクリプトで解決した。以下がそのコードです。

exifに関連する関数を使い情報を取得しています。

<?php
// コマンドライン引数で対象ディレクトリを指定
$d = dir($_SERVER['argv'][1]);
// ディレクトリを繰り返し読み込む
while(false !== ($e = $d->read())){
  if(preg_match('/.?\.(jpg)|(JPG)$/',$e)){
    $exif = exif_read_data($_SERVER['argv'][1] . '/' . $e , 0, true);
    if(preg_match('/[pP][iI][cC].?/', $e)){
      $a = preg_grep("/^TimeDate=/",preg_split("/[\s,]+/", $exif["APP12"]['Info']));
      $tt = substr($a[4], 9);
      if(strlen($tt) != 2){
        $t =  $tt - date('Z');
        touch($_SERVER['argv'][1] . '/' . $e, $t);
        echo $_SERVER['argv'][1] . '/' . $e ."->" . date('Y/m/d H:i:s', $t) . "\n";
      }
    }
    if(substr($e,0,3) == 'DSC'){
      $dt = split('[:\ ]',$exif['EXIF']['DateTimeOriginal']);
      $t = mktime($dt[3], $dt[4], $dt[5], $dt[1], $dt[2], $dt[0]);
      touch($_SERVER['argv'][1] . '/' . $e, $t);
     echo $_SERVER['argv'][1] . '/' . $e . '->' . $exif['EXIF']['DateTimeOriginal'] ."\n";
     }
  }
}

$d->close();
?>

No Comments

PHPとMySQLの連携(Windows)

Windows上でMySQL5.0.16とPHP 5.0.3の連携がうまくいかなかった。単純な接続も次のメッセージを表示、拒否される。

Client does not support authentication protocol ...

そこでPHPを最新の5.1.1に入れ替えるとphp_mysql.dllがロードできない。libmysql.dllをc:\Windows\System32にコピーし、うまく動作した。

,

No Comments

PEARをインストール

PEARを使ってみようと試してみるも、うまく動作しなかった。パッケージがないようなのでインストールしようと試みるとファイルをダウンロードした後、全く先へ進む気配がない。

いろいろ調べてみるとMac OS Xに最初から入っているPHPと、自分でソースコードからインストールしたPHPの二つがあり、標準のPHPではうまく導入できるが、自分でインストールしたPHPではうまく導入できなかった。

そこで、新たにPEARを導入し、自分でインストールしたPHPのディレクトリ内にパッケージがインストールされるようにした。

curl http://go-pear.org | php

途中で導入先を設定できるので/usr/local/lib/phpに設定した。

  • インストール作業なのでroot権限で作業します。
  • /usr/bin/pearコマンドは名前を変更しました。

インストールされているパッケージ一覧

# pear list
Installed packages, channel pear.php.net:
=========================================
Package        Version State
Archive_Tar    1.3.1   stable
Console_Getopt 1.2     stable
PEAR           1.4.5   stable
XML_RPC        1.4.4   stable

アップグレード可能なパッケージ一覧

pear list-upgrades

インストール済みパッケージのアップグレード

pear upgrade-all

パッケージのインストール

pear install パッケージ名

PEARが使うhttpのプロキシは次のように設定する。

pear config-set http_proxy サーバ名:ポート番号

プロキシの解除は次の操作。

pear config-set http_proxy none

参考

,

No Comments

PHP 5.1.0をインストール

PHP 5.1.0がリリースされている。早速、以前と同じ要領でMacにインストール。Apache用モジュールも更新されたのでApacheを再起動。

/configure --with-mysql=/usr/local/mysql
--with-apxs2=/usr/local/apache2/bin/apxs
--with-xml
--enable-mbstring
--enable-trans-sid
--enable-exif
--enable-ftp
--enable-zend-multibyte
--enable-dbx
--enable-sockets
--with-gd
--enable-cli
--enable-gd-jis-conv
--with-sockets
--with-jpeg-dir=/usr/local/lib
--with-zlib-dir=/usr/lib
--with-gif-dir=/usr/local/lib
make
sudo make install

No Comments

SQLiteManageで文字化け

PHPで書かれたSQLite用の管理プログラム。
文字コードが混在してしまうからか文字化けが起こる。

どう対応すればよいか不明。
php.iniの設定だけでは対応できないようだ。
自分で作ればいいのか?

,

No Comments

%d人のブロガーが「いいね」をつけました。