●ラズパイにLubuntu20.04をセットアップする。

まず、RasspiImagerからUbuntuServer20.04をインストール。

まずはお決まり。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get net-tools

//——–Lubuntuのセットアップ

git clone https://github.com/wimpysworld/desktopify.git
cd desktopify/
sudo ./desktopify --de lubuntu

—————————自動ログインするようにする
—————————-sddmの使い方の問題
———————https://ja.linux-console.net/?p=8672

sudo mkdir /etc/sddm.conf.d/
sudo nano /etc/sddm.conf.d/autologin.conf

中身を以下記入

[Autologin]
Session=Lubuntu
User=hogehogesudo

——————cui gui切り替え

sudo systemctl set-default multi-user.target

//—————-リモートデスクトップ有効化

sudo apt-get install -y xrdp xorgxrdp

//================ここから先リモートデスクトップ(クリップボード経由でいろいろできるようになりますね

//—————-ツール各種導入

sudo apt-get install fcitx-mozc fdclone tightvncserver xrdp gddrescue parted gparted netcat cpufrequtils remmina chromium-browser chromium-browser-l10n terminator pcmanfm-qt libc6-dev build-essential i2c-tools git vlc remmina-plugin-rdp remmina-plugin-vnc blueman net-tools netcat

デスクトップにショートカット置くときは

/usr/share/apprications

の下にあるショートカットをコピーする

ショートカットが見つからない場合は実行ファイルを探す

find -iname "xxxxxxx"

-inameオプション=大文字小文字区別なしの意味。


Lubuntuを一通り設定するのはここまで


●サーバにする(Lubuntu導入だけの場合はここまで)

——————————–WEBサーバ(Apache)導入—————————-

sudo apt install apache2 -y

この時点で、外部からhttp://(IPアドレス)にアクセスすると、UbuntuのApacheサーバのデモ画面が出る。

こんな感じ

————————PHPインストール—————–
sudo apt install php libapache2-mod-php -y

//確認
sudo nano /var/www/html/test.php

<?php phpinfo(); ?>

この時点で、外部からhttp://(IPアドレス)/test.phpにアクセスすると、PHPのデモ画面が出る。

こんな感じ

————————–データベースインストール
ーーーーーーーhttps://www.ingenious.jp/articles/howto/raspberry-pi-howto/wordpress-server-setup/#toc8

sudo apt-get install mariadb-server
sudo apt-get install php-mysql
sudo systemctl enable mariadb
sudo systemctl start mariadb

ーーーーーapache2設定——————–https://www.ingenious.jp/articles/howto/raspberry-pi-howto/wordpress-server-setup/#toc8

sudo a2enmod rewrite
sudo systemctl restart apache2
sudo nano /etc/apache2/apache2.conf
ServerName www.ingenious.jp <-- 「# Global configuration」のコメントの下に追記

Options FollowSymLinks <-- 「Indexes」を削除 
AllowOverride All <-- 「All」に修正 
Require all granted
sudo systemctl restart apache2

次にApacheにウェブサーバ上のファイルを変更する権限をつける

webサーバのルート以下(通常デフォールトだと/var/www/html/以下)をapacheが操作する際の権限者(「www-data」ユーザー)で操作可能にする。

sudo chown -R www-data:www-data /var/www/html


これでhtml以下のオーナが全部www-dataになるか(=Apacheが変更権限を持つ)と思います。

あ、ubuntuはいつからか知りませんが、apacheの使用するユーザー名はデフォールトでwww-dataですが、ほかのディストリビューションや、他のwebサーバを使っていると違うものもあるようなのでそしたら調べてください(「apache」のものもある)

ついでの上述だと逆にapacheとroot(sudo)しかwwwを変えられない・・・では不便だっていう場合

adduser USER GROUP

で、USER,GROUPを変更して応用すれば追加可能。

そこまでやって忘れてはいけないのがパーミッション確認。

たぶん、/var/www/html/はパーミッションは755かと。

つまり表記ではrwx r-x r-x、

所持者はフルアクセスだが、グループとそのほかは読み取りと実行のみ。

グループアクセス権で管理する場合、必要に応じて変更必要。

自分はファイル操作はfdcloneを「sudo fd」で起動してDF上からやっちゃうので、コマンドで変えたことはない。

必要ならばこちらを参照してほしい

ーーーーーPHPの設定メモ————–

以下、扱えるファイルの大きさが変わるので設定要注意。

大きなファイルが必要なら変えよう。

/etc/php/./apache2/php.ini
memory_limit = 128M
post_max_size = 40M
upload_max_filesize = 30M

—————-maria-db設定

正直データベースの扱いはよくわかっていないのでこういうもんだと思ってやっている。

バックアップとかレストアくらいしかやらないし・・・

sudo mysql_secure_installation

Enter current password for root (enter for none): <== [Enter]を押します。
Set root password? [Y/n] Y <== rootパスワード設定するため、[Y]を入力します。
New password: <== パスワードを入力します。
Re-enter new password: <== 再度パスワードを入力します。
Remove anonymous users? [Y/n] Y <== 匿名ユーザーを削除するため、[Y]を入力します。
Disallow root login remotely? [Y/n] Y <== リモート接続を拒否するため、[Y]を入力します。
Remove test database and access to it? [Y/n] Y <== 不要なテストデータベースを削除するため [Y]を入力します。
Reload privilege tables now? [Y/n] Y <== これまでに設定した内容を反映するため … Success! [Y]を入力します。

sudo mysql -u root -p


MariaDB [(none)]> grant all privileges on . to root@localhost identified by ‘password‘ with grant option;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> CREATE DATABASE db_wordpress;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON db_wordpress.* TO "wp_Newusername"@"localhost" IDENTIFIED BY "UserNewPassword";
MariaDB [(none)]> quit

赤部分はパスワードを入れる。

●WordPressを導入する(新規:詳しく載せない)

//—–初めてならこのあと、
     wordpressをダウンロードして
     /var/www/html/に配置して
     アクセス権設定して
     初アクセスして
     環境設定をするが。
     ここはwordpressのサーバ移行のメモなので詳しくは載せない。
一応乗せると:


wget https://ja.wordpress.org/latest-ja.tar.gz
tar -xzvf latest-ja.tar.gz
sudo cp -R ./wordpress/* /var/www/html/

http:///wp-admin/install.php
→WEBからアクセスして初期設定

●Webサーバをバックアップから移行するメモ

DBの移行(レストア)

mysql -uユーザー名 -p 復旧データベース < /格納フォルダ/バックアップダンプファイル名

・wordpressの移行(レストア)
移行前のwwwフォルダを圧縮してコピーしてきて→解凍してwwwに配置

ここで外部からIPでアクセスしてみてwordpress画面がうつれば万歳。

そのあと念のため(ファイルのオーナーをApache2に変更。。。)
sudo chown -R www-data:www-data /var/www/html/

●本番環境で公開するための設定

ここは公開するための手続きが分かっていないと何やったらいいかわからないと思います。

———XRDPのポート設定
sudo nano /etc/xrdp/xrdp.ini

port=”****”

の値を変更する。ポートの数値からそれと分かりにくい値にするとよい。

———Firewall設定
sudo apt-get install firewalld firewall-config

・GUIで設定
firewall-config

・cuiで設定
リストを見る:sudo firewall-cmd –list-all
削除:sudo firewall-cmd -–permanent -–zone=public -–remove-port=3389/tcp
追加:sudo firewall-cmd -–permanent -–zone=public -–add-port=3389/tcp
設定の反映:sudo firewall-cmd -–reload

たとえば、リモートデスクトップとWEBサーバを標準ポートで使うならば3389と80をオープンする。
逆にsshとかは閉じる。

●本番環境で公開するための設定#2

ここから先は本番または本番環境を模した仕組みが必要です。

——–IPをスタティックに設定————-
まず、IPを固定設定します。
方法は
・ルータ側で「固定IPの割り振り」機能で固定する
・サーバマシン側で固定する。

サーバマシン側でやるならば、ネットワーク越しで作業して
ミスってマシンが(IP的に)行方不明とかならまだしも
ネットにつながらなくなったとかすると結局めんどいので、
最初からもう一回画面つけてローカルで設定するほうがいいと思う。

——————–Apacheにサーバ名設定

sudo nano /etc/apache2/apache2.conf

中身は以下の通り追加する。gruobal configuationの直下に以下を追加。

Global configuration
ServerName hogehoge.hoge.jp

——————-DDNSの定時登録


sudo nano /etc/crontab

中身は以下の通り。これを有効化するとddnsにIP登録を開始するのでよく考えて行うこと。

*/10 * * * * root wget -q -O - ‘http://free.ddo.jp/dnsupdate.php?dn=XXXX&pw=XXXX’

基本は
「分 時 日 月 曜日 実行ユーザ 実行コマンド」