Apache+PHP+MySQLのシステムを開発。
これこそWindowsよりUbuntuを使う方が色々いい。
実際のApache+PHP+MySQLの多くはLinuxで動いているからだ。
私はWeb系の作業が多いので,Windowsよりも作業効率がアップしている。
その理由:
・Ubuntu デスクトップ版でも,サーバソフトをインストール出来る。
・UbuntuはLinuxである。
・Ubuntuで WebサーバApacheやPHPやMySQLやPerlを動かすことは,Linuxで動かすことになる。
・WebサーバApacheの多くはLinuxで動いている。PHPやMySQLもLinuxで動いているものが多い。
・UbuntuでのWeb開発は,実際のWebサーバと同じ環境で出来る。
・UbuntuはWindowsの代わりとして十分に使えるほど快適である。またハードウェア認識能力・対応がよい。
・ WindowsとLinuxは別のOSであり,Windowsで開発すると細かいところが色々違うので,OSが違うことによる問題が時々起こる。(だから Windows上でLinux環境を再現するためにVMwareとかcoLinuxなどを使うのだがメモリ使用量やハードディスク使用量が多い。当然コンピュータも遅くなる。)
・UbuntuはLinuxなので,サーバとのOSの違いによる問題が起こらない。ソフトのバージョンの違いによるわずかな機能の違いぐらい。
・Ubuntuの方がApache+PHP+MySQLの開発環境を作るのが簡単。
sudo apt-get install apache2 php5 php5-gd mysql-server php5-mysql phpmyadmin
と端末から実行するだけで,環境が完成する。(途中,phpMyAdmin のrootのパスワード設定をする必要はあるが。) WindowsにXAMPPを入れるより簡単。ただし,UbuntuにもXAMPPがあるが,この方法の場合はダウンロードすら自動だ。ちなみにUbuntuのサーバ版は,インストール時にLAMPP(XAMPPのLinux版)を入れることができる。
http://localhost/phpmyadmin/
で MySQL管理画面を出せる。root でインストール時に設定したパスワードを入力すれば使える。
・これらすべてもUSBメモリにインストールした環境で作れる。どこでも,完全な開発環境を持ち歩けるのだ。
・Ubuntuなら,ウェブサーバ上のファイルをローカルのファイルと同じ様に扱える。(正確には GNOMEの機能)
・テキストエディタは GEdit , Bluefish , Scream , gPHPEdit , Geany というのがある。これらは apt-get install bluefish screem gphpedit geany で全部入れることとが出来ます。
・HTMLのWYSIWYG編集ソフトとして seamonkeyのcomposerが便利。 mozilla(Netscape)の後継。WYSIWYG はワープロ風に編集できることをいう。WYSIWYG=ワープロでほぼ間違いない。 sudo apt-get install seamonkey で入れることが出来ます。
・画像の加工ソフトは GIMP がある。
もちろん,これらのソフトウエアは,すべてUbuntuのパッケージ管理下にあるので,セキュリティの更新対象である。
参考:
PHPの設定ファイルの位置や上限メモリ量設定方法:
[PHPの使用メモリの上限設定変更Windows・Linux(Ubuntu/Debian/Fedora/CentOS)・FreeBSD]
おまけ:
UbuntuでのApache 設定入門
UbuntuはDebian系なのでApache 設定ファイルは以下の通り。
(RedHat系とは ディレクトリ位置やファイル構成が違う。)
ウェブサーバApache2の主な設定ファイルの編集:
http://localhost/ のディレクトリの設定とかはこれ
sudo gedit /etc/apache2/sites-available/default
Apache2 全般の設定ファイルはこれ。
sudo gedit /etc/apache2/apache2.conf
他の設定ファイルはディレクトリ
/etc/apache2
に色々ある。まぁ,あまり使わないけど。
Apacheのモジュールの有効無効はコマンドで。
例えば,php5モジュールを有効に
sudo a2enmod php5
php5モジュールを を無効にするなら
sudo a2dismod php5
これらのコマンドは,下記のディレクトリにシンボリックリンクを作るだけなのですが,それ以外に,モジュール間の依存関係を認識して関連する複数のモジュールをセットで有効・無効の処理をしてくれます。
有効なモジュールの一覧表示:
ls /etc/apache2/mods-enabled
*.load が本体。*.confが設定ファイル。
インストールされているモジュールの一覧表示:
ls /etc/apache2/mods-available
サイトも同様に sudo a2ensite サイト名とか sudo a2dissite サイト名 で有効無効ができる。
一覧も同様に ls /etc/apache2/sites-enabled とか ls /etc/apache2/sites-available でみれる。
これらは1つのコンピュータで複数のウェブサーバを構築する場合のみ使用。
ウェブサーバの再起動(設定書き換えたり,モジュール変更したらこれを実行)
sudo apache2ctl restart
設定ファイルを書き間違えると,再起動が失敗してしまい,Apacheウェブサーバが停止してしまう。(というか,管理者としてまずい・・・。)
それを防ぐために,設定ファイルに間違いが無いかどうかチェックする方法がある。以下を実行。
sudo apache2ctl -t
実運用しているウェブサーバならば,設定ファイルを書き換えた後はかならずこれで間違いがないかテストした方が安全です。
問題なければ
Syntax OK
と出力される。
この状態ではまだ,設定が適用されていない。設定を完了させるために, sudo apache2ctl restart を実行するのを忘れずに。
Webサーバの実ファイルの位置:
ドキュメントルート http://localhost/ は
/var/www/
CGIディレクトリの http://localhost/cgi-bin/
/usr/lib/cgi-bin/
Apache2 の実行ユーザ名・グループ名は, www-data
オーナーがrootなので書き込みがしにくいので,/var/www/ のオーナーをログインユーザIDにすると書き込みが便利
sudo chown -R ログインユーザID:www-data /var/www/
ウェブサーバによる実行や書き込みなどの設定はグループのパーミッション(属性)の設定で行います。(グループ名www-dataになるので。)
パーミッションを最適化し,基本的なセキュリティを強化。
sudo chmod 750 /var/www/
・オーナー(ログインユーザ)は読み書き実行可能。
・グループ(ウェブサーバ)は読み込みと実行可能。
・その他は何も許可しない。(ログインユーザ以外のユーザやwww-dataグループ以外で侵入をしても,ウェブサイトのハイジャックが出来ない様にする。) ゲストのダイレクトなアクセスを禁止する理由は,PHP等のスクリプトのソースの保護や,.htaccessファイルなどのファイルそのものの保護やディレクトリ別アクセス制限しているのを見せない様にするため。(apache経由じゃないと,ウェブで認証などのアクセス制限していても,丸見えになるため!!)
オーナーはrootのままで sudo chmod a+w -r /var/www をすれば,書き込みが出来るものの,上記の問題が残る。
ログインユーザのグループもwww-data にしておくと,ファイルを作成してもファイルのグループがwww-dataになる。以下を実行すれば,ログインIDのユーザの所属グループをwww-dataに出来る。
sudo usermod -g www-data ログインユーザID
ログインユーザの変更後のグループを有効にするには,一旦ログアウトする必要があります。(ログアウトするまでは,以前のグループに所属したままです。)
アクセスしやすいように ショートカット(シンボリックリンク)をホームディレクトリに作る
cd
ln -s /var/www
apache2はインストールすると,自動起動するのですが,学習用環境の場合は常時起動させておく必要がありません。
自動起動しない設定は sysv-rc-conf というソフトを利用すると簡単に出来ます。
sudo apt-get install sysv-rc-conf
設定方法は
sudo sysv-rc-conf apache2 off
で, apache2 の自動起動を止める事が出来ます。
再度有効にするには,
sudo sysv-rc-conf apache2 on
とします。
このsysv-rc-confは,他にも自動起動するサーバ(デーモンともいいます)をon やoff する事が出来ます。
なおapacheの起動方法は
sudo apache2ctrl start
で出来ます。
終了は
sudo apache2ctrl stop
で出来ます。
※バージョンによっては
sudo apachectrl start
で出来ます。
終了は
sudo apachectrl stop
で出来ます。
になります。最近はこちらになったようです。(2012/3/27)
別の書式では,開始は
sudo /etc/init.d/apache2 start
で
終了は
sudo /etc/init.d/apache2 stop
で出来ます。