RaspberryPiでWEBサーバを作るには?
いつもお世話になっております。
文月しのぶです。
先日「しのぶアクション」のサーバが壊れましたので
手元にあったらRaspberryPiを急遽Webサーバとして
稼働させることにしました。今回はその備忘録です。
……Linuxに興味のない方にとっては
「なんのこっちゃ」な内容となっておりますので悪しからず。
Redhat系しか触ったことのない私が
Debian系Raspbianでウェブサーバを作ったまとめでございます。
<文月名人のRaspberry Piでウェブサーバ>
【1】まずRaspberry Piにログインしてください。
(動画にしてあるので省略しますよ)
[⇒ ※動画がうまく見られない方はコチラをクリック]
【2】下ごしらえとしていろいろインストールしておきましょ。
(A)インストールパッケージを更新しておいたり、
# sudo apt-get update # sudo apt-get upgrade |
# sudo apt-get install yum |
# sudo apt-get install dnsutils # apt-get install mlocate # updatedb |
(※SSHで192.168.5.5から接続したい場合の設定)
# sudo apt-get install ufw # ufw disable (※停止させて) # ufw default DENY (※一旦全部を拒否して) # ufw allow 20 (※FTPデータ転送ポートを開けて) # ufw allow 21 (※FTPコントロールポートを開けて) # ufw allow from 192.168.5.5 to any port ssh # ufw limit ssh (※ブルートフォース対策して) # ufw allow 80 (※HTTPポートを開けて) # ufw enable (※動かす) |
【3】nanoを使ってネットワークを設定します。
(※Ctrl+OからのENTERで保存、Ctrl+Xで終了)
# sudo nano /etc/network/interfaces |
auto lo iface lo inet loopback allow-hotplug wlan0 |
# sudo /etc/init.d/networking reload |
【4】ubuntu系のapacheをインストールします。
(A)aptでインストールして自動起動するようにしておきます。
# sudo apt-get -y install apache2 # sudo update-rc.d apache2 defaults |
# nano /etc/apache2/mods-enabled/dir.conf |
<IfModule mod_dir.c> DirectoryIndex index.php </IfModule> |
# nano /etc/apache2/conf.d/name |
ServerName localhost |
# nano /etc/apache2/sites-enabled/000-default |
DocumentRoot "/var/www/html" |
<Directory "/var/www/html"> Options -Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> |
# service apache2 restart |
【5】ホストの設定もします。私はfumitsuki-webにしますかね。
# nano /etc/hostname |
fumitsuki-web |
# nano /etc/hosts |
192.168.5.6 fumitsuki-web |
【6】続いてPHPとMySQLもインストールします。
いわゆるLAMP環境ってやつ。(Linux+Apache+MySQL+PHP)
# sudo apt-get install php5 # sudo /etc/init.d/apache2 restart # sudo apt-get install php5-mysql # sudo apt-get install mysql-server |
そんなときは、
(1)mysqlもしくはmysqldを一旦ストップします。
# server mysql stop |
# mysqld_safe --skip-grant-tables & |
# mysql -u root |
fumitsukiというユーザーで192.168.5.5からアクセスの場合。
> use mysql > truncate table user;(※一旦全消し) > flush privileges; > grant all privileges on *.* to root@localhost identified by 'password' with grant option; > flush privileges; > GRANT ALL ON *.* TO fumitsuki@"192.168.5.5" IDENTIFIED BY "password"; > quit(※終了) |
# ps aux | grep mysql |
# kill -9 (プロセスID) |
(※Mysqlは起動できたがwebから繋がらない?)
そんなときは、
(1)Mysqlの設定ファイルのbind-addressをコメントアウト
# nano /etc/my.cnf |
# bind-address 127.0.0.1 |
うまくいかない場合はkillして起動
# service mysql restart |
【7】じゃぁ、DNS設定をしましょう。
(A)ubuntu用bindをインストールします。
# sudo apt-get -y install bind9 # cd /etc/bind |
(B)設定ファイルを編集して権限を変えておきます。
# nano /etc/bind/named.conf.options |
options { directory "/var/cache/bind"; allow-transfer { none; }; }; logging { |
# mkdir -p /var/log/named # chown -c bind:bind /var/log/named |
(C)正引き、逆引きそれぞれの設定を最下部に書き加えます。
# nano /etc/bind/named.conf.local |
zone "shinobu-action.com"{ type master; file "/etc/bind/seibiki.zone"; allow-transfer{none;}; }; zone "5.168.192.in-addr.arpa"{ type master; file "/etc/bind/gyakubiki.zone"; allow-transfer{none;}; }; |
(D)正引きの詳細設定。
# nano /etc/bind/seibiki.zone |
$TTL 86400 shinobu-action.com. IN SOA fumitsuki.shinobu-action.com. root.shinobu-action.com. ( 2015103100 ;Serial 7200 ;Refresh 3600 ;Retry 604800 ;Expire 3600 ;Minimum TTL ) IN NS shinobu.action.com. IN A 192.168.5.6 |
(E)逆引きの詳細設定。
# nano /etc/bind/gyakubiki.zone |
$TTL 86400 0.168.192.in-addr.arpa. IN SOA fumitsuki.shinobu-action.com. root.shinobu-action.com. ( 2015103100 ;Serial 7200 ;Refresh 3600 ;Retry 604800 ;Expire 3600 ;Minimum TTL ) IN NS shinobu-action.com. 6 IN PTR shinobu-action.com. |
(F)権限を変えましょう
# named-checkzone shinobu-action.com /etc/bind/seibiki.zone # named-checkzone shinobu-action.com /etc/bind/gyakubiki.zone |
(G)エラーチェック
# named-checkconf /etc/bind/named.conf |
(H)再起動
# sudo service bind9 restart |
(I)正引きチェック
# dig -x 192.168.5.5 |
(J)逆引きチェック
# dig 5.168.192.in-addr.arpa |
【8】ここまできたらサイトにアクセス!
[しのぶアクション]
……どうですか?開けましたか?
さぁ、
これであなたも「しのぶアクション」が開設できちゃうはず。
……PHPとMySQLの使い方とか諸々ぜんぶ割愛!
以上にてよろしくお願いいたします。