saba-gu-dakusanのブログ

忘れないように設定いろいろ

Azure VMを使ってUbuntu Server 18.04 LTSでLAMP環境構築

以前 16.04のLAMP環境構築を紹介しましたが、新しくサーバーが必要になったので最新の18.04で構築します。

前回の16.04はこちらを参考に↓
saba-gu-dakusan.hateblo.jp

今回はAzureのVM作成から行ないます。

AzureポータルでVirtual Machinesを開きます。
この環境には作ってないので、まだ何もありません。 f:id:gu-dakusan:20180724154040p:plain

「+追加」で新しいVMを作成していきます。

f:id:gu-dakusan:20180724154535p:plain

候補がたくさん出てくるので、上の左から三番目の「Ubuntu Server」を選択

f:id:gu-dakusan:20180724154910p:plain

各バージョンが表示されます。今回ターゲットの「18.04」を選択

f:id:gu-dakusan:20180724164111p:plain

詳しく表示されるので、そのまま作成する。

f:id:gu-dakusan:20180724164328p:plain

サーバー名やユーザー、パスワードを入力する
公開キーについては、↓を参考にする
Windows での SSH キーを使用した Linux VM への接続 | Microsoft Docs
残りの情報を入力してからOK。

f:id:gu-dakusan:20180724165247p:plain

VMのスペックを選択する

f:id:gu-dakusan:20180724171615p:plain

重要な項目なんだろうけど、あまりわかっていないからそのまま進む。

f:id:gu-dakusan:20180724171846p:plain

最終確認して作成!!数分したらVMが起動します。

f:id:gu-dakusan:20180724172420p:plain


やっと半分です。 ここからがLAMP環境の構築ですが。。。
先に、ネットワークとセキュリティまわりをやらないといけないのですが、、、
記事にするのが大変なので今回は↓を参考にしてください。いずれ書きますから(´Д⊂ヽ

qiita.com

Ubuntu 16.04 apacheでLet’s encryptを設定してhttps化する

無料のLet’s encryptを使って常時https化しましょう。

Ubuntu 16.04 + apacheは前の記事を参考にしてください。

saba-gu-dakusan.hateblo.jp

saba-gu-dakusan.hateblo.jp

1.SSLを有効化
$ sudo a2enmod ssl
$ sudo a2ensite default-ssl
$ sudo service apache2 restart

2.letsencryptが利用できるようにコマンドをインストール
$sudo apt-get install letsencrypt python-letsencrypt-apache -y

普通にリポジトリでインストールすると古いタイプになっちゃうみたい
新→Certbot
旧→letsencrypt
今回は環境の問題でこのまま「letsencrypt」 を使う

3.証明書のセットアップ
↓証明書の取得方法
Let's Encrypt の使い方 - Let's Encrypt 総合ポータル

単純に
$sudo letsencrypt --apache

ウィザードが表示
f:id:gu-dakusan:20180721115500p:plain
ドメインがすでに出ていたので、そのまま<OK>ですすむ

f:id:gu-dakusan:20180721121447p:plain
メールアドレスを設定して<OK>

f:id:gu-dakusan:20180721121537p:plain
利用規約に同意するので<Agree>

f:id:gu-dakusan:20180721121639p:plain
!?
参考にしているサイトと違う感じが・・・

f:id:gu-dakusan:20180721121906p:plain
しかも終了してるっぽい。。。(TдT)

ひたすらググっくてみる・・・・(約2時間弱)

いろいろ調べた結果、
スタンドアローン形式で実行で解決できそう!
なのでapacheを一度停止
$ sudo service apache2 stop

再度オプションを付けて letsencryptコマンドを実行
$sudo letsencrypt --authenticator standalone --installer apache
同じくウィザード表示
f:id:gu-dakusan:20180721115500p:plain
ここは同じなのでそのまま

f:id:gu-dakusan:20180721122723p:plain
やった!進めた!
すでに同じドメインでありますけど?どうするって?
じゃあ1番で!再インストールです。

f:id:gu-dakusan:20180721122930p:plain
参考にしていたサイトにあったやつ表示されました!
HTTPとHTTPS両方使うか、HTTPSのみするか?
Secureでお願いします!

f:id:gu-dakusan:20180721123330p:plain
今度こそ正常に完了!

httpsでつなげてみると、apacheのデフォルトページが・・・ f:id:gu-dakusan:20180721123548p:plain
色々自動で設定されるのでしょうがないかな。
confファイルを設定し直して正常に表示されるようになりました!

調べてみると、Certbot の方の解説が多かったけど、なんとか解決できたのでOKっす

C#でテキストの行数取得

C#で数十万行の処理が必要だったので、総行数と処理行数とで進捗率をだして表示させます。

総行数

string[] lines = File.ReadAllLines("sample.txt"); 
Console.WriteLine($"データ件数:{lines.Length}件");

全データを読み込むので、.Lengthで行数が取得できます。

進捗率

int linecount=0;

ループ内
linecount++;
if (linecount % 30000 == 0) //30000件毎に表示
{
progressRate = ((double)linecount / lines.Length).ToString("P");
Console.WriteLine($"進捗:{linecount}/{lines.Length}  {progressRate} 完了");
}

Laravelインストーラーで簡単プロジェクト作成

以前composer を利用したプロジェクト作成を紹介しましたが今回はLaravelインストーラーでやってみます。 いつもどおり開発環境はWindowsです。

1.コマンドプロンプトでXAMPPのhtdocsフォルダへ移動します。

cd C:\xampp\htdocs

2.Laravelインストーラーをダウンロードします。

composer global require "laravel/installer"

「laravel」コマンドが実行できるようになったので、プロジェクトを作成します。

3.laravel newでプロジェクト作成

laravel new sample

※最新版のLaravelプロジェクトが作成されます。

Laravel5.5 初期設定メモ

プロジェクト作成後の初期設定を日本語環境にあわせるためのメモ

app.phpの設定

//一番上に追加
'faker_local'=>'ja_JP',

'timezone' => 'UTC',
↓
'timezone' => 'Asia/Tokyo',

'locale' => 'en',
↓
'locale' => 'ja',


.envの設定

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
↑これは環境に合わせる
↓追記 日本語環境は今のところコレが扱いやすい
DB_CHARSE=utf8
DB_COLLATION=utf8_general_ci

database.phpもの設定

// 固定になっているので初期値は設定から取得するように変更
// 'charset' => 'utf8mb4',            
'charset' => env('DB_CHARSE', 'utf8mb4'),
// 'collation' => 'utf8mb4_unicode_ci',            
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),

Laravle 5.5 + mysqlの文字コード最適化

Laravle 5.5 + mysqlでプロジェクトを作成して、初期のままmigration(userテーブルとかの生成)するとsyntax errorになってしまうの回避方法を書いておきます。

原因:

MySQLではPRIMARY_KEY、UNIQUE_KEYを付けたカラムには最大767bytesまでになっているのが原因

対処:

app\Providers\AppServiceProvider.phpに以下を追加
boot時にデータベースの最大文字数の定義を変える

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

都道府県リストとコードをわかりやすく

都道府県のリストとコード表を書いておきます。

まずはリスト

北海道
青森県
岩手県
宮城県
秋田県
山形県
福島県
東京都
神奈川県
埼玉県
千葉県
茨城県
栃木県
群馬県
山梨県
新潟県
長野県
富山県
石川県
福井県
愛知県
岐阜県
静岡県
三重県
大阪府
兵庫県
京都府
滋賀県
奈良県
和歌山県
鳥取県
島根県
岡山県
広島県
山口県
徳島県
香川県
愛媛県
高知県
福岡県
佐賀県
長崎県
熊本県
大分県
宮崎県
鹿児島県
沖縄県

 

次にコード付きの表

コード 都道府県
1 北海道
2 青森県
3 岩手県
4 宮城県
5 秋田県
6 山形県
7 福島県
8 茨城県
9 栃木県
10 群馬県
11 埼玉県
12 千葉県
13 東京都
14 神奈川県
15 新潟県
16 富山県
17 石川県
18 福井県
19 山梨県
20 長野県
21 岐阜県
22 静岡県
23 愛知県
24 三重県
25 滋賀県
26 京都府
27 大阪府
28 兵庫県
29 奈良県
30 和歌山県
31 鳥取県
32 島根県
33 岡山県
34 広島県
35 山口県
36 徳島県
37 香川県
38 愛媛県
39 高知県
40 福岡県
41 佐賀県
42 長崎県
43 熊本県
44 大分県
45 宮崎県
46 鹿児島県
47 沖縄県