月日の移ろいとは残酷なもので、この間の僕はお陰様でRubyやPythonにも携わる機会があり、正直PHPへの興味は薄れてきました…。前述の言語や、SIer時代にメインで使ってきたJavaと比べると、言語としての力の差(※1)やスタイルの一貫性(※2)とかでどうしても見劣りを感じてしまうんだよな。まぁそんな偉そうなこと言えるほど使い込んではないですけど。
まあそれでも需要が高い言語ではあるし、メモしておきたい事は溜まっているので、追々書いていきます。ちなみに今日もPHPではありません。今回はSambaの導入です。
尚、OSはCentOSです(5.4以降で確認済)。
試した環境
CentOS 5.4以降本題に入るその前に、VMにLAN内の別マシンからアクセスするには
デフォルトの「NAT」だとVMを動かしているマシン上からしかアクセスできないので、同一ネットワーク内の他のマシンからもアクセスできるようにネットワークアダプタ設定を変更。仮想マシン設定の「ハードウェア」→「ネットワーク アダプタ」の「ネットワーク接続」欄の「ブリッジ」を選択。
Sambaパッケージインストール
# yum install samba
Sambaアクセス用ユーザー作成
sambaユーザーを使用する例。「pdbedit」コマンドはsambaパッケージと共にインストールされる。アクセス用パスワードを聞かれるので入力する。
# useradd samba # passwd samba # pdbedit -a samba new password: retype new password:
Samba設定
smb.confファイルを編集。最低限以下を設定しておけば大丈夫でしょう。各設定項目の意味は何となく分かると思うので割愛。
# vim /etc/samba/smb.conf [global] workgroup = WORKGROUP hosts allow = 127. 192.168. dos charset = CP932 unix charset = UTF-8 display charset = UTF-8 # 任意の名前をどうぞ [share] comment = "share" path = /home/samba/share pubilc = no writable = yes
ファイアウォール設定
Sambaで使用するポートはUDP137・138とTCP139。# vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT # /sbin/service iptables restart
デーモン起動
ついでに自動起動設定もやっちゃいましょう。# /etc/init.d/smb start # /sbin/chkconfig smb on
アクセス確認
Windowsのエクスプローラーのアドレスバーに「\\IPアドレス」と入力してアクセス。アカウント情報を入力すると、晴れて共有ディレクトリに入場できます。ディレクトリ一覧は表示されるが「権限がありません」的なエラーが発生してディレクトリに潜れない場合
SELinuxを無効化してみてください。setenforceコマンドで無効にし、再起動時に有効にならないよう設定ファイルを編集。
# setenforce 0 # vim /etc/sysconfig/selinux SELINUX=disabled
参考
関連エントリ
- LAMP of CakePHP on VMware:構築手順メモ1~CentOS 5.5(or5.6)インストールまで
- LAMP of CakePHP on VMware:構築手順メモ2~CakePHPデコレーション
- LAMP of CakePHP on VMware:構築手順メモ外伝 ~CentOS 6.0環境構築
- LAMP of CakePHP on VMware:構築後のデザート~Apache, MySQL自動起動設定
- LAMP of CakePHP on VMware:構築後のデザート~NTP設定
- LAMP of CakePHP on VMware:MySQL追加設定~日本語設定、DB・ユーザー作成など
- LAMP of CakePHP on VMware:構築後のデザート~phpMyAdminインストール
*
※1仕事しててPHPでイマイチだなと思わざるをえなかった点は以下。
- マルチスレッド機構
Javaライクなやつ。curl_multiはもちろん知ってるけど、あれってスレッド間通信できます? - Selenium WebDriverで、Javaみたいにスタンドアロンで動かせない。
PHPからはPHPエクステンション形式以外のCプログラム使えない事に起因?
※2
関数の引数の順番(in_array()では検索キーが第一引数だけどstrpos()では第二)とか、クラスや関数の名称がアンスコ区切りだったりキャメルケースだったり…
PEARの「HTTP_Request」とかの命名規則って何て言うの?
0 件のコメント:
コメントを投稿