Debian7.4でWEBサーバーを立てる(Apache,MySQL,PHP,phpMyAdmin,FTP)

この記事は約12分で読めます。
スポンサーリンク

Windows環境でもXAMPPを入れると環境が整うので(その端末なのでFTP不要)、別にLinuxサーバーは必要ではないかもしれないが、Linuxについて慣れるなら、自分で立てるべきだろう。

ということで、Debian7.4を使った試験サーバーの立て方を以下に記す。

なお、サーバーを運用するには、セキュリティーには注意すべきである。

今回は一人で使用する内部試験サーバーとしているが、外部に公開する場合や、内部であっても複数人で使う場合、重要情報を格納する場合は、SSLによる暗号化通信を可能にする等し、セキュリティーを万全にすること。

—–

ハードの準備は略す。

Debianの起動ディスクは、

HTTP/FTP を使って Debian CD/DVD イメージをダウンロードする

からイメージをダウンロードし、入手したisoファイルをDVDに焼いて作る。

isoファイルは3つあるが、インターネットに接続しているマシンにインストールする場合、必要なのは1枚目だけ。

起動ディスクから起動すると、インストールが始まる。

インストールの詳細も略すので、他を当たってほしい。

インストールの後半で、以下のソフトウェアの選択を訊かれる。

Debian ソフトウェアの選択

・Debianデスクトップ環境
・Webサーバ
・SQLデータベース
・DNSサーバ
・ファイルサーバ
・メールサーバ
・SSHサーバ
・ノートPC
・標準システムユーティリティー

「SQLデータベース」とあるので、MySQLを使いたい場合にこれにチェックを入れて進めてしまいがちだが、これはMySQLではなくPostgreSQLなので、MySQLが必要であれば、別途インストールしなければならない。

「SQLデータベース」にチェックを入れて進めてしまった場合、PostgreSQLが入ってしまうので、PostgreSQLを使用しないのであれば、これを削除する。

# 削除しなくてもいいが、不要なものが入っていると気分的によくない。

apt-get –purge remove postgresql

–purge は、

パッケージに含まれるファイルを完全に削除(設定ファイルや依存関係のあるパッケージも削除)を意味する。

今回の場合の削除なら、

apt-get autoremove postgresql

でもいいかな。

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

mysql-server-5.5

(Debianではなく)MySQLのrootのパスワード設定を求められるので、設定する。

必要なら、phpMyAdminもインストール。

apt-get install phpmyadmin

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

ProFTPD configuration

なお、標準では、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

に固定したとすると、

http://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が実行できる。

phpinfo()

.htmでも実行するためには、

AddHandler php5-script .php .html .htm

とする。

phpMyAdminの管理画面には、

http://192.168.0.10/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,スペック)

Debian GNU/Linux徹底入門第3版 Sarge対応
武藤 健志
翔泳社
売り上げランキング: 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)

サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)
鶴長 鎮一
技術評論社
売り上げランキング: 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)

SQL ゼロからはじめるデータベース操作
翔泳社 (2013-08-28)
売り上げランキング: 8,465

—–

phpMyAdmin関連:phpMyAdminのテーマ(スタイル/デザイン)の変更(Debian)

phpMyAdmin関連:phpMyAdminでのインポートファイルの最長を変更(Debian)

phpMyAdmin Starter
phpMyAdmin Starter
posted on shattered-blog.com at 14.03.08
Packt Publishing (2012-04-02)

—–

自作をやる人でハードウェアに明るいのなら、CPUやメモリ、固定ディスクの交換での違いを見るのが面白いだろう。

より周波数の高いCPUへの換装、よりメモリーを搭載、より速いディスクに交換(SSDへの換装)、等。

ただ、ApacheやMySQLは、標準では低スペックマシン向けの設定となっており、標準の設定では、ハードウェアの能力を全く使い切れない。

今や、余ったマシンであっても、DDR2世代であればメモリーを4GB以上積むことは珍しくない。

メモリーが多いなら、key_buffer_sizequery_cache_sizesort_buffer_size等を増やし、違いを見てみよう。

意図的に重いSQL文を実行すれば、差が出てくるかもカモヨ?

タイトルとURLをコピーしました