20191129のMacに関する記事は8件です。

macOS Terminal.app は ANSI Colors を正確に表現しない

はじめに

日本語でこの様なコミュニティに投稿するのは初めてです。
これまで先人方のネットの記事に散々助けられてきて、プログラマーをして4年位。そろそろ私も何か少しでも貢献を。
同じ様な問題でお困りの方の手助けになれば幸いです。と言っても初めてにしてはニッチなジャンルになりますが・・・?

因みに、この投稿は著者のこの記事を翻訳したものです: Terminal's Inconsistent Color Rendering Demystified

macOS's Terminal.app

さて、私は macOS 標準のターミナルのヘビーユーザーです。
今回はそのターミナルのカラーテーマの挙動について少しお話を。

皆さんは当然ターミナルがカラーテーマに対応している事はご存知ですね。
しかし、そのカラーテーマで指定した色が正確にはレンダリングされていない事を知っている方は少ないのではないでしょうか。

Let's investigate!

多分、ターミナルのカラーテーマを扱っているレポの中では一番メジャーなとこからサンプルとしてテーマを持ってきましょう。

Espresso がいい感じですね。これでやってみましょ。
Espresso

なかなか良いですよね。
でも、よ〜く見てください。テキスト色、違うところがありますよね?
赤が一番顕著です。

  • 正確には、テーマ指定のバックグラウンドカラー上に描写されたテキストカラーはほぼ全て、本来指定されている色とは異なる
  • バックグラウンドカラーとして 40m ~ 47m が指定されているテキストカラーは正確
  • しかし、明るめの色や白系統の色の中にはほぼ正確なものもある
  • 背景色として描写された場合は全て正確に描写されている

espresso2.png

  • 赤枠の中の色は全て正確

? なんでやねん...?

元々自分でカラーテーマを作っていてこれに気づきました。なんか上手いこと行かないなと。指定している色はいい感じの筈なのに、実際表示すると違う感じ。
まず正確に色が表示されていないという発想に辿り着くまでに時間がかかった。
そして、なんでなん・・・?とググりにググり、見つかったのはこのQ&Aたち。

ほぼほぼこれ以外に目立った記事やQ&Aは発見できませんでした。
しかし、少しでも同じ事を指摘している人がいた?

驚いたのは、検索をかけても本当にこれくらいしか見つからなかった事。
でもまぁ、とりあえず上記をまとめてみます。

? 簡単に言うと;

  • ANSI カラーはターミナルアプリ内部で暗黙的に調整がかかっている
  • ANSI カラーは指定された背景色に基づいて調整されている
  • カラー調整する事により、「見やすく」するという意図があるようだ

では、実際にそのような事がアプリ内部で起こっているのかを調査して見ます。

バイナリの世界へダイブ

一番簡単なのはバイナリに strings コマンドをかける事です。これで怪しげなメソッドがないか見て見ます。

strings /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
  • macOS Catalina の方は /Applications の前に /System が要ります

これで5,000行を超えるテキストが返ってきます。その中から見つけたのが・・・

adjustedColorWithColor:withBackgroundColor:force:
adjustedColorWithRed:green:blue:alpha:withBackgroundColor:force:

キミら2人、ゆるさへんで ?

これらの宣言から予想できるのは、
BackgroundColorを基にし、なんらかの計算式を通してadjustedColor (調整されたテキストカラー) が返されると言う事。

TTView.h

これらのメソッドはターミナルのプライベートクラスである TTView に属しています。

class-dump してヘッダーを見るのが早いです。
こういうのはよく Github に上がってたりしますね。

このヘッダファイルの L477-478 に、このような記述がありますね:

- (id)adjustedColorWithColor:(id)arg1 withBackgroundColor:(id)arg2 force:(BOOL)arg3;
- (id)adjustedColorWithRed:(double)arg1 green:(double)arg2 blue:(double)arg3 alpha:(double)arg4 withBackgroundColor:(id)arg5 force:(BOOL)arg6;

多分、実際の宣言はこんな感じでしょう:

- (NSColor)adjustedColorWithColor:(NSColor)color
              withBackgroundColor:(NSColor)backgroundColor
                            force:(BOOL)force;

- (NSColor)adjustedColorWithRed:(double)r
                          green:(double)g
                           blue:(double)b
                          alpha:(double)a
            withBackgroundColor:(NSColor)backgroundColor
                          force:(BOOL)force;

まとめ

と言う訳で、どこにもドキュメントされていないターミナルの隠された挙動を暴きましたね。息の長いアプリケーションなのに、これについて何か言っている人が少ないのが不思議でした。みんなそこまで細かいトコは気にしないのかな。

  • 残念ながら、今日において正攻法でこの挙動をオフにする事は出来ません。 defaults write の隠しキーとかもない ☹️
  • でも、SIP をオフにしてアプリを弄る事でなら可能
  • Good news is that is the topic I will cover in the next article. It's possible. Stay tuned.

iTerm

因みに iTerm は正確に描写してくれるので、乗り換えに抵抗がない人は試してみると良いかも。
面白い事に iTerm はむしろこの挙動をオプション機能として「再現」しています。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

macOS Terminal.app は ANSI Colors を正確にレンダリングできない

はじめに

日本語でこの様なコミュニティに投稿するのは初めてです。
これまで先人方のネットの記事に散々助けられてきて、プログラマーをして4年位。そろそろ私も何か少しでも貢献を。
同じ様な問題でお困りの方の手助けになれば幸いです。と言っても初めてにしてはニッチなジャンルになりますが・・・?

因みに、この投稿は著者のこの記事を翻訳したものです: Terminal's Inconsistent Color Rendering Demystified

macOS's Terminal.app

さて、私は macOS 標準のターミナルのヘビーユーザーです。
今回はそのターミナルのカラーテーマの挙動について少しお話を。

皆さんは当然ターミナルがカラーテーマに対応している事はご存知ですね。
しかし、そのカラーテーマで指定した色が正確にはレンダリングされていない事を知っている方は少ないのではないでしょうか。

Let's investigate!

多分、ターミナルのカラーテーマを扱っているレポの中では一番メジャーなとこからサンプルとしてテーマを持ってきましょう。

Espresso がいい感じですね。これでやってみましょ。
Espresso

なかなか良いですよね。
でも、よ〜く見てください。テキスト色、違うところがありますよね?
赤が一番顕著です。

  • 正確には、テーマ指定のバックグラウンドカラー上に描写されたテキストカラーはほぼ全て、本来指定されている色とは異なる
  • バックグラウンドカラーとして 40m ~ 47m が指定されているテキストカラーは正確
  • しかし、明るめの色や白系統の色の中にはほぼ正確なものもある
  • 背景色として描写された場合は全て正確に描写されている

espresso2.png

  • 赤枠の中の色は全て正確

? なんでやねん...?

元々自分でカラーテーマを作っていてこれに気づきました。なんか上手いこと行かないなと。指定している色はいい感じの筈なのに、実際表示すると違う感じ。
まず正確に色が表示されていないという発想に辿り着くまでに時間がかかった。
そして、なんでなん・・・?とググりにググり、見つかったのはこのQ&Aたち。

ほぼほぼこれ以外に目立った記事やQ&Aは発見できませんでした。
しかし、少しでも同じ事を指摘している人がいた?

驚いたのは、検索をかけても本当にこれくらいしか見つからなかった事。
でもまぁ、とりあえず上記をまとめてみます。

? 簡単に言うと;

  • ANSI カラーはターミナルアプリ内部で暗黙的に調整がかかっている
  • ANSI カラーは指定された背景色に基づいて調整されている
  • カラー調整する事により、「見やすく」するという意図があるようだ

では、実際にそのような事がアプリ内部で起こっているのかを調査して見ます。

バイナリの世界へダイブ

一番簡単なのはバイナリに strings コマンドをかける事です。これで怪しげなメソッドがないか見て見ます。

strings /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
  • macOS Catalina の方は /Applications の前に /System が要ります

これで5,000行を超えるテキストが返ってきます。その中から見つけたのが・・・

adjustedColorWithColor:withBackgroundColor:force:
adjustedColorWithRed:green:blue:alpha:withBackgroundColor:force:

キミら2人、ゆるさへんで ?

これらの宣言から予想できるのは、
BackgroundColorを基にし、なんらかの計算式を通してadjustedColor (調整されたテキストカラー) が返されると言う事。

TTView.h

これらのメソッドはターミナルのプライベートクラスである TTView に属しています。

class-dump してヘッダーを見るのが早いです。
こういうのはよく Github に上がってたりしますね。

このヘッダファイルの L477-478 に、このような記述がありますね:

- (id)adjustedColorWithColor:(id)arg1 withBackgroundColor:(id)arg2 force:(BOOL)arg3;
- (id)adjustedColorWithRed:(double)arg1 green:(double)arg2 blue:(double)arg3 alpha:(double)arg4 withBackgroundColor:(id)arg5 force:(BOOL)arg6;

多分、実際の宣言はこんな感じでしょう:

- (NSColor)adjustedColorWithColor:(NSColor)color
              withBackgroundColor:(NSColor)backgroundColor
                            force:(BOOL)force;

- (NSColor)adjustedColorWithRed:(double)r
                          green:(double)g
                           blue:(double)b
                          alpha:(double)a
            withBackgroundColor:(NSColor)backgroundColor
                          force:(BOOL)force;

まとめ

と言う訳で、どこにもドキュメントされていないターミナルの隠された挙動を暴きましたね。息の長いアプリケーションなのに、これについて何か言っている人が少ないのが不思議でした。みんなそこまで細かいトコは気にしないのかな。

  • 残念ながら、今日において正攻法でこの挙動をオフにする事は出来ません。 defaults write の隠しキーとかもない ☹️
  • でも、SIP をオフにしてアプリを弄る事でなら可能
  • Good news is that is the topic I will cover in the next article. It's possible. Stay tuned.

iTerm

因みに iTerm は正確に描写してくれるので、乗り換えに抵抗がない人は試してみると良いかも。
面白い事に iTerm はむしろこの挙動をオプション機能として「再現」しています。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Terminal.app は ANSI Colors を正確にレンダリングできない

はじめに

日本語でこの様なコミュニティに投稿するのは初めてです。
これまで先人方のネットの記事に散々助けられてきて、プログラマーをして4年位。そろそろ私も何か少しでも貢献を。
同じ様な問題でお困りの方の手助けになれば幸いです。と言っても初めてにしてはニッチなジャンルになりますが・・・?

因みに、この投稿は著者のこの記事を翻訳したものです: Terminal's Inconsistent Color Rendering Demystified

macOS's Terminal.app

さて、私は macOS 標準のターミナルのヘビーユーザーです。
今回はそのターミナルのカラーテーマの挙動について少しお話を。

皆さんは当然ターミナルがカラーテーマに対応している事はご存知ですね。
しかし、そのカラーテーマで指定した色が正確にはレンダリングされていない事を知っている方は少ないのではないでしょうか。

Let's investigate!

多分、ターミナルのカラーテーマを扱っているレポの中では一番メジャーなとこからサンプルとしてテーマを持ってきましょう。

Espresso がいい感じですね。これでやってみましょ。
Espresso

なかなか良いですよね。
でも、よ〜く見てください。テキスト色、違うところがありますよね?
赤が一番顕著です。

  • 正確には、テーマ指定のバックグラウンドカラー上に描写されたテキストカラーはほぼ全て、本来指定されている色とは異なる
  • バックグラウンドカラーとして 40m ~ 47m が指定されているテキストカラーは正確
  • しかし、明るめの色や白系統の色の中にはほぼ正確なものもある
  • 背景色として描写された場合は全て正確に描写されている

espresso2.png

  • 赤枠の中の色は全て正確

? なんでやねん...?

元々自分でカラーテーマを作っていてこれに気づきました。なんか上手いこと行かないなと。指定している色はいい感じの筈なのに、実際表示すると違う感じ。
まず正確に色が表示されていないという発想に辿り着くまでに時間がかかった。
そして、なんでなん・・・?とググりにググり、見つかったのはこのQ&Aたち。

ほぼほぼこれ以外に目立った記事やQ&Aは発見できませんでした。
しかし、少しでも同じ事を指摘している人がいた?

驚いたのは、検索をかけても本当にこれくらいしか見つからなかった事。
でもまぁ、とりあえず上記をまとめてみます。

? 簡単に言うと;

  • ANSI カラーはターミナルアプリ内部で暗黙的に調整がかかっている
  • ANSI カラーは指定された背景色に基づいて調整されている
  • カラー調整する事により、「見やすく」するという意図があるようだ

では、実際にそのような事がアプリ内部で起こっているのかを調査して見ます。

バイナリの世界へダイブ

一番簡単なのはバイナリに strings コマンドをかける事です。これで怪しげなメソッドがないか見て見ます。

strings
strings /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
  • macOS Catalina の方は /Applications の前に /System が要ります

これで5,000行を超えるテキストが返ってきます。その中から見つけたのが・・・

Private-Methods
adjustedColorWithColor:withBackgroundColor:force:
adjustedColorWithRed:green:blue:alpha:withBackgroundColor:force:

キミら2人、ゆるさへんで ?

これらの宣言から予想できるのは、
BackgroundColorを基にし、なんらかの計算式を通してadjustedColor (調整されたテキストカラー) が返されると言う事。

TTView.h

これらのメソッドはターミナルのプライベートクラスである TTView に属しています。

class-dump してヘッダーを見るのが早いです。
こういうのはよく Github に上がってたりしますね。

このヘッダファイルの L477-478 に、このような記述がありますね:

TTView-Private-Methods
- (id)adjustedColorWithColor:(id)arg1 withBackgroundColor:(id)arg2 force:(BOOL)arg3;
- (id)adjustedColorWithRed:(double)arg1 green:(double)arg2 blue:(double)arg3 alpha:(double)arg4 withBackgroundColor:(id)arg5 force:(BOOL)arg6;

多分、実際の宣言はこんな感じでしょう:

TTView-Private-Methods-Prettified
- (NSColor)adjustedColorWithColor:(NSColor)color
              withBackgroundColor:(NSColor)backgroundColor
                            force:(BOOL)force;

- (NSColor)adjustedColorWithRed:(double)r
                          green:(double)g
                           blue:(double)b
                          alpha:(double)a
            withBackgroundColor:(NSColor)backgroundColor
                          force:(BOOL)force;

まとめ

と言う訳で、どこにもドキュメントされていないターミナルの隠された挙動を暴きましたね。息の長いアプリケーションなのに、これについて何か言っている人が少ないのが不思議でした。みんなそこまで細かいトコは気にしないのかな。

  • 残念ながら、今日において正攻法でこの挙動をオフにする事は出来ません。 defaults write の隠しキーとかもない ☹️
  • でも、SIP をオフにしてアプリを弄る事でなら可能
  • Good news is that is the topic I will cover in the next article. It's possible. Stay tuned.

iTerm

因みに iTerm は正確に描写してくれるので、乗り換えに抵抗がない人は試してみると良いかも。
面白い事に iTerm はむしろこの挙動をオプション機能として「再現」しています。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【デザイナー職がプログラミングいざ始めようと思って困った話】#1Macとは…

初めまして

どうも初めまして、MUと申します。
ゲーム業界でデザイナー職をやっておりますが、
昔から憧れていたプログラミングの世界に思い切って飛び込んで現在2週間目になります。

この話は

  • デザイナー職でプログラミングちょっと興味あるけど難しそう…
  • そもそもずっとWindowsユーザーでMAC触った事ないんだけど…

と思っている方に
ちょっとでも参考になれば幸いと思い書いております。

プログラムの勉強をやりたいと思ったきっかけ

先程書いたように私はデザイナー職です。
物作りが好きな私は、自分だけでも何か動く事を作りたいと思い
過去に参考書の見よう見まねで簡単なスマホゲームを作って動かしてみた事があります。

ただあくまでそれは本のコピーであり、そこからどうやって拡張を行えばいいのか、
分岐を作ればいいのかサッパリ分からず一度挫折しました。
(レベルマックスになったらリセットどうすんの?タイトルに戻したり、シーン遷移はどう追加するの?…とか。

本職のエンジニアさんがスラスラコードを書いて実装をしたり、
便利なツール自作している様を見るとプログラムって本当に魔法だなあと感じます。

本職の方のようにスラスラとコードを書く事は中々難しいかもしれない。
ただこのまま専門の黒魔道士や白魔道士にはなれなくても、
Lv1の赤魔道士ぐらいにはなれないかと思い立ち決心しました。

初めてのMACbook

何を隠そう昔っからのwindows使い。

プログラミングやるならMACだよという事から、
初めてのMacbookを入手しました。

そして起こるクリックどないすんねん問題

ピカピカのシルバーの期待にワクワクしながら電源をつけました。
いざMACを触ってみて感じた事…それは

……………なるほど。分からん

MAC使いの方には笑われる話かもしれませんが、
それぐらいwindowsをずっと使ってきた身には挙動が衝撃だったのです。

「右クリックどうすんねん」
「Finderとはなんぞ…」
「⌘…?」

WindowsとMACはキーボードの配列や操作感が大きく異なります。
デザインがミニマリズムの極みすぎてボタンを探しまくった事、
今までWindowsの機体で存在していたUSBポートが無くて焦った事は良い思い出です。

慣れるために行った事

…これプログラミング以前の問題では…?

焦った私は考えました。

①とりあえず触れる時間を増やす
 単純に触っている時間を増やしました。
 家にはwindowsのデスクトップがいますが、
 使い慣れているそれは極力使わずにパソコンを起動する場合はひたすら触っていました。

②Google先生でひたすらWindowとの違いを調べる
 困った時のGoogle大先生。

 Mac Shiftキー ない
 Mac Shiftキー どこ
 
 みたいな感じで検索してました。
 アプリケーションのインストールも挙動が結構違うので何回か詰まりました。
 何故自分でフォルダへ放り込まなければならぬのか…とか(MACユーザーさんにとっては当たり前なのでしょうが

③聞きなれないシステム単語を覚える
 これだけはどうしようも無かったので、
 頭に叩き混みようにしました。

 ・Finder
 ・Spotlight …など
 
 心が折れそうになったらSiriさんと会話してました。
 Siriさんの優しいので癒されますよ。

とりあえずなんとかなる。

不安だなあと思っていらっしゃる方へ。
頭でぐるぐるやらない理由を考えて準備運動しているよりかは、
いざ初めてみるとなんとかなったりします。
MACを触るのが初めての私でもなんとかなったので大丈夫です!!
とりあえず迷ったら飛び込んでみるのもいいんじゃないでしょうか。

次はいざプログラミング勉強をスタートした時に感じた事をまとめてみようと思いますので、
良かったらまた読んでみてください。それでは!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

研究室のMacで「 Command Line Tools」がインストールできない

はじめに

大学の研究室のパソコンで不具合が頻発しているため
OSを再インストールしました。

Gitなどいろいろと使いたいものがあるため
CommandLineToolsを入れようとしたところ

「App Storeに接続できません。」
「ネットワークに接続できません。」
などと出ました。

対処策

プロキシが原因の可能性があります。
大学では、プロキシサーバーがあると思うので(ないところはちょっと考えられないですね)
それようにプロキシを設定します。

「システム設定」「ネットワーク」「Ethernet」「詳細」「プロキシ」を開き
Webプロキシと保護されたWebプロキシをチェックしましょう。
そして、Webプロキシサーバのドメイン名と内側のポート番号を入力すれば完成です。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

「なんかMacのネットワーク接続悪いなぁ」と思った時にやったこと

なんかブラウザ見れない。。。

大学のwifiに接続してブラウジングしようと思ったらなんかうまくいかなかったので
どのように解決したのか。

スクリーンショット 2019-11-29 12.22.27.png

ここをみるとDNSって書いてあったけど気づけなかった...

Wiresharkを起動してみる。

最近付け焼き刃で覚え始めてるwiresharkを開いてみた。

そうすると...

スクリーンショット 2019-11-29 12.24.01.png

DNSがめちゃめちゃがんばってる

よって大学のホームページから指定されてるdnsサーバーのipアドレスを発見。
macのdnsを変更して無事解決!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

macOS CatalinaのApacheでlocalhostにアクセスしたかった

タイトルの通りです。
macOS CatalinaのApacheくんとlocalhostを巡って激しく殴り合ったので、メモとして残しておきます。

何があった

http://localhost:8080は起動するのに色々いじくり回してもhttp://localhost/はrefusedされ、http://localhost:8080/~{ユーザ名}は404になる。キレそう。ていうかキレてる。

目標

  • Apacheを起動させてlocalhostにアクセスできるようにする
  • 作業ディレクトリをホームディレクトリ直下に変える
  • phpを複数バージョン使えるようにしたい

実行環境

  • OS:10.15 Catalina
  • Shell:zsh
  • テキストエディタ:atom

やったこと

実際はここを参考にしたので書いてあることはほぼ一緒です。英語に拒絶反応のない人はこっち見たほうがいい。

まずは動かす

結論から言うとmacにもともと入っていたApacheはなんか色々面倒らしいので、HomeBrewでApacheを持ってきた方が良いらしい。
とりあえずMacにもともと入っていたApacheを実行している場合は止めて自動で実行しないようにする。

$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

もともと入っていたApacheくんに別れを告げたので、新しいApacheくんを持ってくる。

$ brew install httpd

新しいApacheくんを自動起動するように設定。

$ sudo brew services start httpd

ここで一旦localhostにアクセスしましょう。It works!みたいな表示が出るはずです。

Apacheの構成を変更する

デフォルトでは8080番ポートをListenしてるので80番ポートにする。
Apacheの設定ファイルは/usr/local/etc/httpd/httpd.confにあるのでこれをテキストエディタで開く。

$ atom /usr/local/etc/httpd/httpd.conf

52行目にListen 8080と書いてあるのでListen 80に変更。

次はDocumentRootを変更する。
249、250行目にこんな感じで書いてあるところがある。

DocumentRoot "/usr/local/var/www"
<Directory "/usr/local/var/www">

これを以下のようにする。(わかってると思うけど{ユーザ名}には自分のmacのユーザ名を入れる。)

DocumentRoot /Users/{ユーザ名}/Sites
<Directory /Users/{ユーザ名}/Sites>

そのちょっと下の270行目にあるAllowOverride Noneと書いてある箇所をAllowOverride Allに変更。
次に、182行目の#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.soのコメントアウトを解除(行頭の#を削除)。

これでホームディレクトリの指定が終わった。でもこのままではアクセス権の問題があるので193、194行目にこんな感じで書いてある箇所がある。

User _www
Group _www

これを以下のようにする。

User {ユーザ名}
Group staff

あと、224行目に#ServerName www.example.com:8080と書いてあるはずだが、その下の行にServerName localhostと書いてなかったら改行してから書いておく。

動作確認

ホームディレクトリ直下に作業用ディレクトリを作ってテストファイルを作る。

$ mkdir ~/Sites
$ echo "<h1>Test</h1>" > ~/Sites/index.html

一旦Apacheを再起動。

$ sudo apachectl -k restart

localhostにアクセス。

スクリーンショット 2019-11-26 20.20.50.png

こんな感じになれば成功。今まではここまで行けなかったので非常に気分がいい。

phpをインストールする

(正直ここらへんは参考にしたサイトの内容をそのままやったらできなかったので自分流)
まずHomebrewでphp7.1とphp7.2とphp7.3をインストール。

$ brew install php@7.1
$ brew install php@7.2
$ brew install php@7.3

php7.3とのリンクをちょん切ってとphp7.1とリンクする。

$ brew unlink php@7.3 && brew link --force php@7.1

一応ここで端末を再起動。
phpのバージョンを確認する。

$ php -v
PHP 7.1.33 (cli) (built: Oct 25 2019 10:52:19) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.33, Copyright (c) 1999-2018, by Zend Technologies

Apacheでphpを使えるようにする

恐らく182行目らへんにLoadModule rewrite_module lib/httpd/modules/mod_rewrite.soと書かれているはず。
その下の行にこれを追加。

LoadModule php7_module /usr/local/opt/php@7.1/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so

次に、282-284行目にこんな感じのブロックがある。

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

これを下の文に置き換える。

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

保存して、Apacheを停止させてから再起動。

$ sudo apachectl -k stop
$ sudo apachectl start

phpがインストールできたか確認する。
以下のコマンドを入力。

$ echo "<?php phpinfo();" > ~/Sites/info.php

info.phpを開く。
スクリーンショット 2019-11-26 21.48.05.png

こんな感じの画面が出れば成功。

phpのバージョンを切り替える

以下のコマンドを入力。

$ curl -L https://gist.githubusercontent.com/rhukster/f4c04f1bf59e0b74e335ee5d186a98e2/raw > /usr/local/bin/sphp
$ chmod +x /usr/local/bin/sphp

続いて、以下のコマンドを入力。

$ echo $PATH

なんか出てきたと思います。その中に/usr/local/bin/usr/local/sbinがあるか探してください。
なかったらexport PATH=/usr/local/bin:/usr/local/sbin:$PATH~/.zshrcに追加しといてください。

sphpができるか確認しましょう。以下のコマンドを入力しましょう。

$ sphp 7.2

なんか色々出てくるはず。途中でパスワードも多分要求される。最終的にAll done!と表示されたらOK。
info.phpを開く。

スクリーンショット 2019-11-26 22.11.39.png
phpのバージョンが変わっていることがわかる。

以下のようにすれば任意のバージョンに変更可能。

$ sphp 変更したいphpのバージョン

とりあえずこれで一連の操作はすべて完了。

覚えておきたいこと

Apacheの起動、停止、再起動は以下のコマンドで。

$ sudo apachectl start
$ sudo apachectl -k stop
$ sudo apachectl -k restart

Chromeでlocalhostを見ていると、リロードしても表示が変わらないときが多々ある。
そういうときはスーパーリロードをかけると良いかもしれない。
ChromeのスーパーリロードはCmd + Shift + Rで出来る。

あとがき

数時間で書いたので文章適当かもしれない。
割と面倒臭かった。正直Apacheとphp嫌いになった。

参考

macOS 10.15 Catalina Apache Setup: Multiple PHP Versions | Official home of Grav CMS

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

macでVSCodeのターミナルをPowershellにする

Visual Studio CodeのターミナルをPowershellにする。

image.png

Visual Studio Codeの設定

Powershell 「pwsh」のパスと引数はなしで設定する。

{
    "terminal.integrated.shell.osx": "/usr/local/bin/pwsh",
    "terminal.integrated.shellArgs.osx": []
}

補足

Visual Studio Codeをインストール

macOSのVisual Studio Codeのダウンロードとインストール
https://code.visualstudio.com/docs/setup/mac

Powershellをインストール

brew cask install Powershell
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む