Windows環境でもXAMPPを入れると環境が整うので(その端末なのでFTP不要)、別にLinuxサーバーは必要ではないかもしれないが、Linuxについて慣れるなら、自分で立てるべきだろう。
ということで、Debian7.4を使った試験サーバーの立て方を以下に記す。
なお、サーバーを運用するには、セキュリティーには注意すべきである。
今回は一人で使用する内部試験サーバーとしているが、外部に公開する場合や、内部であっても複数人で使う場合、重要情報を格納する場合は、SSLによる暗号化通信を可能にする等し、セキュリティーを万全にすること。
—–
ハードの準備は略す。
Debianの起動ディスクは、
HTTP/FTP を使って Debian CD/DVD イメージをダウンロードする
からイメージをダウンロードし、入手したisoファイルをDVDに焼いて作る。
isoファイルは3つあるが、インターネットに接続しているマシンにインストールする場合、必要なのは1枚目だけ。
起動ディスクから起動すると、インストールが始まる。
インストールの詳細も略すので、他を当たってほしい。
インストールの後半で、以下のソフトウェアの選択を訊かれる。
・Debianデスクトップ環境
・Webサーバ
・SQLデータベース
・DNSサーバ
・ファイルサーバ
・メールサーバ
・SSHサーバ
・ノートPC
・標準システムユーティリティー
「SQLデータベース」とあるので、MySQLを使いたい場合にこれにチェックを入れて進めてしまいがちだが、これはMySQLではなくPostgreSQLなので、MySQLが必要であれば、別途インストールしなければならない。
「SQLデータベース」にチェックを入れて進めてしまった場合、PostgreSQLが入ってしまうので、PostgreSQLを使用しないのであれば、これを削除する。
# 削除しなくてもいいが、不要なものが入っていると気分的によくない。
apt-get –purge remove postgresql
–purge は、
パッケージに含まれるファイルを完全に削除(設定ファイルや依存関係のあるパッケージも削除)を意味する。
今回の場合の削除なら、
apt-get autoremove postgresql
でもいいかな。
PostgreSQLを削除した後、MySQLをインストールすればよい。
mysql -u root -p
を実行して
bash: mysql: コマンドが見つかりません
と返すなら、MySQLは入っていないね。
以下は各種インストール。
なお、インストール時に
メディア変更:
‘Debian GNU/Linux 7.4.0 _Wheezy_ – Official amd64 DVD Binary-1 20140208-13:47’
とラベルの付いたディスクをドライブ ‘/media/cdrom/’ に入れて Enter キーを押してください
と表示されることがあるので、その場合はDebianのインストールディスクを入れること。
MySQLのインストール。
apt-get install mysql-server
(Debianではなく)MySQLのrootのパスワード設定を求められるので、設定する。
必要なら、phpMyAdminもインストール。
apt-get install phpmyadmin
phpMyAdminのインストール時にMySQLのパスワードが必要となる。
今回のようなDebianのインストールとその他のインストールが続く場合、各々のユーザ名やパスワードを混同しないよう、記録しておくこと。
もちろん、各々のパスワードは別にしておくべきだ。
パッケージ名(ソフトウェア名)を忘れた場合は、以下で探せる。
apt-cache pkgnames ***(パッケージ名)
例えば、
apt-cache pkgnames mysql
として実行すると、
mysql-mmm-agent
mysqltcl
mysql-mmm-common
mysql-query-browser
mysql-server
mysql-mmm-monitor
mysql-navigator
mysql-mmm-tools
mysql-server-core-5.1
mysqltuner
mysql-admin
mysql-client
mysql-gui-tools-common
mysql-proxy
mysql-common
mysql-server-5.1
mysql-client-5.1
が返ってくる(時期により異なる)。
パッケージ名は一部でも構わない。
例えば、
apt-cache pkgnames mysq
とする(最後のlを入れず条件緩和)と、
mysql-mmm-agent
mysqltcl
mysql-mmm-common
mysql-query-browser
mysql-server
mysql-mmm-monitor
mysql-navigator
mysql-mmm-tools
mysql-server-core-5.1
mysqmail-pure-ftpd-logger
mysqltuner
mysql-admin
mysqmail-courier-logger
mysqmail-postfix-logger
mysql-client
mysql-gui-tools-common
mysql-proxy
mysqmail
mysql-common
mysql-server-5.1
mysqmail-dovecot-logger
mysql-client-5.1
が返される。
条件緩和でmysqmail関連が増えているのが分かるだろう。
冒頭の「ソフトウェアの選択」でWebサーバを選択していると、Apacheはインストール済み。
チェックし忘れ等で入っていない場合は、以下で入れよう。
apt-get install apache2
あとは、FTPサーバーを入れて、ファイルを送れるようにしておこう。
apt-get install proftpd
なお、標準では、FTPサーバーにrootでログインできない。
ローカルの試験サーバー等あれば、rootでログインできた方が便利ではある。
/etc/ftpusers
にログイン不可ユーザーの羅列があるので、rootを除去する(または#でコメントアウト)。
さらに、設定ファイルである
/etc/proftpd/proftpd.conf
の最下部に
RootLogin on
を追記し、
/etc/init.d/proftpd restart
でFTPを再起動すると、
ああ、PHPを忘れていた。
apt-get install php5
なお、インストールされているかの確認は、以下のようにすればOK。
aptitude show apache2
aptitude show php5
一通りのインストールが完了したら、そのサーバーのIPアドレス(ローカルのIP)を固定する。
そうしないと、サーバーのIPアドレスが起動の度に変わってしまい、不便だ。
今のLinuxは、GUIでIPアドレスの設定が可能なようだね。
IPアドレスを
192.168.0.10
に固定したとすると、
で
It works!
と書かれたページが見えるはず。
この実体は、Apacheの公開ディレクトリ(/var/www)にある
index.html
である。
これを書き換えていけばサイトが作れるわけだが、属性を変更しないとFTP経由でのファイルの削除や上書きができない。
cd /var
で/varに移動し、
chmod 777 www
を実行しよう。
また、phpを実行するには、標準状態では拡張子が.phpでないとならない。
よって、上述のindex.html(It works!)に
PHPの環境設定情報を出力する関数
<?PHP phpinfo() ; ?>
を書いても、何も起こらない。
拡張子が.htmlでもPHPを実行するようにするには、以下の設定を行う。
/etc/apache2/mods-enabled/mime.conf
の219行目付近に
#AddHandler cgi-script .cgi
とあるが、その下に
AddHandler php5-script .php .html
を追記し、Apacheを再起動。
/etc/init.d/apache2 restart
すると、拡張子.phpと.htmlでPHPが実行できる。
.htmでも実行するためには、
AddHandler php5-script .php .html .htm
とする。
phpMyAdminの管理画面には、
から入ることができる。
設定ファイルは
/etc/phpmyadmin
に、HTMLファイル群は
/usr/share/phpmyadmin
にある。
Apacheの公開ディレクトリ(/var/www)にphpmyadminがないのに
なぜ上記アドレスで見ることができるのか?
これは「エイリアス(Alias)」が張られているため。
/etc/apache2/conf.d/phpmyadmin.conf
の最上部に
—–
# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
—–
という記述があると思うが、それだ。
少し違和感があるかもしれないが、常に編集される公開ディレクトリ(/var/www)にない方が、誤って編集されなくて済むのでよいだろう。
—–
複数Userで複数アカウントでFTPを使用すると、ファイルの所有者が異なるため他人のファイルを上書きできない(550:permission denied)。
自分1人で使う場合や、複数でも同じアカウントを使う場合は問題ないが、そうでない場合は困る。
上にも少し書いた属性変更(chmod)や所有者変更(chown)、グループ変更(chgrp)等を使おう。
—–
Debian関連:Debianのバージョンを調べる
Debian関連:Linux(Debian7.4)でのS.M.A.R.T.の取得方法
Debian関連:(Debian7.4)ミラーリングのスペアディスクの追加と自動リビルド(再構築)
Debian関連:Debian7.4をハードウェアRAIDにインストールする際の設定(RAID1,ミラーリング)
Debian関連:Linuxのシステム情報の確認方法(OS,CPU,メモリ)
Debian関連:Debianのホスト名の設定 (Debian7.4)
Debian関連:Debian7.4のgrub後に起動しない場合(grub-install,update-grub)
Debian関連:Debian CPU確認 (Processor,スペック)
Debian関連:Debian メモリー確認 (Memory,スペック)
翔泳社
売り上げランキング: 143,111
Apache関連:Apache Server Status の設定 (Apache2.2.22 ,Debian7.4)
Apache関連:Apache Server Information の設定 (Apache2.2.22 ,Debian7.4)
Apache関連:ApacheのIndexes設定 (Apache2.2.22 ,Debian7.4)
Apache関連:Apacheのサーバー情報(ServerSignature)非表示設定 (Apache2.2.22 ,Debian7.4)
Apache関連:サーバー情報の表示内容(ServerTokens)変更 (Apache2.2.22 ,Debian7.4)
技術評論社
売り上げランキング: 142,855
MySQL関連:論理集合(和・積・差)
MySQL関連:DATE型にNULLを格納する方法(0000-00-00の回避,MySQL)
MySQL関連:業務サーバーのCPU負荷が100%
MySQL関連:MySQLでのログを取る(Debian,Log)
MySQL関連:「実践ハイパフォーマンス MySQL」を購入
MySQL関連:時,分,秒を[年月日時分秒]から取り出す(MySQL,hour,minute,second,extract,date_format)
MySQL関連:日付比較や日付検索が遅い場合の改善方法(BETWEEN,MySQL)
MySQL関連:(MySQL) key_buffer_sizeの変更 (Debian)
MySQL関連:#1046 – No Database Selected(phpMyAdminでのインポート)
MySQL関連:DBサーバーのハードウェア換装(Debian7.4,MySQL5.5.35)
MySQL関連:激重激遅SQL文の活用方法
MySQL関連:PowerEdgeT105のCPU換装(2コアから3コアに)
MySQL関連:クエリに対して複数コアを使こなさない問題(MySQL)
売り上げランキング: 8,465
—–
phpMyAdmin関連:phpMyAdminのテーマ(スタイル/デザイン)の変更(Debian)
phpMyAdmin関連:phpMyAdminでのインポートファイルの最長を変更(Debian)
—–
自作をやる人でハードウェアに明るいのなら、CPUやメモリ、固定ディスクの交換での違いを見るのが面白いだろう。
より周波数の高いCPUへの換装、よりメモリーを搭載、より速いディスクに交換(SSDへの換装)、等。
ただ、ApacheやMySQLは、標準では低スペックマシン向けの設定となっており、標準の設定では、ハードウェアの能力を全く使い切れない。
今や、余ったマシンであっても、DDR2世代であればメモリーを4GB以上積むことは珍しくない。
メモリーが多いなら、key_buffer_sizeやquery_cache_size、sort_buffer_size等を増やし、違いを見てみよう。
意図的に重いSQL文を実行すれば、差が出てくるかもカモヨ?