Site cover image

Site icon imagehtrkwn.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ファイルを用意するなどした。コマンドはchmodを使用する。必要な分だけ書く。

#!/bin/bash

chmod 700 hogehoge

この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

(2024/04/01追記).bashrcにalias設定した。

# User specific aliases and functions

alias php81='/usr/local/php/8.1/bin/php'

反映させる。

$ source ~/.bashrc
$ php81 --version
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

php81を入力して何かできるようになった。aliasコマンドで一応確認した。

$ alias
...
alias php81='/usr/local/php/8.1/bin/php'

環境変数のパス通ってるディレクトリの確認方法
// 環境変数の確認
$ echo $PATH

余談、.bash_profileが存在したので、PATHのところに追記したあとsourceコマンド使って反映させたらOKのはず

$ cd ~
$ vi .bash_profile
(省略)

// ↓↓を編集
PATH=$PATH:$HOME/.local/bin:$HOME/bin

// 更新を反映させる
$ source ~/.bash_profile