ラズパイ3で自宅Webサーバを作ろうとしてみた(まだ途中)
このブログのアクセスも大分減って、xserverへ毎月1080円払うのもマイナスなので、ラズパイ3@自宅サーバを試してみた。
1, SDカードをフォーマットして、2018-11-13-raspbian-stretch-liteをインストール
SD Card Formatterで、フォーマット
Win32DiskImagerで、img書き込み
2, ラズパイ起動したら 色々設定する(sudo raspi-config)。4. localisation optionsから
a, Change Localeから、ja_JP.UTF-8を選択(キーボードと日本語の設定 )
b, Change TimeZoneから、Asia/Tokyoを選択
c, Change Keyboard Layoutから、Generic 105-key(Intl) PC → Other → Japanese → Japanese(OADG 109A) → The default for the keyboard layout → No compose keyを選択(長いよ!)
d, GPUメモリを最小にする(要リブート)
raspi-configで
7 Advance Options > A3 Memory Splitを選択した状態にし、エンターキーを押す。
GPUのサイズを”16”と入力し、OKを押す。(標準は64MB)
3, SSHでwin10から接続
a, raspi-configでSSH有効化
b, 普通にIPアドレス指定で、piユーザでパスワード接続
c, 公開鍵で接続できるようにrootになってから、公開鍵・秘密鍵を作成する(ssh-keygen -t rsa)
d, 公開鍵ファイルを変更する。mv id_rsa.pub authorized_keys
f, 秘密鍵(id_rsa)をwin10に持ってくる。数行の文字列なのでviやcatで開いてコピペでOK
g, # vi /etc/ssh/sshd_config でSSH設定を編集
1 2 3 4 5 6 7 8 9 10 11 12 |
# root接続は許可するがパスワードは駄目(without-passwordでも同じ効果。なぜ二種類あるんだ?) PermitRootLogin prohibit-password # 公開鍵対応 PubkeyAuthentication yes # 秘密鍵のパス AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 # パスワード不可 PasswordAuthentication no # RSAAuthentication オプションはSSHv1用なので、現在は不要。 # sshd再起動 service ssh restart |
sshクライアントに秘密鍵(id_rsaファイル)を使って、ログインできるかテストする
4, piユーザは削除
1 2 3 |
userdel -r pi # userdel: user pi is currently used by process 789 kill 789 |
5, 色々アップデート
1 2 3 4 5 6 |
# ラズベリーパイの「ファームウェア」を最新版にする(要リブート) sudo rpi-update sudo reboot # どのくらいの頻度でやるのが正解なのだろうか・・・。 apt-get update && apt-get upgrade |
6, LAMP環境の構築
http://marchan.e5.valueserver.jp/cabin/comp/jbox/arc112/doc11205.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# ブラウザからIPアドレス直打ちで表示されればインスト完了 sudo apt-get install apache2 -y # php -vでバージョンが表示されればOK。7.0だった。 apt-get -y install php php-dev php-fpm php-gd apt-get -y install php php-mbstring php-pdo php-gd php-xml php-mcrypt apt-get -y install php-mysql # MySQLをインスト apt-get -y install mysql-server # MySQLの初期化。rootのパスワード変更して、すべてYESでOK systemctl start mariadb.service /usr/bin/mysql_secure_installation #最初の「Enter current password for root (enter for none):」は何も入力しないで[Enter]を押下。何かを入力すると、phpmyadminでログイン出来なかった(やり直したらOKだった) mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost' |
WordPressを入れるためのデータベースを作成して、本番サーバからエクスポートしたSQLファイルをsourceコマンドでインポート
1 |
CREATE DATABASE データベース名 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; |
500エラーが出て、画面が真っ白
/var/log/apache2/error.logを見てみると、PHP Fatal error: Uncaught Error: Call to undefined function curl_version() in
curlをインスト
画面は表示されるようなったけど、記事が見つからないっぽい。
404 エラー お探しのページは見つかりませんでした
apacheに、mod_rewriteモジュールが必要らしい。
.htaccessが動いてない?
色々と試してみたけど、新規インストールしたWordPressは問題なく動作しているので、サーバの設定では無さそう。
インポートしたファイルなりWPプラグインの問題か?
phpmyadminからwp_optionsテーブルのsiteurlとhomeカラムを、ローカルのURLにしたらwp-adminで管理画面までは行けた。
プラグインを全部停止したら、普通に表示された。リダイレクト関係のプラグインが怪しい…。
と思ったら、トップ画面以外の記事はThe requested URL /index.php was not found on this server.で表示されない…。
とりあえず、https://IPアドレス直下にDocumentRootしたら普通に動作した。
次は、virtualhostの設定を真面目にしよう。自宅でルータの設定をしないと駄目だし、先は長いな…。