apache入らんがな
■apache2がインストールできない。
httpサーバはファイルアクセスの窓口として使うつもりがインストールできない。
いろいろ試して2度ほど環境が壊れてしもた。
やったことをメモしておこう。
$sudo apt update
$sudo apt upgrade
■ファイアウォールの調整
$sudo ufw app list
Available applications:
Apache ※1
Apache Full ※2
Apache Secure ※3
OpenSSH
Samba
※1 Apache: WWW、ポート80 のみを聞く
※2 Apache Full: このプロファイルは、ポート80とポート443の両方を開く
※3 Apache Secure: このプロファイルは、ポート443 のみを聞く
今回は80と443両方だな。
$sudo ufw enable
$ sudo ufw status
Status: active
To Action From
-- ------ ----
Apache ALLOW Anywhere
Apache Full ALLOW Anywhere
OpenSSH ALLOW Anywhere
Samba ALLOW Anywhere
Apache (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
Samba (v6) ALLOW Anywhere (v6)
■apache2のインストール
$sudo apt install apache2
Do you want to continue? [Y/n] Y
ここでエラーで入らない。
Setting up apache2 (2.4.46-1ubuntu1) ...
Can't locate if.pm in @INC (you may need to install the if module) (@INC contains: /etc/perl /usr/local/lib/aarch64-linux-gnu/perl/5.30.3 /usr/local/share/perl/5.30.3 /usr/lib/aarch64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/aarch64-linux-gnu/perl-base /usr/lib/aarch64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl) at /usr/sbin/a2enmod line 15.
BEGIN failed--compilation aborted at /usr/sbin/a2enmod line 15.
dpkg: error processing package apache2 (--configure):
installed apache2 package post-installation script subprocess returned error exit status 2
Processing triggers for ufw (0.36-7) ...
Rules updated for profile 'Apache'
Rules updated for profile 'Apache Full'
Rules updated for profile 'OpenSSH'
Rules updated for profile 'Samba'
Skipped reloading firewall
Processing triggers for systemd (246.6-1ubuntu1.1) ...
Processing triggers for man-db (2.9.3-2) ...
Processing triggers for libc-bin (2.32-0ubuntu3) ...
Errors were encountered while processing:
apache2
E: Sub-process /usr/bin/dpkg returned an error code (1)Setting up apache2 (2.4.46-1ubuntu1) ...
Can't locate if.pm in @INC (you may need to install the if module) (@INC contains: /etc/perl /usr/local/lib/aarch64-linux-gnu/perl/5.30.3 /usr/local/share/perl/5.30.3 /usr/lib/aarch64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/aarch64-linux-gnu/perl-base /usr/lib/aarch64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl) at /usr/sbin/a2enmod line 15.
BEGIN failed--compilation aborted at /usr/sbin/a2enmod line 15.
dpkg: error processing package apache2 (--configure):
installed apache2 package post-installation script subprocess returned error exit status 2
Processing triggers for ufw (0.36-7) ...
Rules updated for profile 'Apache'
Rules updated for profile 'Apache Full'
Rules updated for profile 'OpenSSH'
Rules updated for profile 'Samba'
Skipped reloading firewall
Processing triggers for systemd (246.6-1ubuntu1.1) ...
Processing triggers for man-db (2.9.3-2) ...
Processing triggers for libc-bin (2.32-0ubuntu3) ...
Errors were encountered while processing:
apache2
E: Sub-process /usr/bin/dpkg returned an error code (1)
perlとかに問題あるの・・・?
/usr/sbin/a2enmod line 15.って。。。
なにやらa2enmodがperl使ってるな?今回は深追いするの疲れたので
ペンディングにするわ。うまくいったら続きを。。。
a2enmod は、apache2構成内で指定されたモジュールを有効にするスクリプトです。
これは、/ etc / apache2 / mods-enabled内にシンボリックリンクを作成することに
よって行われます。
同様に、a2dismodこれらのシンボリックリンクを削除して、モジュールを無効にします。
モジュールを有効にすることはエラーではありません。
はすでに有効になっている、またはすでに無効になっているものを無効にする。
多くのモジュールには、.loadファイルに加えて、関連する.confファイルがあることに注意してください。
モジュールを有効にすると、構成ディレクティブが.confファイルにディレクティブとして配置されます。
いったん削除しておこう
$ sudo apt remove apache2
$ sudo apt autoremove
$ cd /var/lib/dpkg/info
$ ls apache*
apache2.list apache2.postrm
$sudo mv apache* /tmp
$ sudo dpkg --configure -a
※これって綺麗に消えてるのかな?
2回目インストールしても設定ファイルとかが入らないのだが。。
ちなみに設定しようと思っているメモは残しておこう。
httpd.conf
・oresamaにアクセスするとIDとパスワードを聞いてくる
・oresama以下のシンボリックリンクもアクセスできるようにする
これでNASサーバのファイルをブラウザ経由でアクセスできるので。。
<Directory "/var/www/html/oresama/">
AllowOverride None
Order allow,deny
Allow from all
Options FollowSymlinks
Options Indexes FollowSymLinks
IndexOptions +FancyIndexing +NameWidth=* +Charset=UTF-8
AuthType Basic
AuthName "erina Please input ID & Password"
AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
<Limit GET POST>
require valid-user
</Limit>
</Directory>
apache2インストールの解決方法を探すか。。
あれ?シンボリックリンク共有できんやん。
sambaも立ち上げたし、NASもマウントしたのでwindowsからRaspberryPi4経由でNASをアクセスしてみるか、と思いさっそく[symbolic link]設定してアクセスでアクセス不可!管理者に問い合わせろと。管理者おれやん。
1.NASのマウントポイントに向けシンボリックリンクを張る。
$cd /home/[New_user]
$sudo ln -s /mnt/oresama1 oresama1
$ls -l
lrwxrwxrwx 1 root root 14 Jan 28 07:01 oresama1 -> /mnt/oresama1/
2.sambaの設定変更
$sudo vi /etc/samba/smb.conf
-----------------------
[global]
# symbolic link setting
unix extensions = no
wide links = yes
-----------------------
を追加してsambaを再起動
$ sudo service smbd restart
windowから共有可能となった。
samba設定で[global]も追記が必要だな。
あれ?タブ補完できんがな。
新しく作ったユーザーで作り方がまずかったのか?/homeにユーザディレクトリが
自動で出来てなかったが、いろいろ不都合が出てきた。
ログインすると$プロンプトだけやし(これはこれですっきりしていいけど)
って、これシェルがbashじゃないじゃん。
なので、キーボードでタブ補完やコマンドヒストリ↑キー機能が使えない。
1.まずsudoが使えるように
[USER_NAME]をsudoグループに追加する
$ sudo gpasswd -a [USER_NAME] sudo
2.ubuntuユーザから起動ファイル持ってきた。
$cd /home/[USER_NAME]
$sudo /home/ubuntu/.profile .
$sudo /home/ubuntu/.bashrc .
3./etc/passwd
/etc/passwd ってどうなっとるん?
$sudo vi /etc/passwd
やっぱ、/bin/sh になってる。
[New_User]:x:1001:1001::/home/[New_User]:/bin/sh
↓
[New_User]:x:1001:1001::/home/[New_User]:/bin/bash
/bin/bashに変更してOK
以降は調べたのでもったいないからメモっておく。
■補完機能を使えるようにする
LinuxでTab補完ができないのはシェルがcshとか古いものになっている場合が多い
そもそもbash-completionがインストールされていれば問題なくすぐ使える。
入っていない場合
$sudo apt-get install bash-completion
でインストールして
補完機能を使えるようにするには”/etc/bash.bashrc“に”/usr/share/bash-completion/bash_completionを
読み込む設定を行います。
--------------
# enable bash completion in interactive shells
#if ! shopt -oq posix; then
# if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion ←ここのコメント"#"を消す
# elif [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
# fi
#fi
-------------
強引だが、とな。
ちなみにbash起動時に実行される初期化ファイル
ユーザーがログインに成功した後、bashは「ログインシェル」として一般的に以下のような流れでファイルを順次検索し、ファイルが存在していれば実行し起動します。
1./etc/profileを実行
2./etc/profileによって、/etc/profile.dディレクトリ配下のすべてのファイルを実行
3.ログインユーザーのホームディレクトリにある̃/.bash_profileを実行*
4.̃/.bash_profileによって、̃/.bashrcを実行
5.̃/.bashrcによって、/etc/bashrcを実行
例えば、コマンドラインからのbashの起動、suコマンドで別のユーザーになった場合など、ログインシェルとしての起動ではない場合は、5のみが実行されます。
.bashrcファイルはテキストファイルのため、簡単に編集できる。編集しただけでは変更が反映されず、ログインし直すか、次のようにsourceコマンドを使用する必要がる。
$ source .bash_profile
そもそもubuntuユーザでLoginしてbashが使えて[New_User]でログインして使えないのって/etc/passwd をすぐに確認しなかったのが遠回りになった。
少しづつ思い出してきたかな。
RaspberryPi4からNASサーバーマウント
■Linux→NASサーバー(windowでも可能)マウント
らずぱいのMicroSDは今回32GBなのでそんなにファイルを置くことはできないので
RaspberryPi4からNASサーバーをマウントして使ってみる。
1.マウントポイントを決める
/mntにマウントポイントを作る。
$sudo mkdir -p /mnt/oresama1
2.作ったマウントポイントにNASサーバをマウントする。
$sudo mount -t cifs //[NASサーバーのIPアドレス]/[ディレクトリ] /mnt/oresama1 -o user=[ユーザ名],password=[パスワード]
mount: /mnt/oresama1: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.
マウントできん。fileシステムのモード違うかな。
なるほどLinux 側からマウントするだけなら cifs-utils があればOKとのこと。
cifs-utilsをインストール
$sudo apt install cifs-utils
マウントしてみた。
$sudo mount -t cifs //[192.168.1.XX]/public /mnt/oresama1/ -o user=[XXXX],password=[YYYY]
マウントできました。
$ls /mnt/oresama1 で中身を確認
さっそくファイル共有ってとこか?
■ファイル共有機能
window10とファイル共有できるようにsambaを設定。
サービスの稼働状況一覧を確認する
$service --status-all
以下のサービス[+]が稼働しているようだ。
[ + ] apparmor
[ + ] apport
[ + ] atd
[ - ] console-setup.sh
[ + ] cron
[ - ] cryptdisks
[ - ] cryptdisks-early
[ + ] dbus
[ - ] hwclock.sh
[ + ] irqbalance
[ - ] iscsid
[ - ] keyboard-setup.sh
[ + ] kmod
[ - ] lvm2
[ - ] lvm2-lvmpolld
[ + ] multipath-tools
[ - ] open-iscsi
[ + ] plymouth
[ + ] plymouth-log
[ - ] pppd-dns
[ + ] procps
[ - ] rsync
[ + ] rsyslog
[ - ] screen-cleanup
[ + ] ssh
[ + ] udev
[ + ] ufw
[ + ] unattended-upgrades
[ - ] uuidd
sambaは入ってないようだな。。
※Ubuntuのサービスは「/etc/init.d/」フォルダの中で管理しているようです。
$service (コマンド名) status
■sambaのインストール
$sudo apt install samba
After this operation, 133 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
早速設定
■ユーザを作成しておこう。
$sudo adduser ユーザ名
※useradd
はホームディレクトリが作成されない
$sudo mkdir /home/ユーザ名
$ sudo chown ユーザ名:ユーザ名 /home/ユーザ名
$ls -l /home で確認
※adduserコマンドで対話型で作成するとユーザディレクトリもシェルの環境も整うのでadduserコマンドで作成すること。
■設定
共有場所:/home/samba
workgroup = WORKGROUP
/etc/samba/smb.conf に設定を追加
[public]
comment = RaspberryPi4 Server
create mask = 0777
directory mask = 0777
path = /home/samba
read only = No
■設定の確認(エラーがない事)
$testparm
[global]
:
[homes]
:
[printers]
:
[print$]
:
[public]
comment = RaspberryPi4 Server
create mask = 0777
directory mask = 0777
path = /home/samba
read only = No
■ユーザの作成(windowsからアクセスするときのsambaユーザを作成
$sudo pdbedit -a xxxx
■サービスの起動
$sudo service nmbd start
$sudo service smbd start
■起動時に立ち上がるようにしておく
$sudo systemctl enable smbd.service
$sudo systemctl enable nmbd.service
やっぱりLANケーブルうざい
■ネットワーク接続設定
RaspberryPiを立ち上げてSSHが使えるようになったのでもうディスプレイもキーボード
マウスもRaspberryPiに直接接続する必要もなく手元に置かなくいても良い状況になっ
たので置き場所を変えるか!っと思ったのですが、LANケーブルうざくない?せっか
くwifi使えるのだからLANケーブル外しちゃお!って事でwifi設定にチャレンジ。
■sshでwifi設定
いつの間にか一般ユーザで実行可能な便利なCLI操作コマンドnmcliというのが
使われているようなのね。
network-manager パッケージがインストールされていれば
nmcli というコマンドを使用して設定ができるらしい。
早速試しにwifiの設定を行ってみた。
$sudo apt install network-manager
Wi-Fi ネットワークのリストを表示。
$nmcli device wifi list
$nmcli device wifi connect 'SSID' password 'wifi のパスワード' ifname wlan0
ということであっさりwifi接続OKとなりました。
以下nmcli コマンド利用方法のメモです。
便利なコマンドを使うとどこが触られてるかわからないなぁ。
>ネットワークデバイスの状態を確認
$nmcli device status
>ネットワーク(例えば wlan0)を切断する場合には
$nmcli dev disconnect wlan0
>接続したネットワークは、通常、次回からネットワーク検出時に自動的に接続が行われます。これが嫌な場合は、ネットワーク設定を削除。
$nmcli connection delete id SSID
>メニューで設定
$sudo nmtui
まずはラズパイ4
1.はじめに
しばらく触ってなかったRaspberryPI3机の中から引っ張り出してきて、さて何をしようかとWebで情報を見ていたら既にRaspberryPI4が発売されていた。
「へー!スペックもなかなか上がってるし」、さっそく買ってみた。
これでサーバーを立ち上げてみるか・・・って事で少しずつ設定をしていきます。
その備忘録をまず書いていきます。
2.OSを選定
OSはいろいろあるが、専用のディスプレイやキーボード、マウスで使うのも場所をとるので、サーバ単体としてメインPCからのSSHで設定して行く事にした。
OSは「UBUNTU SERVER 20.10」を選択してMicroSD(32GB)に書き込んだ。
32GBが880円位で売ってたので。。
3.起動
MicoroSDをセットして起動したら login:の表示。
え?root のパスワードは? ユーザは? 状態。
ググってみたら、ユーザ:ubuntu パスワード:ubuntu ここからスタート。
あとは、rootのパスワードを設定し無事Login。
$sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
4.細かな設定へ
ここからはまずLANの状態だろ!って事でifconfig叩いたが、入ってない!
$sudo apt install net-tools でifconfig や netstat が使えるようになる。
次にモジュールのバージョンアップを実施
$sudo apt-get update
$sudo apt-get upgrade
少し放置して終了するまで待つ。
各種サーバの設定は次回へ