タグ: php を抽出しています。
Total: 96

leopardサーバー構築メモ20090821

ブログ | 2009/8/22 00:40
OSX 10.5.8
Apache 2.2.11
MySQL 5.0.84
PHP5.3.0

[webmin]
http://www.webmin.com/download.html
cd /Applications/webmin-1.480
sudo ./setup.sh
アンインストールは
/etc/webmin/uninstall.sh

[アプリケーション]
cotEditor ...テキストエディタ
http://www.aynimac.com/p_blog/files/article.php?...

[MacPorts]
http://www.macports.org/
パッケージからインストール
/User/kuwa/.bash_profile というファイルを作って、(これ必要なくなってるかも)
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH

Terminalの新しいウインドウで、
sudo port -d selfupdate
sudo port -d sync

[不可視ファイルの表示]
defaults write com.apple.finder AppleShowAllFiles true
killall Finder
非表示
defaults write com.apple.finder AppleShowAllFiles false

[MySQL]
port search mysql5
port variants mysql5
で情報を調べてから、
sudo port install -v mysql5-server
■データベースの作成
sudo /opt/local/bin/mysql_install_db5
cd /opt/local/var/db
sudo chown -R mysql:mysql mysql5
cd /opt/local/var
sudo mkdir run
sudo mkdir run/mysql5
sudo chown -R mysql:mysql run
■自動起動
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

最近のは上記plistが見当たらないので、下記ページを参照に(追記:mysql5-serverをインストールすれば入るみたい)
http://d.hatena.ne.jp/kazu_pon/20090802/p1
cd /opt/local/etc/LaunchDaemons
sudo mkdir org.macports.mysql5
cd org.macports.mysql5
sudo curl -O http://robwilkerson.org/_resources/hotlink/blog/mysql5.wrapper
sudo curl -O http://robwilkerson.org/_resources/hotlink/blog/org.macports.mysql5.plist
sudo chown root:wheel *
sudo chmod 755 mysql5.wrapper
sudo chmod 644 org.macports.mysql5.plist
sudo ln -s /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist /Library/LaunchDaemons/org.macports.mysql5.plist

■webmin設定
/opt/local/lib/mysql5/bin/mysqlshow
/opt/local/lib/mysql5/bin/mysqladmin
/opt/local/lib/mysql5/bin/mysql
/opt/local/lib/mysql5/bin/mysqldump
/opt/local/lib/mysql5/bin/mysqlimport
cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &

MySQL共有ライブラリディレクトリへのパス
/opt/local/lib/mysql5/mysql
Path to MySQL databases directory
/opt/local/var/db/mysql5

■rootパスワードの設定 (webminでも設定できる)
sudo /opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'

■起動と停止
起動
cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &
終了
sudo /opt/local/lib/mysql5/bin/mysqladmin -u root -p shutdown
接続
cd /opt/local/lib/mysql5/bin/mysql -u root -p
/opt/local/bin/mysql5 -u root -p
でもいい。

とりあえず、空のmy.cnfを作成(ないと自動起動しない)
sudo touch /etc/my.cnf

[apache2のインストール]
sudo port -d install apache2

■webmin設定
/opt/local/apache2
/opt/local/apache2/bin/httpd
/opt/local/apache2/bin/apachectl
/opt/local/apache2/conf/httpd.conf
/opt/local/apache2/conf/mime.types

■自動起動
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

[php]
xcodeが古いと、xcode 3.1以上が必要とエラーが出るので
AppleのDeveloper Connectionからダウンロードする。
https://connect.apple.com/

port search php5
port variants php5
で調べてから、
sudo port -d install php5-gd +apache2 +mysql5 +pear

■インストールされたモジュールを調べる
/opt/local/bin/php -m
追加インストール
sudo port install php5-mcrypt
sudo port install php5-curl

■php.ini (/opt/local/etc/php5/php.ini)
cd /opt/local/etc/php5; cp php.ini-production php.ini

この辺りを追加・修正
mbstring.internal_encodeing = UTF-8
date.timezone = Asia/Tokyo
upload_max_filesize = 8M

[PEAR]
■XML_RPC
sudo /opt/local/bin/pear install -f XML_RPC
■Text_Diff
sudo /opt/local/bin/pear install -f Text_Diff
■Cache_Lite
sudo /opt/local/bin/pear install -f Cache_Lite
■Net_POP3
sudo /opt/local/bin/pear install Net_POP3-1.3.7
■Mail_Mime (Net_POP3に必要)
sudo /opt/local/bin/pear install Mail_Mime
■Auth_SASL (Net_POP3に必要)
sudo /opt/local/bin/pear install Auth_SASL-1.0.3

[crontab]
webminで設定(初期のまま)
/usr/lib/cron/tabs

1日1回、時間設定 (システム環境設定「日付と時刻」の自動的に設定は、Offにしておく)
/usr/sbin/ntpdate time.asia.apple.com 1>>/var/log/cron.log 2>>/var/log/cron_error.log

[システム環境設定]
ネットワークを手入力に
省エネルギー設定で、スリープしない、停電後に自動再起動
bluetooth関係は切っておく方が無難

[rootパスワードの設定]
ディレクトリユーティリティにて
編集 > ルートユーザーを有効にする

[BIND] ...LANからドメインでアクセスできるように
ここを参照して、webminで設定
http://earlybirds.ddo.jp/namahage/in...

ネームサーバーの起動には、
sudo /usr/sbin/rndc-confgen -a
をやっとく必要有。

■BINDの自動起動
sudo launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist
終了
sudo launchctl unload -w /System/Library/LaunchDaemons/org.isc.named.plist

プロセスIDを調べる
ps ax | grep named | grep -v grep

自分のマシンのキャッシュクリア
dscacheutil -flushcache

[mecab]
sudo port install mecab @0.96 +utf8only
■ユーザー辞書の追加
http://www.rottel.net/kuwa/34557

[Jcode.pm] (awstats用)
http://openlab.ring.gr.jp/Jcode/index-j.html
ダウンロードして解凍後、
cd Jcode-*
perl Makefile.PL; make
sudo make install
perlのパス
/opt/local/bin/perl

[sleepモードの設定] ... sleepimageファイル容量の節約
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
▼追記 2009/10/17 17:10
Macportのphp5のインストールだけでは、mysqlに接続できなくなっている。
分離されたようだ。下記で追加インストール。
sudo port install php5-mysql

さらに、php.iniを修正する必要あり。
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
pdo_mysql.default_socket= /opt/local/var/run/mysql5/mysqld.sock
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
mysql.default_port = 3306

▼追記 2009/10/20 13:40
mbstringが入ってないじゃないか...
sudo port install php5-mbstring

比較してみると、これまで入っていたもので入らないものがたくさんある。
sudo port install php5-exif
sudo port install php5-curl
sudo port install php5-openssl
sudo port install php5-ftp
sudo port install php5-iconv
sudo port install php5-zip
sudo port install php5-dba
sudo port install php5-calendar
sudo port install php5-gettext
sudo port install php5-posix
sudo port install php5-sorp
sudo port install php5-sqlite

intval()は、-2147483648 ~ 2147483647

ブログ | 2009/8/14 23:17
twitterAPIで、idを基準にあれこれ取得しようとしてたのだけれど、どうも上手くいかない。
PHPのintval()が原因だった。

twitterの投稿idは、既に3301888271とかになっている。intvalの上限を超えてた。考えたこともなかったけれど、整数化は、intvalはやめて、floatvalを使うようにしようと思う。
$v = floor(floatval($v));

こんな関数でも入れとくか。(検証してないけど)
function int($v){
 return floor(floatval($v));
}

今日の始まりのタイムスタンプ

ブログ | 2009/7/8 11:11
今日の0:00
echo strtotime(date('Y-m-d'));

今日以外は、こうするかな。
$d = getdate();
$yesterday mktime(0,0,0,$d['mon'],$d['mday']-1,$d['year']);
$lastMonth mktime(0,0,0,$d['mon']-1,0,$d['year']);

日付を取りたい場合は、前に書いたけれど、
echo date('Y-m-d',strtotime('- 3 month'));
echo date('Y-m-d',strtotime('- 2 weeks'));
echo date('Y-m-d',strtotime('+ 7 days'));
▼追記 2009/7/8 11:13
PHPを書いた時は、勝手にタグに関数名が入ったりしたら嬉しいな。

正規表現でエンコードされたURLをデコードする。

ブログ | 2009/7/7 00:17
FirefoxでwikipediaのURLをコピペすると日本語がエンコードされている。そういったURLがペーストされた時、それらを正規表現でデコードするのである。

function f_urldecode($str){
 return preg_replace_callback('/(https?:\/\/[a-zA-Z0-9_\(\)\.\/\~\%\:\#\?=&\;\-\+\,]+)/iu',
 create_function(
   '$matches','return urldecode($matches[0]);'
 ),
 $str);
}

URL関係は、エンコードしたり、デコードしたり忙しい。

list($a,$b,$c) = '';

ブログ | 2009/7/3 10:14
で空の変数ができるのかなあ。

$a = $b = $c = '';
とどっちが短いのかなあ。

フォーム、$_POSTで受け取ったデータの最初の処理

ブログ | 2009/7/1 12:09
MySQLで処理する準備として、
foreach(array('name','age') as $fk){
 $post[$fk] = isset($_POST[$fk]) ? $_POST[$fk] : '';
 $$fk = m($post[$fk]);
}
これを定番としとくか。(mは、mysql_real_escape_string)

必要なfieldをforeachで回して、
$nameや$ageにエスケープされた文字が入り、
$postにそのままの必要なデータが用意される。

[ポイント]
1, MySQLで扱う時は、変数で持っていた方が楽。
2, エスケープされてないものも持っていた方が、何かと使う。

だいたい、こんな感じで書いちゃって、
$name = isset($_POST['name']) ? m($_POST['name']) : '';
$nameを使い回しちゃってることが多いのだけれど、変えていってみる。

チョコラPHP

ブログ | 2009/5/18 23:53
という、どんなサイトでも黄色く染めてしまうPHPライブラリなんだか、webツールなんだかを考えているのだけれど、つくりそうにない。

どなたか作って下さい。使わないけど。
タグ

PHP正規表現 パターン演算子u

ブログ | 2009/5/9 21:38
ダニエル・カールが化けるので調べてみた。
preg_replace_callbackで化けていた。

URLの変換は、
$str = preg_replace_callback('/(<a [^>]+?>.+?</a>)|(https?://[^ ^\r\n^<^)^)^ ]+)/i', array($this,'url'), $str);
こんな感じにしていたのだけれど、正規表現内の「^)」「^ 」で化けていたようだ。
で、検索していたら、PHPの正規表現には、UTF-8用の「u」というパターン演算子があるとのこと。
http://jp2.php.net/manual/ja/reference.pcre.patt...

で、uをつけて解決。
$str = preg_replace_callback('/(<a [^>]+?>.+?</a>)|(https?://[^ ^\r\n^<^)^)^ ]+)/iu', array($this,'url'), $str);

▼追記 2009/5/9 21:49
ん、パターン修飾子って言うのか。
| 1 | 2 | 3 | 4 | 5 | 6 | ..... | 11 | 12 |

Rottel内コンテンツ

ユーザー一覧

Rottelとは?
利用規約
開発飲料
利用者の声
ヘルプ
close