タグ:PHP ( 3 ) タグの人気記事
2013年05月03日の日記、XAMPP覚書
[10:56]

前回は、アップロードファイルを置くディレクトリの権限がわからなかったのですね。
それは置いといて、今回はファイルアクセスの演習でした。同じ問題が発生したと予測しました。
それなのであらためて調べました。

環境は、Mac OS X で XAMPPです。

下記サイト様、参考記事にさせて頂きました。

PHP講座
第9回 パーミッション設定の重要性 (その2)

自宅サーバー Fedora
Apache 実行ユーザーの設定


①まず、WebサーバであるところのApacheのユーザを見てみます。

httpd 自体はユーザ root になってましたが、
実行時のユーザは、どうやら httpd.conf にて設定できるようです。
(/Applications/XAMPP/xamppfiles/etc/httpd.conf)

中に、「User nobody」という行と、「Group nodody」という行があります。
そこを自分用に変更しました。
User i-masawa
Group wheel

②次にアクセスするファイルの権限を見てみます。
今回アクセスするファイルは、「/Applications/XAMPP/xamppfiles/etc/settype.php」です。
以下のコマンドで確認します。

$ ls -al settype.php
-rw-r--r--@ 1 i-masawa admin 541 4 13 15:32 settype.php

始めの2文字から9文字分が権限を表現しています。 -> 「rw-r--r--」
3文字ずつ区切りますと、
・所有者ユーザ(i-masawa)の権限
・グループ(admin)の権限
・その他ユーザの権限
となってます。

各文字の意味は、
・「r」 : 読込(Read)
・「w」 : 書込(Write)
・「x」 : 実行(eXecute) ←今回は出現してませんが。
です。

③以上で解決です。
・ファイルアクセスするプログラムは「httpd」で、ユーザは「i-masawa」
・アクセスされるファイルは「settype.php」で、ユーザは「i-masawa」に合致し、読込権限あり
とのことでOKになったですね。

いやー、マジ UNIX系OS に慣れないと。
今でも非効率を感じてますし。。。
[PR]
by redchant | 2013-05-03 11:35 | 日記
2013年04月28日の日記、権限
[22:13]

PHPのお勉強。
またハマった。。。

今日は、ファイルアップロードフォームを作りました。
サンプルプログラムはいたってカンタンなもの。
「ああ、こういう関数も用意してくれてるんだね、素晴らしいわPHP!」とか思いつつ。

で、ハマったのは、アップロード先のディレクトリの権限についてです。
まだ、UNIX系OSに慣れてないです。

最初は、「~/study/php/upload」というディレクトリにアップロードしようとしました。
で、そのディレクトリの権限も全部つけてやりましたよ。
しかし、ダメでした。

成功した設定では、rootになって、「/Applications/XAMPP/xamppfiles/upload_files」ディレクトリを作成し、
まあ、権限全部つけてやりましたw
で、できました。

ちょっとまだ、なぜ成功したのかわかってません orz
Apacheがどういうユーザで動いているのかなのかな?

Mac OS X (とかLinux)とかの勉強もしないとですが、追いつきません;


[22:23]

明日は、M3です。
「M3」
http://www.m3net.jp/

同人音楽即売会です。
もっと早くPHPの勉強を終わらせようと思ってたのですが。

その後、「絵師100人展」にも行く予定です。
「絵師100人展」
http://www.eshi100.com/

忙しいです。
[PR]
by redchant | 2013-04-28 22:29 | 日記
2013年04月25日の日記、Postfix?
今日は仕事後に整骨院へ行って来ました。
首と背中の左側があまりにも痛くて参ります。。。
仕事にも集中できなかったし。
たぶん、この間の土日のGRANRODEOのライブではしゃぎすぎたせい(ー ー;)
左腕と首の左側に置き鍼をしてもらいました。
その部分がなんか痛むので効いてるのかな?

19時頃、帰宅して食事して、PHPの勉強してました。


c0050550_23335662.jpg「はじめてのPHP、MySQL、Apache」

PHPの勉強はぼちぼちスムーズに進んでいると思います。
今のところは問題ないです。

"PHP"はね!

ハマったのは、PHPからメールを送信するという演習です。
サンプル通りにプログラム打っても、うまくいかないのです。
処理を行った結果、送信先のGMailには届いていませんでした。
PHPからメールを送信する関数はその名も mail。
# 日本語を送信するには mb_send_mail を使わないといけないのかもしれません。
# この本は、国際化対応されてないのが欠点です。それを除けば、良本。
実行すると、うんともすんとも言わず。
そういえば、ログとか全然気にしてこなかったです;
次の記事が重宝しそうです。(環境をMac、XAMPPに置き換えないとですが。)

PHPでのログ出力 まとめ
http://qiita.com/items/8dc9f62b4118186cf2df

あとから知ったのですが、mail関数はboolean値を返すそうです。
ということで、メール送信の成功/失敗くらいは判断出来た訳です。
(サンプルコードには返り値をチェックしてなかったですが。。。)
でも、JavaScriptなどのようにExceptionはないのかな??
エラーを細かく判断したいしたい場合に困ります。
(メアドが違うとかパスワードが違うとか。)

でもまあ、それは置いといて。
どうやったのか忘れてしまったのですが、次のエラーを見ました。

"sendmail: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory"

で、ググったところ、次の記事に当たりました。

Mac OS X (Mountain Lion)で、Postfix(sendmail)の設定を行いコマンドからgmail/icloudアドレスでメールを送る
http://roguer.info/2012/11/21/6094/

同様の設定を行ったところ、PHPからメール送信することに成功しました。
感謝です。

どうやら、Mac では Postfix というメール送信ソフトを使っているそうで、
その Postfix の「構成」やら「設定」やら「サービスの起動」やらが必要のようです。
記事を見ていただくとわかる通り、かなりめんどいです;
「Postfix も XAMPP が管理してくれればいいのに」と思うのは僕だけでしょうか?笑
まあ、OSごとにインストールパッケージを用意してくれてるだけでありがたいので、
そこまで望むのもアレですかね。

# ていうかこの本がカバーするべきとこかな

ということで、時間を喰いました orz
[PR]
by redchant | 2013-04-25 23:36 | 日記