個人の個人による個人のためのサービスの価値は
と、言うわけでNextCloudです。私はこのNextCloudを中心に、データを各デバイスで共有しています。結構な複合技術なので、イロイロ引っかかりが多くて苦労します。今回はUbuntu22.04のサーバ版を使っています。これは個人的なイメージなのですが、昔ながらのおかたいサービスはRedhat系、おもしろサービスはDebian系が情報が多いイメージかなぁ。まぁどっちがどっちでもなんとかなるけど、どっちも扱えたほうが、出来る子ぶることができます。
と、言うわけで、インストールしたてのまっさらのUbuntuに入れていきます。インストールのときに毎度思うのだけれども、日本のミラーサーバを変更しないといけないなぁってのは、普通気づかないぞ?
ひとまず、いろいろパッケージを最新化&追加しておいて。
sudo apt upgrade -y
sudo apt update -y
sudo apt install build-essential pkg-config tcl -y
再起動して、準備OK!
sudo shutdown -r now
★Webサーバのインストール
と、言うわけで、Apacheをインストールします。nginx?いいんだよ、まだApacheのほうが情報が多いし。
sudo apt install apache2 -y
.htaccessを使うため、mod_rewriteを有効にします。
cd /etc/apache2/mods-available
sudo a2enmod rewrite
NextCloud用の設定をつくっていきます。
vi /etc/apache2/sites-available/nextcloud.conf
~~~ 中身 ~~~
<VirtualHost *:80>
DocumentRoot /var/www/html/nextcloud/
ServerName (自身のIPアドレス)
<Directory "/var/www/html/nextcloud/">
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
</VirtualHost>
~~~ 中身終わり ~~~
そして、作成した設定を有効化します。
cd /etc/apache2/sites-available/
sudo a2ensite nextcloud
sudo a2dissite 000-default
Apacheを、自動起動設定し、起動します。
sudo systemctl enable apache2
sudo systemctl start apache2
起動を確認します。Active: active (running)となっていればOK!
sudo systemctl status apache2
★PHPのインストール
とりま、何も考えずに新しめの8.1でもいれてみます。関連モジュールもね。
sudo apt install php8.1 php8.1-curl php8.1-dom php8.1-gd php8.1-mbstring php8.1-zip php8.1-mysql php8.1-bz2 php8.1-intl php8.1-apcu php8.1-redis php8.1-imagick php8.1-bcmath php8.1-gmp -y
そして、少しパラメータをイジります。
sudo sed -i "s/^max_execution_time = 30/max_execution_time = 60/" /etc/php/8.1/apache2/php.ini
sudo sed -i "s/^memory_limit = 128M/memory_limit = 512M/" /etc/php/8.1/apache2/php.ini
sudo sed -i "s/^session.save_handler = files/session.save_handler = redis/" /etc/php/8.1/apache2/php.ini
sudo sed -i "s@^;session.save_path = \"/var/lib/php/sessions\"@session.save_path = \"tcp://localhost:6379\"@" /etc/php/8.1/apache2/php.ini
スナップショット :stable-20220814
★データベースのインストール
今は、MariaDBがデファクト標準なんだっけ?(Oracleめロクなことしない)
libssl1.1への依存のため、libssl1.1を強引にインストールします。(多分、ホントは良くない)
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
sudo dpkg -i ./libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
rm -i libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb
コレでやっと、MariaDBがインストールできます。
sudo apt install mariadb-server mariadb-client -y
MariaDBを、自動起動設定し、起動します。
sudo systemctl enable mariadb
sudo systemctl start mariadb
起動を確認します。Active: active (running)となっていればOK!
sudo systemctl status mariadb
MariaDBの基本セットアップを行います。
root password:とNew password:とRe-enter new password: 以外は全部デフォルトのままエンターでOK。
てか、パスワードだけだなぁ。まぁコレばっかりは自分で決めるしか無いからね。忘れないでよろしく。
sudo mysql_secure_installation
MariaDBコンソールをひらいて、引き続きNextcloudで使用するユーザ、データベース、権限の追加をします。ココでも、ユーザIDとパスワードを入れるので、自分で決めたものを入れてください。データベース名もね。
ここでは、
ユーザ: nextcloud
データベース名: nextcloud
と、します。
sudo mysql -uroot
CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '[nextcloudユーザに対して設定したいパスワード]';
GRANT ALL ON nextcloud.* TO "nextcloud"@"localhost";
SHOW GRANTS FOR 'nextcloud'@'localhost';
quit;
さらに。Redisをインストールします。
インメモリキャッシュサーバというらしいです。パフォーマンスが上がるのかな?
cd /tmp
wget http://download.redis.io/redis-stable.tar.gz
tar xf redis-stable.tar.gz
cd redis-stable
make
sudo make install
sudo adduser --system --group --no-create-home redis
sudo mkdir /etc/redis
sudo mkdir /var/log/redis
sudo mkdir /var/lib/redis
sudo chown redis:redis /etc/redis
sudo chown redis:redis /var/log/redis
sudo chown redis:redis /var/lib/redis
sudo chmod 770 /var/lib/redis
sudo cp redis.conf /etc/redis
sudo su -c "sed -e 's/^logfile .*$/logfile \"\/var\/log\/redis\/redis.log\"/' -e 's/^dir .*$/dir \/var\/lib\/redis\//' ./redis.conf > /etc/redis/redis.conf"
自動起動設定ファイルを作成します。
sudo vi /etc/systemd/system/redis.service
~~~ 中身 ~~~
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
~~~ 中身終わり ~~~
Redisを自動起動するように設定し、Redisを起動します。
sudo systemctl enable redis
sudo systemctl start redis
起動を確認します。Active: active (running)となっていればOK!
sudo systemctl status redis
★Nextcloudのインストール
現段階では、Nextcloudは24.0.4が新しいっぽいので、それをインストール!
cd /tmp
wget https://download.nextcloud.com/server/releases/nextcloud-24.0.4.tar.bz2
tar xf nextcloud-24.0.4.tar.bz2
sudo mv nextcloud/ /var/www/html/
sudo mkdir /var/www/html/nextcloud/data
sudo chown -R www-data:www-data /var/www/html/nextcloud
意外に、コレだけでOK!下準備のほうがツライ。
★Nextcloudの初期設定
これで、http://(自身のIPアドレス) で、Nextcloudの画面が出ます。
初期設定をしていきます。
管理者ID/PWを決めて、投入!
あとはデーターベースの情報も改めて投入!!さっき、nextcloudとか設定したやつです。
ローカルホストのポートは、3306。つまり、 localhost:3306
そして、インストール ボタンをポチり。
そして、管理者ID/PWを入れてログイン
推奨アプリは、あとからでもお好みで入れられるので、ここはキャンセル。
で、新しいアプリをインストールしたときによく出るやつを、適当にいなして
で、使いたいのでウズウズしてるのは分かるんですが、コンソールに戻って最後の初期設定…(最後なのに初期?)
下記の中身を、config.phpの一番下の ); の上に追加してください。
sudo vi /var/www/html/nextcloud/config/config.php
~~~ 中身 ~~~
'default_phone_region' => 'JP',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'memcache.local' => '\\OC\\Memcache\\APCu',
'redis' =>
array (
'host' => 'localhost',
'port' => 6379,
),
'htaccess.RewriteBase' => '/',
~~~ 中身終わり ~~~
.htaccessファイルを更新します。
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:update:htaccess
パッケージを追加インストールします。
sudo apt install libmagickcore-6.q16-6-extra -y
変更した設定を反映させるためにApacheを再起動します。
sudo systemctl restart apache2
これで、インストールは完了です!まぁ、Sambaなんかを使って、ファイルサーバをマウントしたりも出来ますので、せっかくの、マイ オンラインストレージ!楽しんでください。検閲の心配も、容量の心配も、無用!スマホでの同期もOK!
自由です。
正直、コレだからLinuxは!ってトコロだらけですが、トラブっても粘ればなんとかなるのも良いものです。ところどころ無茶してるトコロは、トラブったトコロ、粘ったトコロ。
もっとスマートな方法が見つかれば、また書くかも。
では、お疲れ様でした。
コメント
コメントを投稿