LightSailとWordPressとSSLの備忘録
特に文章を書くわけではなくサーバ構築の基礎的作業の手元メモです
LightSail周り
https://lightsail.aws.amazon.com/ls/webapp/
- 間違えてAmazonLinuxにしないこと
- トップページに戻りネットワークアタッチを忘れずに
サーバ起動後
sudo apt update
sudo apt upgrade
adduser ke9000
gpasswd -a ke9000 sudo
- 他ユーザ作るなら以下同様
sshとポート
/home/ke9000/.ssh/
nano authorized_keys
- winPCの
ke9000/.ssh/id_rsa.pub
の中身をコピペ
- winPCの
- Lightsail側サイト、ネットワークにポート追加
- 443, 5****(いつもの)
- ufw周り
sudo ufw allow **
- 443, 5****
sudo ufw status
- sshd編集
/etc/ssh/sshd_conf
Port 22
Port 5****
- 設定変更かける前に必ず2セッション開く
sudo systemctl restart sshd
sudo ufw enable
sudo ufw reload
- ここで新ポートログインチェック
- 新ポート用confテンプレ
Host [name] HostName [addr] User ke9000 IdentityFile C:\Users\ke9000\.ssh\id_rsa Port 5**** TCPKeepAlive yes IdentitiesOnly yes
- 接続OKならlighsailコンパネで以下のように設定
色々アプリケーション入れる
- timezone設定
sudo timedatectl set-timezone Asia/Tokyo
- apache2
apt install -y apache2
- php
apt install -y php7.4 php7.4-mysql php-curl php-dom php-imagick php-mbstring php-zip php-gd php-intl
- mysql(5.7)
mkdir dl
cd dl
wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb
sudo dpkg -i mysql-apt-config_0.6.0-1_all.deb
sudo apt update
sudo apt install mysql-server
- 何か聞かれたら
ubuntu bionic
か選択なし
- wordpress
cd /var/www/html/
mkdir [name]
cd [name]
sudo wget https://ja.wordpress.org/latest-ja.tar.gz
sudo tar xvf latest-ja.tar.gz
sudo chown -R www-data:www-data wordpress
←これ忘れると面倒sudo rm latest-ja.tar.gz
- wordpressフォルダやめたいとき
cd wordpress
sudo cp -r * ../
sudo rmdir wordpress
sudo find /var/www/html/[name] -type f -exec chmod 664 {} \;
sudo find /var/www/html/[name] -type d -exec chmod 775 {} \;
MySQL WP用セットアップ
sudo su
mysql -u root -p
pass:rootCREATE DATABSE wordpress
CREATE USER wordpress@localhost identified by 'password';
GRANT ALL ON wordpress.* to wordpress@localhost;
Wordpressアクセス設定
- https://domains.google.com/registrar/ DNS設定をする
cd /etc/apache2/sites-available
sudo cp 000-default.conf [name].conf
sudo nano [name].conf
ServerName [domain] ServerAdmin [mail] DocumentRoot /var/www/html/[name]
sudo a2ensite [name]
sudo apache2ctl configtest
←エラーチェックに超便利sudo nano /etc/php/7.4/apache2/php.ini
以下2行を見つけて書き換える
post_max_size = 1024M upload_max_filesize = 1024M
sudo systemctl apache2 restart
- [domain]にアクセスして初期設定実施
sudo nano wp-config.php
にdefine('FS_METHOD', 'direct');
を書き足す
SSL設定
ref:
sudo apt install certbot python3-certbot-apache
sudo ufw allow 'Apache Full'
sudo certbot --apache
1: [mail] 2: ToS Agree? [A] 3: Info mail? [N] 4: which domain? [All=Enter/Number] 5: HTTP to HTTPS redirect? [1(No)/2(Yes)]
sudo systemctl status certbot.timer
2日ごとの更新チェックsudo certbot renew --dry-run
手動更新
Windows10でWindows Updateに失敗したときの対処メモ
はじめに
この記事は Tokyo City University Advent Calendar 2021 adventar.org の21日目の記事です
昨日は たか
さんの 「政治家の発言、分析してみませんか」
でした
私、情報システム学科とか言いながら卒研でやっていることがこんな形態素分析とか、ディープラーニングとか最近のキラキラした技術ではなく、
音をひたすら情報化して、見ていく地道なものなのでこういうのぱぱっとできるの良いなぁ~~楽しいだろうな~~と思いながら4年経ちました
あっという間で時間がありません、どうしてでしょうね?
今年の話題
実はこのブログ3年間TCUACの為にしか現状使われておらず非常に 勿体ないことになっているんですね
ブログ、書こうと思っても続けられないものだなぁーと思いまして。
なのでせめて今後に役に立つような記事を書ければ良いなと思いまして
今年のテーマは
Windows Update 失敗したとき対処集
です
今まで某家電量販店で某PCショップの修理窓口として3年半やってきまして、 まぁいろんなパソコンの色んなトラブルみて直してきましたが 学生のうちにここまでいろんなパソコンのトラブルを知れたのは良いことだった のかなと思っています
で、その中でもとにかくよく聞く「Windowsの動きがおかしくなった」 これを対処してきて結構自分の中で対処パターンができてきたので 今一度ここで卒業前にまとめておいて、今後に役に立てばいいなというわけです
ほぼ自分用のものではありますが、最初の方はWindowsPCを使う人なら知っていて 損がないことも書いてある気がするので少しお付き合いいただければ嬉しいです
続きを読むお手製インストーラ、作って配ってみませんか?
はじめに
この記事は Tokyo City University Advent Calendar 2020 adventar.org の19日目の記事です
昨日の記事は@ktrtcuk2024
さんの「プロトコール:外国要人の接遇・国際儀礼に関する雑記」でした
プロトコール:外国要人の接遇・国際儀礼に関する雑記gmahr.wordpress.com
プロトコル?プロトコール?と思いましたがどちらもあまり変わらないなと。 意外と「~~マナー」といわれるやつの基本はここにあるのかもしれないとは思いました。
今日の話題
ここを見る人は少なからず何かしらの形でプログラミングはしたことがあるんじゃないかと(勝手に)思っています。
そこで作ったもの、どうやって配ってますか?
そもそもweb用のものなのでApacheにのせて公開
自分のサイトにファイルを置いて公開
アプリケーション公開サイトにファイルをアップロードする
などなどあると思います。
最近だとアプリストアとか充実してるのでそこにファイル投げればビルドしてパッケージにしてくれるものとかもでてきていますね。
さて、ZIPで配る方、利用者が
zipを知らない
zipの開きかたがわからない
エクスプローラを知らない
置く場所がわからない
なんて質問が来るかもしれませんが1つ1つ対応するのは無理ですよね?
そこで、今日の「オススメ」!
です!
これがあればインストールからスタートメニュー登録、デスクトップショートカットの作成まで全部インストーラの画面でやってくれます。便利ですね。
非常に便利なので、本当にいろんなところで使ったことがあると思いますが、よくよく考えてみてください、自分で作ったことってありますか?
僕はこの記事を書くまでありませんでした。難しそうとか、いっぱいコード書かなきゃいけないのか・・・とか心配な方も大丈夫!
すべてGUIでインストーラを作れるアプリケーションがあります!
今回はそれを使ってWindows用ソフトインストーラを作ってみましたのでその方法まとめです。
必要なもの
完成したアプリケーションの実行ファイル(exe)
そのアプリケーションに必要な各種ファイルが入ってるフォルダ(普通は同じ場所に実行ファイルもあると思います)
今回は去年、大学の授業で作った戦車同士が戦うクソゲーをUnityで作っていたのでそのデータをもとにインストーラを作っていきました。
- Inno Setupのインストール
ここから、以下、作り方を書いていきます
インストーラの作り方
1.Inno Setupのインストール
このリンク
からInno Setupをインストールします。
画面下の方に
こんなリンクがあるのでこれを押せばInno Setupインストーラが立ち上がってくるので画面の指示に従ってインストールしてください*1
2. Inno Setupを起動
インストールしたらInno Setupを起動してください。
起動するとこんな画面が出ると思うので
Create a new script file using the Script Wizard
を選んで下さい。そうすると各種入力画面が出てきます
3. 作成ウィザードに従って入力をしていく
(1) アプリケーション情報の入力
最初にこの画面が出ますがnext>
を押してください。
そうするとこんな画面が出てきて上から
Application name(必須): アプリ名 Application version(必須): バージョン Application publisher: 作者名 Application website: 作者のサイト
という感じで入力ができるので登録してください。
(2)アプリケーションのインストール先指定
続いて、このような画面になります。
Application destination base folder(必須): アプリのフォルダをどこに置くのかの指定 Program files folder: 基本は C:\program files\になります Custom: カスタムで指定も可能です Application folder name(必須):上記で指定したフォルダの「中に作る」フォルダ名 Allow user to change the application folder: インストーラを使う人がインストール先を自分で変更できるようにするか The application doesn't need a folder : 関連データがなくて実行ファイルだけ等の場合にはここにチェックを入れる
(3)作ったアプリケーションの登録
この画面では自分がビルドした実行ファイル・関連データを入れます
Application main executable file(必須): メインの実行ファイル(exe)ファイルを指定します Allow user to start the application after Setup has finished: インストールが全部終わったあとすぐに起動できるようにするか The application doesn't have a main executable file: メインの実行ファイルがない(web系など)場合 Other application files:メインのexe以外のデータをファイル指定、フォルダ指定で追加できます
(4)ソフトへの拡張子関連付け
エディタ系とかの場合、開くファイルの関連付け指定がここで出来ます。
Associate a file type to the main executable: 拡張子をソフトに関連付け設定するか Application file type name: 拡張子の情報におけるファイルの形式の説明 Application File type extension: 関連付けする拡張子
(5) スタートメニューとデスクトップショートカットの作成
Create a shortcut to the main executable in the common start menu Programs folder: 以下の画像参照
有名フリーソフト ImgBurnを例に説明します
チェックを入れると上のフォルダの中にアプリケーションが入ります
チェックを入れないと下のアイコンのみが登録されます
Application Start Menu folder name: 上記の例でいう「ImgBurn」のフォルダ名 Allow user to change the Start Menu folder name: スタートメニューフォルダ名をユーザが変えられるようにする Allow user to disable Start Menu folder creation: ユーザがフォルダを作らないことを選択可能にする Create an Internet shortcut in the Start Menu folder: インターネットショートカットをメニューフォルダ内に作るか Create an Uninstall shortcut in the Start Menu folder: アンインストール用のショートカットをメニューフォルダ内に作るか Allow user to create a desktop shortcut: デスクトップショートカットの作成をユーザが選べるようにする
(6)ドキュメント・ライセンスの登録
License file:ライセンスファイル Information file shown before installation: インストール前に表示する情報(テキストファイル?) Information file shown after installation: インストール後に表示する情報(テキストファイル?)
(7)インストールモードの選択
Administrative install mode: 管理者モードでインストール Non administrative install mode :ユーザモードでインストール Allow user to override the install mode via command line :コマンドラインでユーザがインストールモードを変えられるようにする Ask the user to choose the install mode at startup: インストーラ起動時にどっちのモードで起動するか選べるようにする
(8)インストーラの言語設定
ここでデフォルトは英語ですがJapaneseのみにもできますし、複数選択しておくこともできます。
(9)コンパイラ設定
Custom compiler output folder:できたインストーラの保存先 Compiler output base file name:出力するインストーラのファイル名 Custom Setup icon file: インストーラのアイコン Setup password: インストーラにパスワードがかけられるようです Use the password to encrypt the application files: 各ファイルにもパスワードをかけるか
(10)スクリプトを#defineを用いて生成するか
これを行うと、後からスクリプト変更してバージョンを更新するなどして再度インストーラを作るときに楽になるよという記載があります。 便利なのでやっておきましょう
(11)ウィザード終了!
お疲れさまでしたこれでfinish
を押せば作成準備は完了です
3. コンパイルする
ウィザードが終わると
①コンパイルしていいか
②スクリプトを保存するか
が聞かれるので、どちらもyesでファイル保存をしてコンパイルしてもらいましょう
そして、コンパイルが始まります・・・!
finishedと出れば完成です!
動作確認
まず、インストーラが生成されたか確認します。
あれば、起動して一通り動かしてみます。
最後にアンインストールの一覧に追加されてるかみてみます
ここまで動いていれば完成です!
まとめ
みんなもインストーラをちゃんと作って不要なユーザサポートを減らそう!
最後に
この記事は Tokyo City University Advent Calendar 2019 adventar.org の19日目の記事でした
明日の記事はBOB
さんの「俺と軍事と飯~防衛装備品を見ながら食う飯はうまい~/去年の記事に関するお詫び」です。
話題のBOBさんの記事めっちゃ楽しみです。
ネイティブな「JSはいいぞ」
はじめに
この記事は Tokyo City University Advent Calendar 2020 adventar.org の5日目の記事です
昨日の記事は@mewl_msh
さんの「私の推しなのでみんなも推してください。」でした
いいですね、推し・・・
僕もthinkpad X260をフォロワーから譲っていただき愛用しております、なんだかんだmacbookかthinkpadが外に持っていくには便利なんですよね・・・
そして空前の都市大フロッピーブーム、なんなんですかねこれ。残念ながら私は多分現代に生きているので現在自宅にフロッピーはありません。winMEのパソコンならあるんですけどね
PCDPの見た目僕も好きです。かっこいいのがなんだかんだ惹かれるという。普段から変なものを持ってる彼ですがこれは普通にかっこよいなぁとは思ってました。
感想が長くなっちゃいましたが非常におもしろい記事でした、ありがとうございました。
今日の話題
皆さん、JSって知ってますか?知ってますよね?
皆さんご存知、JavaScriptですよ!*1
最近はjQueryとかNodejsとか便利なrランタイム・ライブラリがたくさんでてきて、さらにはJSなのにコンパイルとかそういう言葉が出てくるようになりましたね。
私の周りも最近のweb系の話題というと大方NodeかVueかTSか、そんな感じなんです。
そんな中、ネイティブJS ( VanillaJS )を使ってWebツールを作ってみましたのでその記録です。
続きを読むSubsonicで自宅から音楽ストリーミングをしている話
はじめに
この記事は Tokyo City University Advent Calendar 2019
の15日目の記事です
昨日の記事は@mikuta0407
さんの「今のパソコン上のVirtualBoxにWindows95を入れる - Qiita」
qiita.com
でした。この方古いOS動かすの好きすぎて変態
同じAdvent Calendarの2日目 にも私が 投稿しております。もし見る気が起きたら見ていってください
今回の話題
「スマホのSDに大量に音楽データを入れてストレージたりないよ><」っていう友人が少なからず僕の周りにいるんですが、その昔は私も困っていました。 過去記事で作ったサーバーとあるソフトウェアをつなげるとかなりいい感じに解決できる、というお話です。
Subsonicとは
Subsonicはミュージックストリーミングアプリケーション・サーバです。ミュージックプレーヤーの機能もあったり、DLNAにもなったりなんかいろいろできます。 音楽データをsubsonicが提供するAPIを利用して、ストリーミングデータを受信したり、曲の一覧を取得できるというものです。 この方の説明がわかりやすいのでこっち見たほうがいいとは思いますが、ざっくり私が気にしてる特徴をあげていきます
Subsonicの特徴
利点
- 個人サーバーで動かすので音楽ライブラリも個人のものによる
- 自分が持ってるCD、音楽データなら大半がストリーミングできるので Apple musicやGoogle Play Musicにあの曲がない!は起きない
- スマホクライアントがApp StoreやPlay Storeでいくつか出てるので外で聞く分にも困らない
- スマホストレージや再生するPCのストレージはキャッシュ以外使わないのでストレージの問題は起きない
- ユーザーアカウントの設定ができるので複数人共有するときに、できることの制限とかもできる
弱点
- 自分で音楽データを集めなければならないのでCDが売ってなかったりするとストリーミングできない
アイマス曲がストリーミングサービス非対応なのが多すぎるから使いたくない - 音楽データを自分のサーバー上に全部入れないと使えないのでサーバーのストレージが圧迫される
- ネットワークでストリーミングするので、携帯回線ばかり使うと通信容量が増える(1GB契約の人にはオススメできない)
インストールについて
- ここからDLできます。WindowsやMac、DebianやUbuntuとかいろいろなプラットフォームに対応してます。
- Javaが入っていればDLしたアプリケーション動くはずです、簡単ですね。
- 適当にprogramfilesとか/usr/local/とかに展開して動かしてあげましょう
- 起動したらlocalhost://4040入ればそこからconfigいろいろできます。すべてWebベースなので基本的にはコマンドとかファイル書き換えとかはいりません
実際の使用例
- 私の環境ではVPSに直接入れるには VPSのストレージが足りない という問題があるので、音楽データは自宅のデスクトップPCに入れ、(どちらにせよRDPで使ったりするので) 外にいる間はつけっぱなしでいつでも使えるようにしてます。
- ただ、アクセスするときにip直打ちはみっともない(これは個人の感想です)ので、ドメイン入力でアクセスできるようにしたいということでちょっと工夫をしています。
- 下の図がとりあえずざっくりとしたアクセスの流れの図です
- 右から説明をすると、
- まず音楽を聴きたいデバイスで
music.domain.com
(これは仮のURLです、実際運用してるものは個人用なので公開してません)にアクセスします - そうすると、そのアドレスはVPSに到達するようになっていて、VPSで動いているapacheに指定のアドレスでのアクセスが来たら自宅ipのポート4040に変換するように設定しています(これをReverse Proxyといいます)
- そうすると、見た目同じアドレスのまま、接続先は自宅のLANに。アクセスを受け取ったルータは事前に設定してあるポートフォーワードでSubsonicが動いているデスクトップPCに到達し、こことデータの送受信をしている、という感じです。
- まず音楽を聴きたいデバイスで
- あとは、使っている回線の転送速度によるのですが、音楽データの転送は今の時代であればさほど遅くないので大して困ったりしません
- こんな感じで普段、朝の通学などにスマホクライアントで自分の買ったCDを聞いて通学をしているというわけです
まとめ
- Subsonic便利だよ
- 音楽サブスクライブが嫌
- だけどCDを持ち運ぶのは面倒だと思う
- かつスマホストレージに困っている
- 僕みたいな人向けのサービスだよ
- VPSうまくかますとアドレスもわかりやすくなって便利だよ
- サーバとかいろいろやってみたい人触ってみてもいいかもね
最後に
この記事は Tokyo City University Advent Calendar 2019
の15日目の記事でした
明日の記事は杉田玄白
さんの「TCUバードについて書きます」です。TCUバードよりおっぽんのほうが可愛い問題どうにかしてください
AWS LightSail リビルドログ #1
はじめに
- この記事はTokyo City University Advent Calendar 2019 2日目の記事です。
- 1日目の記事は
@920OJ
さんの Pythonで大学の100円朝食LINEbotを作った話でした。 - 都市大生なんですが100円朝食を使ってませんがこれ便利でいいなと、こういうサービス作れるようになりたい
ご挨拶的なもの
- AdventカレンダーのたびにBlogやらを新規登録してるケーといいます。
- 過去に作ったブログはアイマスの話用に分けてしまったのでまたブログを作りました。
事の始まり
昨年、VPSが欲しくて探しまくって見つけたAWS Lightsail、一番安いプランで月500円で持てるVPSを登録し使い始めた・・・ suomomo.comを建ててみたり、自宅用にCDを手持ち端末でストリーミングできるようにしたり、 都市大生向けにシラバスを講義コードから直接出すやつを作ってみたり実験台にしてました
そして、2年になり授業でデータベースをやる、それもPostgreSQLとのことなので自分のところに入れ、 友人も使えるようにssh認証設定を書き換えて再起動したところ、
「sshで入れなくなった」
まとめると?
既に作ってあったlighsailインスタンスのsshd設定ミスってssh認証できなくなった = 死
どうするのか
- lightsailサーバを建てなおして
- sshのポートを変更して
- ユーザ追加して
- webサイト公開して
という感じで初期設定しなおすので
そのうちの上4つまでやったことをまとめていきたいと思います
そもそもAWS Lighsailを知らない人向けに
- Amazonがやってるシステム屋にとって
都合の良い便利なサービス - lightsailは安くサーバーが建てられるので便利
- その分サポートとかストレージが少ないとかCPUが弱いとか拡張性が低いとかあるけど自分でどうにかする人なら個人用には 月額500円ぐらいでサーバーが持てるのでよい
- 詳しくはこの辺
実際の作業
※AWSの登録とかはメールアドレス、クレカ登録する感じのよくあるフォームなので省略します。わからなければ問い合わせてください
①サーバーを消し飛ばす
- 私は立て直しなのでまずは既存のものを消します
- バックアップできなかったものは諦めます。
②サーバーを建てる
- web上で建てるところまでは全てできるのでとてもかんたんで便利です
- 静的IPをサーバーに割り振る(新規作成の方は新規作成の作業がいります。名前つけるだけです)
- 静的IPはちゃんとサーバーを指定しておかないと維持費を取られるので要注意です
③sshログイン
- 静的IPはちゃんとサーバーを指定しておかないと維持費を取られるので要注意です
- 第1の難関はここです。AWSはデフォルトキーをwebコンソールからDLして、それでまずはsshログインをしなければなりません
- sshキーはアカウント情報からDLできるので落とします。
- sshキーを適当な作業フォルダに置く(個人的には後々の設定を考えると
ユーザー\.ssh
以下が理想) ssh -i DLしたキーのパス ubuntu@IP
で接続します- これで接続できればokです docs.aws.amazon.com
④更新してあげる
sudo apt-get update sudo apt-get upgrade
⑤sshのポート変更
- セキュリティ上の問題としてsshのポートをデフォのままにして攻撃されて入れなくなったら死なのでポートを変えましょう
ここは作業の順番を間違えると振り出しに戻ることになります。気を付けましょう
まずはssh設定を開きましょう
$ sudo nano /etc/ssh/sshd_config
(vim派emacs派の方はそちらでどうぞ)- 以下を記述します(22を改めて指定するのは念のためです)
+ Port 22 + Port 新しく指定したいポート
$ sudo ufw allow 新しく指定したいポート $ sudo ufw reload
-
- 左下の追加→カスタム、指定のポートを書きます→保存を押します
この状態で一度ssh新ポートでssh接続できるか試します。 -できたら、旧ポートの停止をします
$ sudo nano /etc/ssh/sshd_config
(vim派emacs派の方はそちらでどうぞ)- 以下を記述します
- Port 22 + #Port 22
- またufwの設定も変えます
$ sudo ufw deny 22 $ sudo ufw reload
- これでこの後もちゃんとssh接続し続けられることを祈りましょう
⑥ユーザ追加
- これが最後!デフォルトユーザやりにくいので自分のユーザを作りましょう
$ sudo adduser ユーザ名 $ sudo su - ユーザー名
- この状態で新しく作ったユーザーで接続しているので自宅PCからこのユーザに入れるようにしましょう
- sshのデータを保存する
.ssh
を作って権限を設定します
- sshのデータを保存する
$ mkdir .ssh $ chmod 700 .ssh
- 続いて、ログインできるキーを指定するためにキーリストファイルを作ります
$ touch .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys
- 一度sshから離れて、自分のPCで鍵を作りましょう。手順がちょっと面倒なのでこちらを参考に。
- 自分のssh鍵ができたら、公開鍵の中身をコピーして
nano .ssh/authorized_keys
- これを開いて、貼り付けて保存しましょう。 これで初期設定は終わりです。お疲れさまでした。 あとはapacheを入れてwebサイトを建てたり、いろんなデータを投げなおしたりしましたがそのあたりはまた別記事で書こうかなと思います。また見に来てくれると嬉しいです。
おわりに
私みたいにならないように
データコピーはちゃんと取ろう
sshの設定は間違えないようにしよう
この2つを守ろうと私は思いました
- この記事はTokyo City University Advent Calendar 2019 2日目の記事でした。
- 明日は
まがたま
さんで「名取さなとおはなしせぇへん?」
とのこと?です - www.youtube.com
- これすき。かわいい。
- マウスコンピュータで制作されてるとのことでそのあたりもすき