WHAT'S NEW?
Loading...

Windows7にVirtualBox4でCUIなFedora17を入れてWeb開発環境を作ろう【4/4】

■今度は本当にLAMPですぞ!

前回『LAMPだ!』と言いながらまるでLAMPに触れなかったのはなかなかおもしろかったし興味深かったと思う。何よりも楽しんでいただいて恐縮だYO!
ざまぁねぇっす!!

さて、本題。

とにかくいま直ぐにFedora17CUIを起動して、ログインしよう。
ログインは当然rootでおこなう。何しろユーザがrootしかいないからね。
ちなみにPoderosaなどの端末を使ってログインするとコピペができるから楽すぎて鼻血ブー且つオヤジブーだ。

というわけで、ユーもさっさとログインしちゃいなYO!


■初期設定ですぞ!

【ネットワーク】

ネットワークの設定は
/etc/sysconfig/network-scripts/
にある
ifcfg-p2p1
を開けば確認できる。
  1. # vi /etc/sysconfig/network-scripts/ifcfg-p2p1  
俺のノマド用ノートPCで試してるFedoraでは、以下の様な設定になってるよ。
  1. DEVICE="p2p1"  
  2. UUID="6c946d50-b704-4975-b384-d6a5d5ae98a9"  
  3. NM_CONTROLLED="no"  
  4. BOOTPROTO="dhcp"  
  5. HWADDR="08:00:27:7A:98:69"  
  6. ONBOOT="yes"  
ここには本来、固定IP化させるためにIPADDRやGATEWAYなんかを設定するんだけど、アダプタ側で設定してるので、特に設定し直すことはしない。このままでOKだ。というわけでifcfg-p2p1は閉じよう。

知ってるとは思うけど、viを閉じるには『:q』と順に打ては良い。一部でも変更してしまってる場合、『変更したのに保存しないと申すか!』と言われて終了できない。そういう場合は強制的に『:q!』で終了すれば、なかったコトにしてくれる。『u』を押すと押し多分だけやり直してくれるのでこれでもOK。

次に確認するのはリゾルバだ。
リゾルバは/etc/resolv.confにある。
  1. # vi /etc/resolv.conf  
リゾルバっていうのは『名前解決する際にどこに問い合わせればいいのか』が書いてあるものだ。リゾルバにはスタブリゾルバとフルサービスリゾルバがあるけど、DNSの解説してるわけじゃないので、詳しく知りたかったら適当に自分で調べやがれ。

で、俺の場合はこうなってる感じ。
  1. ; generated by /usr/sbin/dhclient-script  
  2. search xxxxxxxx.com  
  3. nameserver xxx.xxx.xxx.xxx  
  4. nameserver xxx.xxx.xxx.xxx  
※『xxx』は伏字ね。

1行目のコメント見ればわかると思うけど、dhcpが勝手にリゾルバを書きなおしてくれるんだよ。だからカフェとかのパブリックな場所でネットつかってコワーキングするときでも大丈夫ってこと。

リゾルバは特に編集とか必要ないので閉じてしまおう。

あと、NetworkManager。
痒いところに手が届きそうで全然違うところを掻いてくれるという、訳の解らんアプリなんだけど、これ、いろいろググると、結構な割合で停止されてたり消したりされているようだ。中には『NetworkManagerふざけんな!』的に怒ってる人もいた。

俺の場合、NetworkManagerなんかは無視してるから別に何もしないでもOK。
ただ、上記で確認したように、ifcfg-p2p1の設定で『NM_CONTROLLED="no"』ってしておけば問題ない。
※『NM』はNetworkManagerの略だと思ってる

それにNetworkManagerを止めると、NetworkManagerが動いているのが前提で設定されている各種アプリなどがおかしな動きをしたりしてしまうことがあったので、面倒だからNetworkManagerのことはいっそ放置しようぜ。

どうしても止めたいのであれば、
  1. # systemctl stop NetworkManager.service  
  2. # systemctl disable NetworkManager.service  
で止めてもいいけど、自己責任でやっておくれ。
俺はなるべく初期状態から変更しない方向性が好きなので、NetworkManagerは動いてるけど無視してる。

【一般ユーザの追加】

そうそう、現状Fedora17CUIのユーザってrootしかいないので、一般ユーザを追加しようじゃないか。
俺のニックネームはオガーンで、アルファベットで書くとogaaaanだ。
だからogaaaanユーザを作ることとする。
  1. # useradd ogaaaan  
  2. # passwd ogaaaan  
passwdコマンドの後には2回同じパスワードを入力する必要がある。

ユーザ名とパスワードが決まったら今度はグループを追加して、ogaaaanだけがrootになれるように設定しよう。
  1. # usermod -G wheel ogaaaan  
wheelというのがrootになれるグループ。ogaaaanユーザにwheelグループを-Gで追加するという感じだ。
上記のコマンドを打った後、実はこの機能自体は初期状態では無効になっているので、有効化するため、/etc/pam.d/にあるsuファイルを編集しよう。
  1. # vi /etc/pam.d/su  
以下の行がコメントアウトされているので、コメントを外そう。
  1. #auth            required        pam_wheel.so use_uid  

【ファイアウォール停止】

ホストOSからゲストOSにはアクセスできるが、その他の外部のPCからゲストOSへアクセスすることはできないし、どのポートが閉じられてるのかなどいちいち調べるのも面倒だ。
だからいっそのことファイアウォールを止めてしまおう。
  1. # systemctl stop iptables.service  
  2. # systemctl disable iptables.service  
  3.   
  4. # systemctl stop ip6tables.service  
  5. # systemctl disable ip6tables.service  

【SELinux無効化】

SELinuxははっきりいって使わない。なぜなら、極めてウザいから。
それにそもそもrootで作業することが多いわけだし、学生に配布するLinuxなわけでもないので必要ない。だから無駄なもの。止めてしまおう。

/etc/sysconfig/にあるselinuxを編集だ。
  1. # vi /etc/sysconfig/selinux  
SELINUX=enforcing

SELINUX=disabled
に編集して保存だ。
  1. # This file controls the state of SELinux on the system.  
  2. # SELINUX= can take one of these three values:  
  3. #     enforcing - SELinux security policy is enforced.  
  4. #     permissive - SELinux prints warnings instead of enforcing.  
  5. #     disabled - No SELinux policy is loaded.  
  6. SELINUX=disabled  
  7. # SELINUXTYPE= can take one of these two values:  
  8. #     targeted - Targeted processes are protected,  
  9. #     minimum - Modification of targeted policy. Only selected processes are protected.   
  10. #     mls - Multi Level Security protection.  
  11. SELINUXTYPE=targeted  

【ポートの変更】

間違って本番サーバに接続してしまったりするのを避けるため、開発環境ではポートを変更しておくと便利かもしれない。
というわけで、SSHでホストOSから接続されるときにポートを変更しておこうと思う。

通常何も変更しなければSSHは22ポートを使う。これを例えば1122とか8822、8022なんかに変えておけばOKだ。

ちなみにポートってのは0から65535までの全部で65536個あり、そのうち0~1023までが暗黙のうちにゆるく固定されていると認識されていて、その範囲をWell known Port(よく知られたポート郡)と呼ばれている。
更に1024から49151までが、登録済みポートと呼ばれている。そして49152から65535までが、自由に使用出来るポートだ。別にシステム的に何かで区切られているわけじゃなく、人間が勝手にそう区切って読んでいるだけ。

で、自由に使用出来るポートは桁が多いし、OS側が自動で割り振ることが多いので、登録済みポート郡の中から開いているものを勝手に使ってしまおうというわけよ。
今回は8822にしておくよ。

SSHのポート番号やログイン方法、タイムアウトなどを設定するには、/etc/ssh/にあるsshd_configを編集する。
  1. # vi /etc/ssh/sshd_config  
コメントアウトされている
#Port 22

Port 8822
にして保存だ。
  1. port 8822  

【IPv6を無効化】

IPv6はそろそろ陽の目を浴びる頃だとは思うんだけど、BフレッツがIPv6に対応してないとか、いろいろな理由があって全然普及してる気配を感じない。

一部の回線業者では積極的にIPv6導入しているようだけど、ローカルで構築している開発環境にわざわざIPv6を入れる必要はないと思ってるので、IPv6は無効にしてしまおう。
寧ろIPv6が原因で劇的に作業が遅くなるなんてこともあるわけだし。

無効化するには/etc/modprobe.d/にあるblacklist.confを編集だ。
  1. # vi /etc/modprobe.d/blacklist.conf  
このファイルの最下段に以下を追記すればOK。
  1. blacklist ipv6  

【サーバの再起動】

上記の設定を全部一気に反映させるために、Fedora17CUIを再起動させよう。
  1. # sync  
  2. # sync  
  3. # sync  
  4. # shutdown -h now  
syncコマンドはメモリ上のデータをハードディスクに退避させるコマンド。別に打たなくてもいいけど、逆に打ってもいいわけだ。一度で全部退避しないことがあるので3回打ち込んでるプペポ。

■アップデートですぞ!

さぁ再起動が終わったら早速一般ユーザでログインし、suコマンドでrootになってみようじゃないか。
もしrootになれなかったりしたら落ち着いてゆっくり服を脱ぎ外に出て、そのまま全力疾走で走ってこよう。きっと捕まるはずだ。

閑話休題。

rootになったらまず最初にシステムのアップデートをしよう。

アップデートにはyumというコマンドを使う。そしてyumを使う前に、ネットワーク的に近いリポジトリのミラーサイトを自動的に探してくれるプラグインを先に入れよう。
  1. # yum -y install yum-fastestmirror  
次にシステム全体をアップデートだ。
  1. # yum -y update  
『-y』はYes/Noの問いに対して自動的に許可するオプションなので、付けなければ、確認でいちいち止まることになる。不安な人は付けないで実行しよう。

yumでupdateすると結構大量のパッケージが導入、更新される。しばらくまっているうちにCoCo壱番屋のスープみたいなカレーでも食べに行くが良いよ。

■便利ツールですぞ!!

さて、アップデートが終わったら次は便利ツールをひと通り入れてしまおう。便利ツールというより寧ろ必須ツールといってもいいかも。

内訳はこんな感じ。
nkf文字コードコンバータ
expectmkpasswdが入ってるツール集
lvファイルのエンコードに強いエディタ
kccファイルの文字コード判別
convmvファイル/フォルダを再帰的に文字コード変換できる
cmakeマルチプラットフォーム用makeツール
wgetファイルなどのリソース取得
rpmdevtoolsrpmファイルを展開
mailxmailコマンド
whoisIPアドレスから登録情報取得
tcpdumptcpパケットキャプチャ
bind-utildigコマンドが入ってる
p7zip高圧縮ツールの7zip形式を可能とする
tarテープアーカイブ用コマンド

というわけで全部一気に入れてしまおう。
  1. # yum -y install nkf expect lv kcc convmv cmake vim-enhanced\  
  2.         wget rpmdevtools mailx whois tcpdump bind-utils\  
  3.         p7zip p7zip-plugins tar  
行末の『\』は、改行するけどまだコマンドは続くよ、という意味。

■リポジトリの追加ですぞ!!

さて、いろいろ便利ツールかつ必須ツールが入ったところで、今度はyumで使うリポジトリを追加しようじゃないか。

ただこの作業は別に必須ではないので、面倒くさいと思ったらやらなくても良いと思う。
一応説明はしておくけど、面倒くさいよ。

【RPM Forge】

まず、よく知られているリポジトリである、RPMForgeのリポジトリ定義ファイルをインストールしよう。
  1. # yum -y localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm \  
  2.   http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm  
これでRPMForgeのリポジトリはOKだ。

【epel】

yumで直接入れてもいいけど、RPM Forgeとバッティングしてしまって入らない時があるので、手動で入れてみる。

まず本体であるrpmファイルをwgetで取得する。そして取得したrpmファイルを展開し、rpm-gpgとrepoファイルをしかるべき場所に移動、という流れになる。

ソースコンパイルとかファイルのダウンロード、展開などは、/usr/local/src/でやることにしているので、他の場所が良いひとは適宜読み替えてもらいたい。
  1. # cd /usr/local/src/  
  2. # wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm  
rpmファイルのバージョンは適宜新しいものを指定すること。URLのファイル名の直前までをブラウザで見てみれば、なにが最新かすぐに分かる。

次にダウンロードしたこのrpmを展開して、中に含まれている2つのファイルを移動する。
  1. # rpmdev-extract epel-release-6-7.noarch.rpm  
  2. # cd  epel-release-6-7.noarch/  
  3. # mv ./etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 /etc/pki/rpm-gpg/  
  4. # mv ./etc/yum.repos.d/epel.repo /etc/yum.repos.d/  
epelリポジトリはそうしょっちゅう使うわけでもないので、リポジトリファイルを編集し、通常yumを使うときには無効にしておこう。
  1. # vi /etc/yum.repos.d/epel.repo  
以下のように、[epel]内のenabled=1を0に編集して保存だ。
  1. enabled=0  

【remi】

remiというリポジトリはかなり先進的なバージョンのrpmを置いている質の良い公開リポジトリだ。
基本的にはepelと同じ方法でインストールする。
  1. # cd /usr/local/src/  
  2. # wget http://rpms.famillecollet.com/fedora/17/remi/x86_64/remi-release-17-7.fc17.remi.noarch.rpm  
次にrpmを展開して必要ファイルを移動。
  1. # rpmdev-extract remi-release-17-7.fc17.remi.noarch.rpm  
  2. # cd remi-release-17-7.fc17.remi.noarch  
  3. # mv ./etc/pki/rpm-gpg/RPM-GPG-KEY-remi /etc/pki/rpm-pgp/  
  4. # mv ./etc/yum.repos.d/remi.repo /etc/yum.repos.d/  

【キーのマージ】

全部で3つのリポジトリを入れたら、一旦yumでアップデートし、重複したキーをマージしよう。
  1. # yum update  

■今度こそLAMPですぞ!!

【バージョンの確認】

さぁ、LAMPを構築しようじゃないか。
まずはバージョンをチェックだ。
  1. # yum info php  
こんな情報が確認できる。
  1. 名前                : php  
  2. アーキテクチャ      : x86_64  
  3. バージョン          : 5.4.5  
  4. リリース            : 1.fc17  
  5. 容量                : 2.6 M  
  6. リポジトリー        : updates  
  7. 要約                : PHP scripting language for creating dynamic web sites  
  8. URL                 : http://www.php.net/  
  9. ライセンス          : PHP  
  10. 説明                : PHP is an HTML-embedded scripting language. PHP attempts to make it  
  11.                     : easy for developers to write dynamically generated web pages. PHP also  
  12.                     : offers built-in database integration for several commercial and  
  13.                     : non-commercial database management systems, so writing a  
  14.                     : database-enabled webpage with PHP is fairly simple. The most common  
  15.                     : use of PHP coding is probably as a replacement for CGI scripts.  
  16.                     :   
  17.                     : The php package contains the module which adds support for the PHP  
  18.                     : language to Apache HTTP Server.  
これを見ると、updateリポジトリでphp5.4.5が使用可能だということがわかる。
同じようにして、『httpd』『mysql-server』も見ておこう。

【httpd+phpのインストール】

まずはhttpdとphpのインストールだ。面倒を避けるため、予めいくつかあるphpのライブラリもぶち込んでおこう。
  1. # yum -y install httpd php php-devel\  
  2.       php-bcmath php-gd php-imap php-ldap \  
  3.       php-mbstring php-mcrypt php-mysql php-pdo php-pear\  
  4.       php-pspell php-snmp php-soap php-tidy php-xml php-xmlrpc\  
  5.       mod_ssl mod_perl mod_dav_svn  
インストールするパッケージは各々で調整頂いてOKだ。例えばsvnを使わないのであれば、mor_dav_svnは入れなくてOKだし、perlを使ったサイトをApacheで動かさないのであれば、当然mod_perlもいらないわけだ。

【MySQLのインストール】

次はデータベースを入れよう。データベースはMySQLだ。
  1. # yum -y install mysql-server  

【xdebugをインストール】

使わなくてもいいけど使う人は以下のようにしてインストールしよう。
  1. # pecl install xdebug  

【phpDocumentorのインストール】

使わなくてもいいけど使う人は以下のようにしてインストールしよう。
  1. # pear upgrade pear  
  2. # pear install --alldeps phpdocumentor  
# phpdoc -h
と打ち込んでヘルプが出れば成功だ。

【phpunitのインストール】

使わなくてもいいけど使う人は以下のようにしてインストールしよう。
まずはpearチャンネルの追加。
  1. # pear channel-discover pear.phpunit.de  
  2. # pear channel-discover components.ez.no  
  3. # pear channel-discover pear.symfony-project.com  
pear自体のアップグレード。
  1. # pear upgrade pear  
本体と各種ライブラリのインストール。
  1. # pear install phpunit/PHPUnit  
  2. # pear install phpunit/PHPUnit_Story  
  3. # pear install phpunit/PHP_Invoker  
  4. # pear install phpunit/PHPUnit_SkeletonGenerator  
  5. # pear install phpunit/PHPUnit_Selenium  
# phpunit と入力してヘルプが出れば成功だ。

■設定ファイルの編集ですぞ!

次に、php、httpd、mysqlの設定を行う。
まずはhttpdだ。

【httpd】

細かいチューニングは後回しにして、最低限の設定を行う。
  1. # vi /etc/httpd/conf/httpd.conf  
以下のように設定を変更しよう。
ServerNametorhamzedd.com:80
全OptionsIncludes ExecCGI FollowSymLinks
全AllowOverrideAll
ServerSignatureOff
LanguagePriorityjaを先頭にしておく
AddDefaultCharsetコメントアウトする
AddHandlercgi-script .cgi .pl
NameVirtualHost*:80
そして最終行に以下を追加して、/var/www/htmlをブラウザで閲覧可能にしておこう。
  1. <virtualhost *:80>  
  2.   ServerAdmin    root@localhost  
  3.   ServerName     torhamzedd.com  
  4.   DocumentRoot   /var/www/html  
  5. </VirtualHost>  

【php】
次はphpの設定だ。
  1. # vi /etc/php.ini  
以下のように設定を変更しよう。
error_reportingE_ALL & ~E_NOTICE & ~E_STRICT
mbstring.languageJapanese
mbstring.internal_encodingUTF-8
mbstring.http_inputUTF-8
mbstring.http_outputUTF-8
mbstring.detect_orderauto
expose_phpOff
post_max_size1024M
upload_max_filesize1024M
memory_limit1024M
date.timezoneAsia/Tokyo
メモリ関連は搭載されているメモリと相談しながら、可能な限り大きく設定するのがコツだ。
それからもしxdebugをインストールしたなら、以下を最終行に追記しておこう。
  1. zend_extension = /usr/lib64/php/modules/xdebug.so  

【MySQL】

MySQLはなぜか教科書通りにやるとエラーで動かなかったりするので厄介だ。
今回とった方法はかなりアグレッシブでイレギュラーかつエロティックなので、そこんところ予めご理解していただきたい。
  1. # vi /etc/my.cnf  
『symbolic-links=0』の下に以下を追記して保存する。
  1. default-storage-engine=INNODB  
  2. skip-character-set-client-handshake  
  3. character-set-server=utf8  
  4. innodb_file_per_table  
  5. ft_min_word_len=1  
次にMySQで必須なシステム用のデータベースを生成する。
  1. # mysql_install_db  
次にMySQLを一旦起動させる。
  1. # systemctl enable mysqld.service  
  2. # systemctl start mysqld.service  
ここでエラーが出る場合、以下の方法で設定する。
  1. # chown -R mysql:mysql /var/lib/mysql  
  2. # restorecon -R /var/lib/mysql  
  3. # su - mysql -c "/usr/libexec/mysqld --skip-grant-tables"  
ここで一旦別の端末を開きrootになる。
  1. # mysql_upgrade -u root  
  2. # systemctl restart mysqld.service  
この時点で30秒ほど待っても反応がない場合、『Ctrl+C』で停止させて構わない。
新たに開いた端末は閉じ、元の端末に戻り、再度起動してみる。
  1. # systemctl start mysqld.service  
これで起動するはずだ。面倒くせぇなおい(゚Д゚)ゴルァ!!

【MySQLのセットアップ】

さてと次はセキュリティ的な設定をウィザード形式で行うよ。
  1. # mysql_secure_installation  
このコマンドを叩いた後、しばらくEnterで答え、『New password:』が出たら、MySQLへログインするrootのパスワードを2回入力しよう。


次にMySQLへ接続するユーザとか作ってしまおう。
ここでは
ユーザ名sqladmin
パスワードpassword
スコープlocalhost
として設定する。
  1. # mysql -u root -p  
  2. > grant all privileges on *.* to sqladmin@localhost identified by 'password';  
  3. > exit;  
これでOKだ。
試しに今作ったばかりのsqladminユーザでログインして見ると良いかも。

■ホストOSとのファイル共有

よく/var/www/htmlにwebシステムを構築している人がいるけど、/varにはlogを扱う領域があり、ログは大抵肥大化するわけで、1年くらいするとwebがコケてて、原因がログの肥大化によるディスク容量の圧迫とか、ログローテートが正しくローテートできなかったりとか、いろいろな不具合だったりするわけだ。

なので俺は/varにはwebはおかない。
/homeにproduct/、develop/というディレクトリを作り、一般ユーザの権限を与えて、そこにドメイン名のディレクトリを作って管理しているよ。

例えばwww.chinko.comとwww.manco.jpというプロジェクトがあったら、
/home/develop/www.chinko.com/htdocs/
/home/develop/www.chinko.com/logs/

/home/product/www.manco.jp/htdocs/
/home/product/www.manco.jp/logs/
という風に作ってるんだ。

phpMyAdminや、画像専用サーバを開発環境に再現する場合などは、product内に置き、それ以外の開発対象となるものはdevelop/に置く、という感じだ。

そしてこれら、develop/とproduct/を、sambaでホストOSであるWindowsと共有してみようと思う。
sambaで共有すれば、VirtualBoxのファイル共有みたいにわけのわからんパーミッションになったりしないで済む。

というわけで早速やってみよう。
  1. # yum -y install samba  
sambaのインストールはこれでOKだ。
次に共有するディレクトリの設定を行おう。
  1. # vi /etc/samba/smb.conf  
色々ごちゃごちゃと書いてある設定ファイルだけど、大きく分けて2つになる。
  • [global]内
  • それ以外
まずは[global]内の設定を以下のように変更しよう。
workgroupWORKGROUP
hosts allow127. 192.168.51.
securityuser
次に、以下の項目を追記しよう。
  1. [develops]  
  2.         comment = Developments  
  3.         path = /home/develop  
  4.         writable = yes  
  5.         guest ok = yes  
  6.         guest only = no  
  7.         create mode = 0755  
  8.         directory mode = 0755  
  9.         share modes = yes  
  10.   
  11. [products]  
  12.         comment = Products  
  13.         path = /home/product  
  14.         writable = yes  
  15.         guest ok = yes  
  16.         guest only = no  
  17.         create mode = 0755  
  18.         directory mode = 0755  
  19.         share modes = yes  
この際、予め記述されている[homes][printers]はコメントアウトしてもOK。
紛らわしいので俺はコメントアウトしているよ。

で、このsambaは実は、専用のユーザが必要になる。Linuxでのユーザとは別に必要ってことだ。
ちなみにsambaユーザとLinuxユーザを同じ内容にしておけば後が楽になる。

というわけで、Linuxユーザであるogaaaanと同じ内容でsambaユーザを作ってしまおうと思う。
  1. # smbpasswd -a ogaaaan  
Linuxユーザのogaaaanと同じパスワードを2回いれればこれでsambaの設定は終了。
早速起動しよう。
  1. # systemctl start smb.service  
  2. # systemctl enable smb.service  
あとはWindows側でエクスプローラを開き、ロケーションに『\\192.168.56.101\develop\』などと入れて一度だけ表示させれば、ネットワークドライブとして登録可能になる。

俺はWindowsのログインアカウントとLinuxのユーザアカウント、sambaのアカウントなどすべてを同じ内容にしているので、Windowsからログイン作業なしでsambaにアクセス可能だが、Windowsのユーザ名が違う場合、毎回sambaユーザでログインしないといけない。その場合はネットワークドライブの割り当てで『別の資格情婦を使用して接続する』にチェックを入れて、sambaユーザのアカウントを登録しておこう。

ネットワークドライブの設定は、エクスプローラを表示させ、『ALT』キーを押してメニューを表示させた状態で『ツール』>『ネットワークドライブの割当』を開き、任意のドライブ名、フォルダには先程の『\\192.168.56.101\develop\』などと入れて設定しよう。


これをdevelop、productの2個とも行えば、次回から設定しなくてもsambaで接続できるようになる。

ただしWindowsの起動時にはVIrtualBoxは起動してないので、Fedora17CUIのショートカットを作成し、スターとアップに入れておけば問題ない。ショートカットの作成は、VirtualBoxの画面上でFedora17CUIを右クリックすればわかるだろう。


ただ、どうしてもWindows側のネットワークドライブの確認のほうが、VirtualBoxの起動より早くなってしまうため、毎回『ネットワークドライブに接続できませんでした』とバルーンが出てしまうが、Fedora17CUIが起動しきってしまえば問題なく接続できるので、俺は気にしてない。

■hostsですぞ!

さて、これでファイルも共有できたので試しに/var/www/htmlにファイルを置いてみようじゃないか。
直接エクスプローラでsamba越しに開いてもいいけど、/var/www/htmlは共有してないので、Poderosa的な端末で実行しよう。
  1. # cd /var/www  
  2. # chmod ogaaaan:ogaaaan html  
  3. # exit  
  4. $ cd /var/www/html  
  5. $ vi index.php  
中身はこんな感じでOK。
  1. <?php  
  2. phpinfo();  
あとはホストOSであるWIndowsのhostsファイルをちょろっと編集すれば、Windowsのブラウザで閲覧可能だ。
秀丸などのイケてるしヤバいエディタを管理者権限で起動し、c:\windows\system32\drivers\etcにあるhostsを開いて、以下のように追記しよう。
  1. 192.168.56.101  torhamzedd.com  
このhostsファイルは保存した直後に有効となる。
この状態でブラウザでtorhamzedd.comを見ると、PHPの情報が表示されるはずだ。

もし他のプロジェクトを表示させたいなら、ホストOSであるWindowsで、サブドメインを含んだURLをhostsに追記し、ゲストOSであるLinuxで、/etc/httpd/conf.dにバーチャルホストの設定ファイルを置けば良い。設定ファイルをおいたらhttpdを再起動すればOKだ。

仮にxvideos.torhamzedd.comというプロジェクトがある場合、ホストOSであるWIndowsのhostsには
  1. 192.168.56.101  xvideos.torhamzedd.com  
を1行追記すれば良い。
そしてゲストOS側のLinuxでは、rootで/etc/httpd/conf.dにxvideos.torhamzedd.com.confなどの名前でファイルを作成し、以下のように書き込んでおけばOKということになる。
  1. <VirtualHost *:80>  
  2.   ServerAdmin   root@localhost  
  3.   ServerName    xdiveos.torhamzedd.com:80  
  4.   DocumentRoot  /home/develop/xvideos.torhamzedd.com/htdocs  
  5.   ErrorLog      /home/develop/xvideos.torhamzedd.com/log/error.log  
  6.   CUstomLog     /homd/develop/xvideos.torhamzedd.com/log/access.log combined  
  7. </VirtualHost>:  
この設定ファイルはhttpsの起動時に読み込まれるので、httpdを再起動する。
これでOKだ。


■終わりですぞ!!

というわけで、若干駆け足で説明したけど、これでWindows7上のVirtualBoxでFedoraをCUIで動かすことができたはずだ。

部分的にかなり説明不足なところもあるかとは思うけど、興味があれば己が調べてみると良いだろう。俺は俺で勝手に調べてやってる。

ではバイなら。