Site cover image

Site icon image htrkwn.dat

Just a htrkwn's personal hobby scrapbook.

😊 リトルサーバーを使ってみた

リトルサーバーは一番安いプランでもSSH接続させてくれるのとてもコスパがいい。

以下自分が遊んだ内容。内容がないよう。

なにはともあれSSH接続しないと始まらない。

SSH構成ファイルの設定

HostNameUserの部分はコントロールパネルを見ながら埋めます。

Host lsv
  HostName hogehoge.lsv.jp
  User fuga
  IdentitiesOnly yes
  IdentityFile "C:\Users\userName\.ssh\id_rsa"
  PasswordAuthentication no
  Port 43292

Host 自由に決めてください(例:lsv)

HostName 自分のアカウントを記入してください

User 自分のユーザーIDを入力してください

IdentitiesOnly yes (→ 公開鍵認証だけを使用するか)

IdentityFile "C:\Users\userName\.ssh\id_rsa" (→ 秘密鍵の場所)

PasswordAuthentication no (→ パスワードでの接続を行うか)

Port 43292 (→ リトルサーバーにはPort 22 でアクセスできません)

ssh lsv

初回接続だと “can't be established.” と確認されるので”yes”を入力。これでcurlコマンドもunzipもターミナルからできるように。

❌(非推奨)Visual Studio Codeの拡張機能「Remote - SSH」で接続する

  1. 拡張機能「Remote - SSH」は有効化しておく
  2. リトルサーバーでSSH接続に必要な公開鍵と秘密鍵は既に発行している
  3. SSH構成ファイルを作成済み(SSH接続する前に)

拡張機能「Remote Development」を入れるとリモート開発に使うだろう拡張機能まるっとついてきます。もちろんピンポイントでインストールしてもいい。

拡張機能を有効にした後、SSH構成ファイルの場所を指定して接続します。次の記事みながら作業しました。

参考

そのままログイン成功。サーバー上で開発できるようになったぞ~!

しかしトラブル発生。

💡
ファイル差分監視機能でかなりのCPUを使うらしいので共同サーバーでの利用はやめた方が吉(2023-08-27追記)

結論:リトライループにはまった

何度か接続していると、リトライループにはまって、Remote-SSH: Kill VS Code Server on Host コマンドでプロセスを殺したり、.vscode-serverを削除したり……微妙な感じもありつつとりあえず接続まではたどりついた……のはいいんだけれど。

Remote - SSH で今後続けるかは微妙なラインかもしれない。

リトライループさえなければいいんだけど回避がうまくできなかった。

なんか怒られそうな気がする。

Gitは使えるのか?

Git自体は入ってるんだけどもバージョンが古いです。

git --version

## output
git version 1.8.3.1

リトルサーバー上にgitリポジトリ作ってローカルからpushしたりpullできたらいいのになというのがやりたいことです。

上の記事のようにGitのベアリポジトリと本番のリポジトリをサーバーに作ってpullしたら更新が楽できるんじゃないかと思ったんですが。

無理だった 😇

pullのところで権限ないですって怒られる。どうして……。

サーバー上にベアリポジトリを--shareオプション無しで作成したの関係あるか…?

と思って後から共有できるようにしてみたけど、多分そうじゃない。

ちょっと自己解決は無理そうでした。ノンベアリポジトリを作ってリモートに指定して、ローカルからpushするは多分できそう(実験してない)。

(20230717追記)

サーバー上に作成したノンベアリポジトリを、初期化だけして空状態だったのが悪かったっぽいです。自分のせいか…………。

git remote -v
origin  /home/XXX/git/myapp.git (fetch)
origin  /home/XXX/git/myapp.git (push)

にリモートリポジトリが追加されている状態で

git fetch origin
git checkout master
git merge origin/master

で解決しました。pullは次のエラーが出てやっぱりできなかったので…。

/usr/libexec/git-core/git-pull:251: /usr/bin/tr: 許可がありません
There are no candidates for merging among the refs that you just fetched.
Generally this means that you provided a wildcard refspec which had no
matches on the remote end.

ノンベアリポジトリをローカルにクローン(20230717追記)
git clone alias:/path/to/repository.git

SSH設定ファイルが既にあるので、ローカルにクローンしてくるときはalias部分をHostに書き換えてクローンできる。

プロジェクト毎のGitユーザーを登録する(20230717追記)

今回おひとり様でしかないし、ここでしか使わないのでローカルオプションをつけて作業。

ユーザー登録しないとgit commitできないので。

git config --local user.name [USERNAME]
git config --local user.email [MAILADDRESS]

// 確認
git config user.name

パーミッション一度に変更したい

てがろぐスキンを作ったついでで一応、表示確認するとき本番に設置したので、一発でサクッとパーミッション変更したかったのでどうやったらいいかChatGPTに聞いて次のscriptファイルを用意しました。unzipは済ませているものとする。

#!/bin/bash

chmod 700 tegalog.cgi
chmod 600 fumycts.pl
chmod 600 tegalog.xml
chmod 600 tegalog.ini
chmod 600 psif.cgi

chmod 705 backup
chmod 705 images

chmod 604 skin-cover.html
chmod 604 skin-onelog.html
chmod 604 tegalog.css

このscript.shに実行権限を与えてコマンドプロンプトで叩いた。設置終わり。

chmod +x script.sh
./script.sh

ターミナル使えるとこういうこともできる……。

phpのコマンドがないって怒られる

which php

## output
/usr/bin/which: no php in (...)

いやPHP入ってるじゃん!? ってなったんですが、PATHが通ってないらしかったので、

これもChatGPTに聞いてSSH接続した後のターミナルで

export PATH=$PATH:/usr/local/php/8.1/bin/

で一時的にパス通しました。

php -v
PHP 8.1.10 (cli) (built: Sep 11 2022 03:05:01) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.10, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.10, Copyright (c), by Zend Technologies

👏👏👏

リトルサーバーの各プログラムのパスはFAQに代表的なものが載っています。(以下引用)

sh /bin/sh または /usr/bin/sh
nkf /usr/bin/nkf
unzip /usr/bin/unzip
tar /bin/tar
gzip /bin/gzip
sendmail /usr/sbin/sendmail
perl /usr/local/bin/perl または /usr/bin/perl
PHP5.4 /usr/local/php/5.4/bin/php または /usr/local/php/5.4/bin/php-cgi
PHP5.6 /usr/local/php/5.6/bin/php または /usr/local/php/5.6/bin/php-cgi
PHP7.0 /usr/local/php/7/bin/php または /usr/local/php/7/bin/php-cgi
PHP7.1 /usr/local/php/7.1/bin/php または /usr/local/php/7.1/bin/php-cgi
PHP7.2 /usr/local/php/7.2/bin/php または /usr/local/php/7.2/bin/php-cgi
PHP7.3 /usr/local/php/7.3/bin/php または /usr/local/php/7.3/bin/php-cgi
PHP7.4 /usr/local/php/7.4/bin/php または /usr/local/php/7.4/bin/php-cgi
PHP8.1 /usr/local/php/8.1/bin/php または /usr/local/php/8.1/bin/php-cgi