1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

さくらのvpsを弄ってみた話

Last updated at Posted at 2022-12-17

はじめに

この記事は東京高専プロコンゼミ① Advent Calendar 2022の13日目の記事です.
※12/17日に書き始めましたが13日目の記事です(四日遅れ)
※記事を書きながら資料を読みながら動かしてみています。許して

それだけの話

今回たまたまさくらのvpsを使う機会ができたので、記事を書きます。

開始

https://knowledge.sakura.ad.jp/7938/
まず、公式チュートリアルを進めていきます。

公式のサーバー管理ページに入ってログインすると、大抵ブラウザからssh接続でコンソールに接続できるので、PuTTYは使う必要はないと思います。

コンソールに接続してcent os 9のuserに(初めて)ログインしようとしたらログインできなかったので(契約してから半月以上は経ってる)、OSを再インストールして、ログインに成功します。
image.png

試しにサーバーにアクセスさせる!

今回はscratchattachというscratchpythonでアクセスするやつを使ってみます

$ sudo yum install python-pip

まずpipが無かったのでinstallします。
pythonはデフォルトであるらしいのでほっときます。

$pip install -U scratchattach

次にpipscratchattachを入れます
image.png

$ vi test.py

で適当にtest.pyというファイルを作り、

test.py
import scratchattach as scratch3
# session = scratch3.login("oligami", "********") # 自分のパスワード
# なぜか失敗したのでsessionIdを使います。※cookieに保存されている奴 
session = scratch3.Session("********", username="oligami") # sessionIdはバカ長いです
conn = session.connect_cloud("767766792") # project_id
# https://scratch.mit.edu/projects/767766792/
variables = scratch3.get_cloud("767766792") # Returns a dict with all cloud var values
for name in variables.keys():
    value = variables[name]
    print("name: {}, value: {}".format(name, value))
    conn.set_var(name, "-0123456789")
conn.disconnect()

pythonは普段書かなくて不安なので、colabで試した後確認すると成功していました。 ※log
次にviでこれを打ち込んだファイルを作ります。

[oligami@tk2-116-58904 python]$ vi scratchattach_test.py
[oligami@tk2-116-58904 python]$ python scratchattach_test.py
name: あいうえお, value: -0123456789
name: お, value: -0123456789
name: あああ, value: -0123456789
name: あああああ, value: -0123456789
name: お久しぶりです, value: -0123456789
name: いいいい, value: -0123456789
name: 上限テスト2, value: -0123456789
name: 上限テスト3, value: -0123456789
name: 上限テスト4, value: -0123456789
name: 上限テスト5, value: -0123456789
name: 上限テスト6, value: -0123456789
name: にちは, value: -0123456789
name: akura_nekoさん。やっぱり先人はいるものなんですね…, value: -0123456789
name: 上限テスト7, value: -0123456789
name: 上限テスト8, value: -0123456789
name: 上限テスト9, value: -0123456789
name: 上限テスト10, value: -0123456789
name: り内部での最初の10個しかプロジェクト内から変更できないか…, value: -0123456789
name:, value: -0123456789

成功しましたね。
logもしっかり更新されています。

ちなみにこれでscratchのクラウド変数にアクセスできるので、サーバーを一つ用いることでscratchにリアルとサーバー越しに通信させることが可能です。ソケット技術とか言うのですが、地震レーダーの作品とかあった気がします。

次に簡単なサイトを作ります。

チュートリアルに従ってApacheを入れます。

$ sudo yum install httpd

※httpdはcent osでのapacheらしい
次にhttpdを起動します

systemctl start httpd
$ sudo firewall-cmd --add-service=http --zone=public --permanent
$ sudo firewall-cmd --add-service=https --zone=public --permanent

ファイアウォールを何とかします。

$ sudo firewall-cmd --add-service=http --zone=public --permanent

ファイアウォールを再起動します。
ここで試しにサイトにアクセスするのですが、できません。困りましたね。

もしかしたらsudoではなくrootユーザーからやらなければいけなかったのかもしれません。

※rootのpassがわからず苦労しましたが(50分悪戦苦闘した)、ついにできたのでrootでやります。

結果、何も変わりませんでした。

結局、パケットフィルタの設定で「Web(80/443)」を許可したらめっちゃ一瞬で読み込まれて超絶ビビりました。

そしてそのまま進めてHello Worldとだけ表示されたindex.htmlを表示させることに成功しました。

この記事を表示

このサイトをパクり、

phpの元サイトが更新されていたため適当に修正し、実際におこなってみます。

そしてよくわからない文字化けで終わりました。
markdownも認識されていなさそうだし、日本語は文字化けしています。
もう眠いのでここまで!!
続きはまたいつか!
だれかがダメなところ指摘してくれたら続きかくかも!!

最後にphpの中身

md.php
<?php
require_once 'Michelf/Markdown.inc.php';
require_once 'Michelf/MarkdownExtra.inc.php';

if ( isset($_SERVER&#91;'PATH_TRANSLATED'&#93;) ) {
    $file = realpath($_SERVER&#91;'PATH_TRANSLATED'&#93;);
    $ext = substr($file, strrpos($file, '.') + 1);
}

if ( $file and is_readable($file) and $ext === 'md')
    $body = Markdown(file_get_contents($file));
else
    $body = '<p>cannot read file</p>';

header('Content-Type: text/html;');
echo '<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>Markdown Test</title>
  </head>
  <body>
' .
$body
. '  </body>
</html>
';

[追記] 下のリンクはapacheからnginxに変えたうえ、docker内に作り直し、ドメインを登録し、httpsにしたのでアクセスできません。
実際のリンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?