日々の開発の中で出てきた技術ネタっぽいやつ3選!
こんにちは、エンジニアの坂口です。
日々色々なシステムを開発・運用している中で出てきた、技術ネタっぽい何かをいくつか書いてみようと思います。
今回は
- baserCMS4:サイト内検索の検索データの謎
- Homebrew経由でサポートが終了したPHPをインストール
- M1 / M2 Macで仮想環境(Windowsなど)をつかうにはUTMがよさそう
の三本立てです!
baserCMS4:サイト内検索の検索データの謎
キャッチアップでも社内ポータルを利用しています。弊社のサービスプロダクトでもある「onemind」に+αの独自拡張です!
その社内ポータル、キーワードを入れて検索をすると、何故か毎回関係ないページも検索にヒットするのです。
まぁ、いつもはあんまり考えずにサラッと流していたのですが(あかんやつ!)ふとあるとき、なんでかな?と思って検索用のデータをみてみました。
画面上の本文にはキーワードはないのだけれど、データベースの検索用テーブル(mysite_search_indices)内に確かに検索時のキーワードの文字がある。
おや??
しばらくにらめっこしたり、目grep!!!
あ、これ、ポータルの画面下部、コンテンツナビの部分が検索データに埋め込まれている!
標準状態のbaserCMS4系だとコンテンツナビの部分は検索データに入ってなかったので、なんのバグかいな、と調べた結果…。
baserCMS4コアのファイル lib/Baser/Model/Page.php の createSearchIndex()で検索データを作成しているのですが、固定ページの本文部分のをそのままではなく、requestAction で内部的に固定ページを生成してデータ作成していました。
- 標準状態のbaserCMS4の場合
レイアウトテンプレートにコンテンツナビ($this->BcBaser->contentsNavi())の記述がある
→ requestAction での生成時にはレイアウトテンプレートは考慮していないのでコンテンツナビは検索データに入っていなかった
- キャッチアップのポータルの場合
固定ページテンプレートにコンテンツナビ($this->BcBaser->contentsNavi())の記述がある
→ requestAction での生成時にレイアウトテンプレートは考慮されていないが、固定ページテンプレートは反映するのでコンテンツナビが検索データに入っていた
という違いがあったのが原因でした。どっかのタイミングでポータルのテーマをなおしておこうと思います…。
ちなみに最新のbaserCMS5系では、固定ページの仕様が変わっているので、コンテンツナビ部分は最初から検索データには含まれない仕様でした!
想定内で改善されとるのか、想定外に改善されとるのか、どっちだろか?!\(^o^)/
Homebrew経由でサポートが終了したPHPをインストールする
たまに過去の案件の改修なんかで、古めのPHPで動作確認したい時があったのですが、brew searchとかやっても出てこない。
でどうしようかなと検索した結果、ちょっと設定すればインストールできるようでしたので、ご紹介です。
MacのあなたならもうHomebrew導入して使ってますよね!(Y/y)
コマンドだけでなくGUIのアプリもインストールできて便利ですよねー
で、もとの話に戻って手順です。
まずは tap
brew tap shivammathur/php
あとは、バージョンを指定してインストール!
PHP7.2の例
brew install shivammathur/php/php@7.2
簡単ですね!
ちなみに、MAMPで上記のバージョンのPHPを使おうと思ったら、それぞれシンボリックリンクをはってVirtualHost設定すればOK!
各所にシンボリックリンクを作成
cd /Applications/MAMP/cgi-bin
ln -s /opt/homebrew/opt/php@7.2/bin/php-cgi php7.2.cgi
cd /Applications/MAMP/bin/php/
ln -s /opt/homebrew/opt/php@7.2 php7.2.34
VirtualHost設定します
code /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
ServerName hogehoge.localhost
DocumentRoot /Volumes/Projects/hogehoge/htdocs/
Action php7.2-script /cgi-bin/php7.2.cgi
AddHandler php7.2-script .php
Apacheを再起動します
/Applications/MAMP/Library/bin/apachectl restart
そしてブラウザで http://hogehoge.localhost:8888 へアクセスして確認!
Dockerつかえやゴルァ!!٩( ఠ༬ఠ)و ってのは、まぁ、ねぇ、はい、そうですね…。
M1 / M2 Macで仮想環境(Windowsなど)をつかうにはUTMがよさそう
Macの主流がIntelからApple Siliconに変わってはや何年。
ほとんどの普段遣いのアプリが対応されつつ有り特に困ったことはなくなっているのですが、そんな中で唯一決め手にかけるところがあったのが VirtualBox の変わりをどうしようかな、ってところでした。(有償ならparallels desktopとかあるけど、そこまで使わないしなーって)
たまにしか使わないからまぁ一いいかなと放置していたのですが、ひょんなことから少し古めのFreeBSDの環境を作って動作検証したくなって。
そこでググったところ、UTMというQEMU使った仮想環境アプリが良さそうでした。
インストールは
brew install utm
でOK!簡単便利!
あとはFreeBSDの該当のバージョンのISOファイルをダウンロードして無事インストール、動作検証できました。
https://mac.getutm.app/gallery/ に色々プリセット的なのが上がっているのでワンクリックでサクッと試せますよー
Windowsも動くみたいなんでそのうち試そうと思います!
最後まで読んで頂いてありがとうございました
どこで誰が役立つのかわからん小ネタばかりですが、たまにはどうでしょうかということで!
最後に趣味の写真でも御覧ください!(またか)
Next Plastic Model !
次はこれ作ります!先日発売されたばかりの新作プラモデル!!
令和でもサイバーフォーミュラ ━━━━(゚∀゚)━━━━!!
サイバーフォーミュラSAGAは近未来の2019年が舞台のお話だったんだけどあっという間に現実がすぎちゃってますねぇ、、( ◜◡◝ ) シミジミ