こなさんち

しがないフリーランスエンジニアの備忘録。

localhostにサブドメイン追加してみた

背景

部長「サブドメインで別々のフォルダ見れるようにしといて」

私「おかのした」

環境

WindowsServer

Apache

Localhost

前提

通常、サブドメインを作成することはhttpd.cond のみでは不可能です。

そこで、extra\httpd-vhost.conf をいじります。

httpd.conf の設定

... 

LoadModule vhost_alias_module modules/mod_vhost_alias.so # コメント外す

...

Include conf/extra/httpd-vhosts.conf # コメント外す

vhostsの設定

動的に生成するという手段もあります。

それは以下記事をご参照ください。

https://taitan916.info/blog/?p=1839

今回は、手動で追加していくパターンです。

www.softel.co.jp

というのもWindowsなのでバッチファイルでがちゃがちゃやりたいからですね。

便利なコマンド

httpd -S

現在のvirtual hostの一覧

httpd -t

設定ファイルの文法チェック

いまさら聞けない「Linux」って?

はじめに

閲覧ありがとうございます。 本記事の対象は、

  • Linuxって聞くけど何?
  • Linux、使ってるけど詳しく知らない…

というような初心者、中級者です。これらを知っておくと、個人開発やプロジェクトでの開発に役立つことでしょう。

なるべく初心者にわかるように、かみ砕いて説明するようにしますね。

そもそもLinuxとは

OS

この記事をご覧いただいているパソコンにしてもスマートフォンにしても、「マウスを操作する」「メールを送信する」などといった アプリケーションやハードウェアを操作する根幹となるシステムが必要です。

このシステムを OS (Opertiong System)といいます。このキーワードは聞いたことがあるのではないでしょうか。

例えば、パソコンなら

などが一般的ですね。

今回のテーマであるLinuxもOSの一種で、スマートフォンや多くのサーバでも利用されています。

また、WindowsやMaxOSは有償ですが、Linuxは無償で入手可能なんです。(ネット上でダウンロードが可能)

ところで、みなさんパソコンを買うとき、自分で「OSをインストールする」という作業を行った記憶はありますか?

ある方は、精通していらっしゃいますね。ちなみに私はありません。

実は、OSは、 * 自分でインストールする * 自分で再インストールする * 削除して別のOSを入れる * OSを切り替える

など様々なことが可能です。

カーネル

先ほどLinuxはOSだと説明しましたが、 狭義の「Linux」とはカーネル(OSの核となる部分)を指し、Linuxをインストールしただけでは、ファイルの操作やキーボードの操作、その他もろもろができません。

最初にこのLinuxカーネル)が公開されてから、多くの人がこれを使ってコンピュータを動かすソフトウェアを開発していきました。

この「カーネル」に関しては知っている方もあまりいらっしゃらないのではないでしょうか。普段意識することはない部分ですからね。

ディストリビューション

Linuxカーネルは常に公開されており、前述したとおり誰でも無償で利用が可能です。そして、このカーネルを利用したソフトウェアも数多く公開されています。

しかし、どのソフトウェアを使えばよいのか、何が必要なのか、などなど、すべてをそろえるのはなかなか難しいのです。

そこで、カーネルにソフトウェアを組み合わせてパッケージ化したものを配布するようになりました。 このパッケージを ディストリビューションといいます。

このキーワードも聞いたことはあるでしょうか。

一般的なディストリビューション

などがあります。

歴史

これも知っておくとなかなか興味深いものです。 学生時代にやったなあと思い出しつつ書きますね。

ここではまた新たなOSが登場します。

UNIX

UNIXというOSが昔ありました。 これは、研究用とで開発されていたOSであり、設計内容は公開され、改造も自由なOSです。

様々な個人や企業が、独自で改造や追加開発を行うため、ある人が使うUNIXと別の人が使うUNIXは全く別物、ということもありました。

そこで、UNIXも開発元である AT&TUNIXを管理するようになります。 これ以降、

  • AT&Tと契約を結んだ組織:UNIXを名乗る
  • AT&Tと契約を結んでいないもの:"UNIX互換OS"を名乗る

ということになります。

UNIXを名乗るなら契約すればいいのですが、UNIXが動作するPCは高価、AT&Tとのライセンス料も高価なため、手が出せない組織も多かったんですね。

そんな中、当時フィンランドの学生であった リーナス・トーバルズ(Linus Torvalds) が PCで使えるUNIX風のOS「Linux」を公開しました。

それが1991年の出来事です。Linuxは学生によって誕生したんですね。

最後に

概要については以上です。

実際のコマンドなどには触れませんでしたが、業務などで使うLinuxでの理解は深まったでしょうか?

ありがとうございました。

2019/05/20

仕事

…あれ?何もやって無くね?

ってくらい、新人さんへの指導をしてたら一日が終わったなあ、と。

昼は久々に外で食べた。よかった。

メンタル

土曜日から絶不調。

土曜日は、帰宅まで1時間かかったし、帰ってから安定剤を9倍ほど、。

今もまたフラッシュバック、です。

最後

書かないと、と思ったけど特になにもない。

今から開発して、勉強して、猫と寝ます。

webpackってやつぁ…

scssコンパイルされると困っちゃうおじさん

昔は、CSSが直接個別ファイルになってheadで書かれてましたよね。

でも最近はwebpackなどでまとめられる時代。

minifyは軽量化のためにありがたいのですが、こういったSIerおじさんにとっては大変なんですよね。

Laravel mix

www.ritolab.com

今週のお題「母の日」

産んでくれてありがとう。

学校に行かなかった私を、一度も責めないでくれてありがとう。

私が自傷をして、部屋の壁を血で汚してしまったとき 泣きながら、でも怒らず、掃除してくれてありがとう。ごめんなさい。

私が過呼吸起こしてると、黙って抱きしめてくれてありがとう。

感謝です。

おかげで、こんな人が出来上がりました。

docker-conposerで初期設定

始まり

別のプロジェクトを作ろうかな~と思って、

# docker-compose.yml
version: '3'

services:
  db:
    image: mysql:5.7
    container_name: mysql_django_girls
    environment:
      MYSQL_ROOT_PASSWORD: docker
      MYSQL_DATABASE: docker
      MYSQL_USER: docker
      MYSQL_PASSWORD: docker
      TZ: 'Asia/Tokyo'
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    volumes:
    - ./docker/db/data:/var/lib/mysql
    - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
    - ./docker/db/sql:/docker-entrypoint-initdb.d
    ports:
    - 3306:3306
    restart: always

  web:
    build: .
    # はじめは django-admin やらないと。
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
    - .:/code
    ports:
    - "8000:8000"
    depends_on:
    - db
    links:
    - db
    tty: true

動かそうとしたんですね、このファイル。

command: python manage.py runserver 0.0.0.0:8000これしようとしたときにね。

当たり前だけど、django-adminされてないから動かなかったのでメモ。

一度、上記コマンドをコメントアウトしてdocker-compose up

docker container exec -it {コンテナ名} django-admin startproject project .

でOK!

参考

hodalog.com

debug-toolbarが表示されない

INTERNAL_IPS

dockerでやるときって、localhstじゃないんですよね…

wonderwall.hatenablog.com

REMOTE_ADDRの確認方法だが、アプリを適当に編集してTracebackを出すとRequest informationのMETAの中にREMOTE_ADDRが確認できる。

とのことですが、そのTracebackを出すとdockerでエラーが吐かれてしまう。

困ったが、

setting.pyにて

DEBUG_TOOLBAR_CONFIG = {
  'SHOW_TOOLBAR_CALLBACK': False,
}

を書けば、Tracebackできました。

REMOTE_ADDR拾ってください。