/** Geminiが自動生成した概要 **/
Google TV StreamerでSteam Linkを試した結果、Chromecast with Google TVであったカクつきはメモリ増強により解消された。しかし、Raspberry Pi 4B 8Gと比較するとまだ動きが荒く、更なる設定調整が必要である。 動作改善にはメモリ増強が有効であることが示唆されたが、Raspberry Pi 4B 8Gとの性能差の原因はメモリ以外の部分にもある可能性がある。
カテゴリー : Ubuntu・Raspberry Pi
Google TV StreamerでSteam Linkを試してみた
Ubuntu23.04でaptのリポジトリを復元する
/** Geminiが自動生成した概要 **/
Ubuntu 23.04でaptのリポジトリ設定を誤って削除したため、apt updateができなくなった問題とその解決策を記述しています。まず、ソフトウェアとアップデートのGUIツールを使ってリポジトリ設定をデフォルトに戻そうとしましたが、apt-key形式の廃止によりエラーが発生しました。解決策として、従来の`/etc/apt/trusted.gpg`に格納されていたキーを`/etc/apt/trusted.gpg.d/`ディレクトリ以下に移動し、`/etc/apt/trusted.gpg`を削除することで、エラーを解消しました。
NGINXでSOY CMSを動かす手順を作成しました
/** Geminiが自動生成した概要 **/
NGINX 1.25 で実験的に HTTP/3 がサポートされたことを受け、SOY CMS を NGINX で動かす手順が公開されました。手順は「NGINX 管理画面側の準備 - SOY CMSを使ってみよう」に記載されています。SOY CMS 3.13.0 および SOY Shop 2.9.0 以降では、NGINX で SOY CMS を動かす際に必要な Apache 特有の環境変数を補完する機能が追加されました。これにより、NGINX 環境でも SOY CMS をスムーズに利用できるようになります。
ChromecastでSteam Linkを試してみた
/** Geminiが自動生成した概要 **/
著者は、Chromecast with Google TVでSteam Linkを使ってゲームができるか検証しました。しかし、ゲーム動作がカクカクしてしまい、原因を調査。ネットワーク速度を向上させるためにイーサネットアダプターを導入しましたが改善されず、Chromecastのスペック不足が原因と推測しました。そこでRaspberry Pi 4Bで試したところ、スムーズに動作。Chromecastのメモリ容量が影響している可能性を指摘し、他のスペックのマシンでの検証を希望しています。追記として、Chromecastの後継機であるGoogle TV Streamerでも同様の検証を行った記事へのリンクが掲載されています。
Ubuntu22.10でWiFiの接続に失敗する時の対処
/** Geminiが自動生成した概要 **/
Ubuntu 22.10 で WiFi 接続エラーが発生し、NetworkManager の再起動で解決する場合がある現象について記述されています。エラー発生時には NetworkManager のログに "ip-config-unavailable" が記録され、IP アドレス取得のタイムアウトが原因と推測されます。記事では、WiFi 接続時の IP アドレス取得が他のサービスの起動よりも早く行われることが原因の可能性を示唆しています。解決策として IP アドレス取得の時間を延長する方法があるようですが、記事では検証されていません。
Raspberry PiでScratch3.0の開発環境を構築する
/** Geminiが自動生成した概要 **/
Raspberry PiにScratch3.0の開発環境を構築する方法を解説しています。Node.jsのバージョンはScratch3.0との互換性のため14.20.1を使用し、パッケージ管理にはYarnを採用しています。まずNode.jsとnpmをインストール後、nを使ってNode.jsのバージョンを管理します。次に、scratch-vmとscratch-guiのリポジトリをクローンし、yarn linkとyarn installコマンドで依存関係を解決します。最後にyarn startコマンドでVMを起動し、ブラウザからhttp://localhost:8601/ にアクセスするとScratch3.0の画面が表示されます。記事ではyarn installに時間がかかること、エラーが発生しても問題ない場合があることなど、注意点も解説されています。
さくらインターネットのVPSでUbuntuのアップグレード後にapt updateが使えなくなった時の対処
/** Geminiが自動生成した概要 **/
さくらインターネットのVPSでUbuntu 20.04から22.04にアップグレード後、`sudo apt update`が使えなくなり、pingも通らなくなった問題の解決策です。原因は`/etc/resolv.conf`内のnameserver設定にあり、`127.0.0.53`を`8.8.8.8` (Google DNS) に変更することで解決しました。ただし、`/etc/resolv.conf`の直接編集は再起動時に初期化されるため、正しくは`/etc/systemd/resolved.conf`に`DNS=8.8.8.8`を追記し、`sudo systemctl restart systemd-resolved`を実行する必要があります。
Minecraft: Pi Edition: RebornのSDKを使ってゴールデンシャベルを追加してみた
/** Geminiが自動生成した概要 **/
この記事は、Minecraft: Pi Edition: Reborn (MCPI++) のSDKを使って、ゲームに「ゴールデンシャベル」を追加する方法を解説しています。まず、MCreatorを使って16x16ピクセルのゴールデンシャベルのアイコン画像を作成し、既存のitems.pngに挿入します。次に、C++で書かれたgoldenshovel.cppを作成し、アイテムの追加、アイコンの設定、ゲーム内での表示名などを定義します。最後に、CMakeを使ってコードをコンパイルし、生成されたライブラリファイルをmodsディレクトリに配置することで、ゴールデンシャベルがゲームに追加されます。記事では、コードの各部分がどのような役割を持っているか、また画像ファイルやCMakeLists.txtの設定方法などが詳しく解説されています。
Minecraft: Pi Edition: RebornのSDKを使ってみる2
/** Geminiが自動生成した概要 **/
この記事では、Minecraft: Pi Edition: Reborn (MCPI++) のSDKにあるライブラリを呼び出す方法を解説しています。CMakeを使ってプロジェクトを作成し、SDKのヘッダーファイルをインクルードします。サンプルコードでは、libreborn.hをインクルードし、空の関数を定義しています。CMakeLists.txtでは、SDKへのパスを設定し、ビルドターゲットとして共有ライブラリを作成しています。ビルド後、生成されたライブラリをmodsディレクトリに移動し、MCPI++を起動して動作を確認します。
Minecraft: Pi Edition: RebornのSDKを使ってみる
/** Geminiが自動生成した概要 **/
Minecraft: Pi Edition: Reborn (MCPI) の拡張SDKを使い、ターミナルに"Helloworld"を出力する手順を紹介しています。まずMCPI++ 2.4.3-3をインストールし、C++コンパイラなどの開発環境を整えます。次に、"Helloworld"を出力するコードを記述した"hello.cpp"を作成し、共有ライブラリとしてコンパイル、MCPIのmodsディレクトリに配置します。MCPIを実行すると、起動時に"Helloworld"が出力されます。これは、共有ライブラリ内の特定の関数がエントリポイントとして機能するためです。記事では最後に、ゲーム画面に影響を与えるコードの作成に意欲を示しています。
キーボード一体型のRaspberry Pi 400を購入した
/** Geminiが自動生成した概要 **/
子供がRaspberry Pi 4B 8GBでマインクラフトをプレイするため、発熱と火傷が心配で購入に至った。ケースに入れているものの電子工作がしにくいという欠点もあった。マイクラを通してプログラミングに興味を持ち、Pythonでコードを書きながらプレイするようになった。Raspberry Pi 400の発熱がどれ程なのか検証したい。
ChromebookのCrostiniでMicro:bitのフラッシングをしてみた
/** Geminiが自動生成した概要 **/
ChromebookのCrostiniでMicro:bitのフラッシングを行う際、Crostiniは仮想環境のためUSBを直接認識できない。そこで、Crostini上のMicro:bitの認識先である`/mnt/chromeos/removable/MICROBIT/`を`uflash`コマンドのターゲットとして指定することでフラッシングが可能になる。
Raspberry PiにMCPI++を入れてみた
/** Geminiが自動生成した概要 **/
この記事は、Raspberry PiにMinecraft: Pi Edition: Reborn (マイクラリボーン) の拡張版をインストールする方法と、その拡張機能について解説しています。拡張版では、ブロックやアーマーの種類が増えるなどのアップデートがあります。インストールは、スクリプトを実行するだけで完了します。拡張版はマイクラリボーンの新バージョンに合わせて更新されるようです。
Ubuntu + LXDEでデスクトップにFirefoxアイコンを設置する
/** Geminiが自動生成した概要 **/
この記事は、Ubuntu 22.04 LXDE環境でデスクトップにFirefoxのアイコンを設置できない問題を解決する方法を解説しています。問題はsnap版Firefoxをインストールした場合に発生し、デスクトップエントリを作成することで解決できます。手順としては、1. `/usr/share/applications/firefox.desktop` ファイルを作成し、必要な情報を記述します。2. メニューからFirefoxを見つけて右クリックし、「デスクトップに追加」を選択します。これにより、デスクトップにFirefoxのアイコンが設置されます。記事ではデスクトップエントリの詳細についても触れています。
メインの開発機をRaspberry Pi 4Bにしてみる
/** Geminiが自動生成した概要 **/
## プログラミング教育におけるARM+Debian+Pythonの可能性(要約)記事は、高性能化・低価格化したRaspberry Piに代表されるARMデバイスが、プログラミング教育に最適であると主張しています。その理由は以下の3点です。1. **安価で入手しやすい:** Raspberry Piは数千円で入手でき、故障時のリスクも低い。2. **DebianベースのOS:** 安定性・信頼性が高く、豊富なソフトウェアが利用可能。3. **Pythonの標準搭載:** 初心者に優しく、実用的なプログラミング言語として人気が高い。これらの要素により、ARMデバイスは教育現場におけるプログラミング学習のハードルを下げ、生徒の学習意欲向上に貢献できると結論付けています。
ChromebookでMinecraft: Pi Edition: Rebornを動かしてみた
/** Geminiが自動生成した概要 **/
LXC (Linux Containers) は、単一のLinuxカーネル上で複数の分離されたLinuxシステム (コンテナ) を実行するためのOSレベルの仮想化手法です。各コンテナは独立したシステムリソース (CPU、メモリ、ネットワークなど) を持ち、ホストOSや他のコンテナから隔離されます。LXCは、chrootのような従来の分離機構よりも軽量で効率的でありながら、仮想マシンよりもオーバーヘッドが少なくなっています。これにより、開発、テスト、運用環境において、アプリケーションの移植性、セキュリティ、リソース効率を向上させることができます。LXCは、DockerやLXDなどのコンテナ技術の基礎となっています。
AppImage形式のMinecraft: Pi Edition: Rebornでスキンを変更してみた
/** Geminiが自動生成した概要 **/
この記事は、AppImage形式になったMinecraft: Pi Edition: Rebornでスキンを変更する方法を解説しています。まず、AppImageファイルを実行する準備として、`chmod`コマンドで実行権限を与え、`fuse`パッケージをインストールします。スキンの変更は、`~/.minecraft-pi/overrides/images/mob/`ディレクトリに`char.png`という名前でスキンファイルを配置します。ただし、このままだとスキンが崩れてしまうため、`minecraft_skin_fixer.py`というスクリプトを使って修正します。最後に、AppImageファイルを`/usr/local/bin`に移動して`mcpi`というコマンド名で実行できるように設定しています。
Minecraft: Pi Edition: Rebornでmcpiライブラリを試す
/** Geminiが自動生成した概要 **/
記事では、プログラミング教育に最適な環境として、ARMアーキテクチャ、Debian系OS、Pythonの組み合わせを提唱しています。低価格なRaspberry Piを例に挙げ、その手軽さ、豊富なライブラリ、活発なコミュニティが教育現場にもたらすメリットを解説しています。従来の教育用PCよりも安価で汎用性が高く、電子工作などにも応用できる点が魅力的だと結論付けています。
Minecraft: Pi Edition: Rebornでスキンを変更してみた
/** Geminiが自動生成した概要 **/
この記事は、Minecraft: Pi Edition: Rebornでスキンを変更する方法を解説しています。まず、好みのスキンをダウンロードします。次に、標準のスキンのPNGファイル(char.png)をバックアップし、ダウンロードしたスキンで置き換えます。この際、ファイルパスに注意が必要です。スキンを変更後、デザイン崩れが発生する場合は、Pythonスクリプト(minecraft_skin_fixer.py)を使用して修正します。スクリプト内のファイルパスを自身の環境に合わせて変更する必要があります。修正後、Minecraft: Pi Edition: Rebornを再起動すると、スキンが変更されているはずです。
Rasbperry Piにゲームパッドを繋ぎ、マインクラフトを操作する
/** Geminiが自動生成した概要 **/
この記事は、Raspberry PiまたはUbuntuに接続したLogicool F310ゲームパッドを使用してMinecraft: Pi Edition: Rebornを操作する方法を解説しています。Windows PC用のゲームパッドをLinux環境で動作させるため、joystickとjstest-gtkドライバをインストールします。jstestコマンドでゲームパッドが認識されていることを確認後、qjoypadをインストールし、GUIで各ボタンにキーボードやマウスの操作を割り当てます。記事では、マイクラリボーン用に設定したボタン割り当てを紹介し、動作確認を行うよう促しています。
プログラミング教育用のノートパソコンを探せ
/** Geminiが自動生成した概要 **/
Minecraft: Pi Editionを教材にプログラミング教育をしたいが、Raspberry Piは持ち運びに不便なため、代わりのノートパソコンを探している。Ubuntuが動作する中古PCでは性能不足が懸念される。そこで注目しているのが、QualcommのSnapdragonを搭載したSamsungの格安ノートPC「Galaxy Book Go」だ。ARMアーキテクチャを採用し、Ubuntuも動作する可能性があり、Raspberry Piの自由度とChromebookの価格帯の中間をいくマシンとして期待できる。
Minecraft: Pi Edition: Reborn on Ubuntu
/** Geminiが自動生成した概要 **/
記事では、子供向け科学雑誌に掲載された「Minecraft: Pi Edition: Reborn」(マイクラリボーン)を、Raspberry Piだけでなく、普段使いのUbuntuパソコンでも動作させた体験談を紹介しています。記事では、マイクラリボーンがUbuntu 20.04以降で動作すること、amd64、arm64、armhfのdebファイルが配布されていることから、Intel Core i5搭載のUbuntuパソコンにインストールして動作確認を行ったことが記載されています。その結果、Raspberry Pi版と同様に動作し、ローカルネットワーク経由で一緒に遊ぶこともできたと報告しています。そして、この経験から、教育用パソコンにおけるARM、Debian、Pythonの重要性について、次回以降の記事で考察していくことを示唆しています。
ESP8266とRaspberry Piでソケット通信を試す
/** Geminiが自動生成した概要 **/
この記事では、ESP8266モジュールをクライアント、Raspberry Piをサーバーとしたソケット通信を試みています。まず、ESP8266側でWiFi接続を行い、サーバー側のIPアドレスとポート番号を指定してソケット通信を行います。記事では、ESP8266から"send socket from esp8266"というメッセージをサーバーに送信し、サーバー側で受信できていることを確認しています。これにより、ローカルネットワーク内でESP8266からRaspberry Piにデータを送信できることが確認できました。今後は、温度などのデータを送受信する方法を検討していく予定です。
コンピュータ二台でソケット通信を試す
/** Geminiが自動生成した概要 **/
この記事は、二台のコンピュータ間でローカルネットワークを通じてソケット通信を行う方法を解説しています。まず、Raspberry Piをサーバー側にして、そのローカルIPアドレスを調べます。次に、Pythonで記述したサーバープログラムを、調べたIPアドレスを使って修正します。クライアント側にはLinuxマシンを使用し、同様にローカルIPアドレスを調べます。その後、クライアントプログラムを実行し、サーバープログラムが実行されているRaspberry PiのIPアドレスとポート番号を指定して接続します。記事では、接続が成功したことを確認後、NodeMCUとRaspberry Piでのソケット通信に進むことを示唆しています。
コンピュータ一台でソケット通信を試す
/** Geminiが自動生成した概要 **/
この記事では、マイコンを用いたデータ送信システム構築に向けて、まずは一台のPCでのソケット通信を試行しています。具体的には、Pythonを用いて、受信側(サーバー)と送信側(クライアント)のプログラムを作成し、同一PC上で動作させています。サーバー側はポート番号12345で接続を待ち受け、クライアント側からの接続があると、入力されたデータを受信し、"Successed!"というメッセージを返信します。記事では、それぞれのプログラムのコード例と実行結果を示し、実際にデータの送受信が成功していることを確認しています。今後は、2台のPC間でのソケット通信に挑戦する予定です。
Raspberry PiのPWMでサーボモータを動かしてみる
/** Geminiが自動生成した概要 **/
この記事では、Raspberry PiのPWM機能を使ってサーボモーターを制御する方法を解説しています。サーボモーターは、パルス幅によって回転角度を制御することができます。この記事では、GeekServo 9G Servo-Grayというサーボモーターを使用し、GPIO 12に接続して制御しています。コードでは、RPi.GPIOライブラリを使ってPWM信号を生成し、ChangeDutyCycle()関数でデューティ比を変更することで、サーボモーターの回転角度を制御しています。具体的には、デューティ比2.5%で-45度、7.25%で90度、12%で225度回転するように設定されています。
Raspberry Piと赤色LEDでホタルのような点滅を試す
/** Geminiが自動生成した概要 **/
記事では、Raspberry PiとLEDを用いて、PWM(パルス幅変調)による疑似アナログ信号の生成と、その効果について解説しています。PWMは、デジタル信号のパルス幅を調整することで、見かけ上アナログ信号のような出力を行う技術です。記事では、パルス幅を徐々に変化させることで、LEDの明るさが滑らかに変化する様子を「ホタルの光」に例えています。 具体的には、Pythonコードを用いてPWMのデューティ比を周期的に変化させることで、LEDの明るさを制御し、ホタルの点滅のような効果を実現しています。
Fritzingを使って、Raspberry Piの回路図を作成する
/** Geminiが自動生成した概要 **/
Fritzingというアプリを使えば、電子回路の回路図が簡単に作成できます。Raspberry Piなど、様々な電子部品がパーツとして用意されており、ドラッグ&ドロップで配置できます。標準パーツにない場合は、ネットから追加することも可能です。例えば、Raspberry Pi 4 Model Bのパーツは、フォーラムで共有されているfzpzファイルをダウンロードしてインポートすることで使用できます。
Raspberry Piのシリアルコンソールを試す
/** Geminiが自動生成した概要 **/
Raspberry Piのシリアルコンソール機能を使うと、ネットワーク環境がなくても有線でRaspberry Piを操作できます。今回は、Raspberry Pi 4BとUbuntu 20.04、USB-TTLシリアルコンソールケーブルを使って接続を試みました。Raspberry Pi側でシリアルポートとコンソールを有効化し、ケーブルで接続します。Ubuntu側ではscreenコマンドを使ってシリアルコンソールに接続します。接続が確立すると、Ubuntuの端末にRaspberry Piのログイン画面が表示され、操作が可能になります。接続を終了するには、ctrl + a、kと入力します。
Raspberry PiでLCDに文字列を出力する
/** Geminiが自動生成した概要 **/
この記事では、Raspberry PiとI2C接続のLCDディスプレイを使って文字列を表示する方法を解説しています。まず、Raspberry Piの設定でI2Cを有効化し、LCDのI2CモジュールをGPIOピンに接続します。接続が正しければ、「i2cdetect -y 1」コマンドでI2Cアドレスが表示されます。次に、OSOYOOのライブラリ「i2clcda.py」を使ってPythonコードを作成し、LCDに文字列を表示します。コードでは、ライブラリをインポート後、「lcd_init()」でLCDを初期化し、「lcd_string()」関数で文字列と表示位置を指定して出力します。表示されない場合は、I2Cモジュールのポテンショメータを調整してコントラストを調整する必要があります。
PHP8でMacabを使い、任意の文字列の読み方を取得する
/** Geminiが自動生成した概要 **/
PHP8でMeCabを使い、文字列の読み方を取得する方法について記述されています。PHP拡張のphp-mecabがPHP8では動作しないため、exec関数でMeCabコマンドを実行し、出力結果を解析することで読み方を取得しています。「初心者用シューズ」を例に、カタカナで「ショシンシャヨウシューズ」、ひらがなで「しょしんしゃようしゅーず」と出力するコードが紹介されています。Ubuntu 20.04、PHP 8.0.10環境で動作確認済みです。PHP8で動作するMeCabライブラリがあればより良いと述べています。
NmapでLAN内のRaspberry Piを探してみる
/** Geminiが自動生成した概要 **/
仮想化は、コンピュータリソースの抽象化を通じて、物理的な特性から独立した仮想的な環境を作り出す技術です。ハードウェア仮想化は、ハイパーバイザーを用いて複数のOSを同時実行可能にします。一方、OSレベル仮想化(コンテナ技術など)は単一のOSカーネル上で隔離されたユーザー空間を提供し、軽量かつ高速な仮想環境を実現します。仮想化はサーバー統合、災害復旧、開発環境の構築など、多様な用途で活用され、柔軟性と効率性の向上に貢献します。近年では、クラウドコンピューティングの基盤技術としても重要性を増しています。
ChromebookでJava製のアプリを実行する
/** Geminiが自動生成した概要 **/
ChromebookのLinux環境でPENを動かすための手順を紹介した記事の続きで、日本語入力の設定方法を解説している。PENはJava製のため、LinuxにJavaをインストールする必要がある。インストールコマンド `sudo apt install default-jre`、バージョン確認コマンド `java -version` を紹介。その後、`java -jar PEN.jar` でPENを起動できるが、日本語入力ができないため、フォント設定が必要となる。この設定は次の記事で詳しく解説する、と予告している。
Chromebookはプログラミングの教育の端末として向いているか?を調査する
/** Geminiが自動生成した概要 **/
ChromebookのLinuxアプリで日本語入力ができない問題を解決する方法を解説した記事の要約です。ChromebookのLinux環境では標準で日本語入力ができません。この記事では、fcitx-mozcをインストールすることで日本語入力できるようにする方法を、スクリーンショット付きで丁寧に説明しています。まず、Linuxターミナルを開き、必要なパッケージをインストールします。次に、設定ファイルを作成・編集し、fcitxを起動するように設定します。最後に、Chromebookを再起動し、入力メソッドの設定で日本語(Mozc)を選択すれば、日本語入力が可能になります。記事では、詳細なコマンドや設定内容、トラブルシューティングについても触れています。
Let's Encryptでwwwありなしに対応する
/** Geminiが自動生成した概要 **/
Let's Encryptを用いて、wwwあり(www.example.com)なし(example.com)両方のドメインでhttpsアクセスを実現する方法。Ubuntu 18.04、Apache2環境を前提とする。まず、certbotをsnapでインストールし、example.comのhttps化を行う。その後、www.example.comの証明書取得のため、`certbot certonly --webroot`コマンドを実行(webroot-pathはドキュメントルート)。最後に、Apacheの設定ファイル(000-default-le-ssl.conf)にwww.example.comのVirtualHost設定を追加し、example.comへのリダイレクトを設定、Apacheを再起動する。
WordPressのデータベースのスキーマを調べる
/** Geminiが自動生成した概要 **/
WordPressからのデータ抽出のため、データベーススキーマのバージョン調査を行った。テーブル名は`wp-includes/wp-db.php`に定義されており、バージョン2.5.0から変更がない。テーブルスキーマは`wp-admin/includes/schema.php`にSQLで定義され、バージョン3.3.0から変更がないことがわかった。よって、データ抽出ツールはWordPress 3.3.0以降に対応させ、それ以前のバージョンはアップグレードしてから利用するよう条件付けすれば良い。
UbuntuでMySQLのアップグレードが停止する原因を探る
/** Geminiが自動生成した概要 **/
Ubuntu 20.04の開発環境で、MySQL 8系のapt upgradeが停止する問題が発生。原因はMySQLの設定ファイル`mysqld`セクションに`skip-grant-tables`が設定されていたため。この設定はパスワード認証を無効化するためのもので、アップグレード処理と競合した模様。`skip-grant-tables`をコメントアウトすることで問題は解決した。開発環境ではパスワード入力を省略するために設定していたが、セキュリティリスクの高い設定のため、本来の使い方ではない。
WSLのApacheをWindows起動時に自動起動させる [WSL/Ubuntu環境]
/** Geminiが自動生成した概要 **/
Windows起動時にWSL上のApacheを自動起動させる方法。まず、sudoers.dディレクトリにmy-auto-startファイルを作成し、Apache起動コマンドをパスワードなしで実行できるように設定する。次に、.bashrcファイルにApache再起動コマンドを追加。最後に、スタートアップフォルダにmy-auto-start.vbsファイルを作成し、WSLを起動するVBScriptを記述する。Windows再起動後、Apacheが自動的に起動する。
WSL2でSOY CMSの開発環境を作ってみた(virtualhost編)
/** Geminiが自動生成した概要 **/
WSL2上のUbuntuにApache2とPHPで構築したSOY CMS環境に、VirtualHostを追加する方法を解説しています。`/etc/apache2/sites-available/`にある`000-default.conf`を`demo.conf`にコピーし、ポートを8080、DocumentRootを`/home/ryoko/workspace/demo`に変更、アクセス許可の設定を追加します。`a2ensite`コマンドで有効化し、Apache2を再起動後、`localhost:8080`でSOY CMSの管理画面が表示されれば成功です。
WSL2でSOY CMSの開発環境を作ってみた
/** Geminiが自動生成した概要 **/
さくらのVPSにUbuntu 18.04を導入し、SOY CMSを稼働させる手順を解説した記事の要約です。まず、OSインストール後、Apache、PHP、必要なPHP拡張機能、MySQLをインストールします。次に、MySQLにSOY CMS用のデータベースとユーザーを作成し、ファイアウォールでHTTPとHTTPSを許可します。SOY CMSのzipファイルをダウンロードし、ドキュメントルートに展開後、ブラウザからインストールを実行します。SQLite版ではなくMySQL版を利用するため、データベースの設定が必要です。最後に、サイトURLと管理者情報を入力してインストールを完了します。記事ではコマンド操作の詳細やトラブルシューティングも紹介されています。
php-webdriverでelement click interceptedのエラーに対して
/** Geminiが自動生成した概要 **/
SeleniumとJenkins、php-webdriver、ヘッドレスChromiumでテスト自動化中に、メモウィジェットが原因でelement click interceptedエラーが発生。ヘッドレスモードで画面サイズが不足し、対象ボタンが隠れていたのが原因。ウィンドウサイズを`1024x2048`に設定することで一時的に解決したが、ページサイズに依存するこの方法は最適ではない。スクロールによる解決策も検討されたが、最終的にはCSSを修正し、メモウィジェットが他のボタンと重ならないように調整することで根本解決した。
fatal: write error: No space left on deviceの対処
/** Geminiが自動生成した概要 **/
ArchWikiのLogrotateの記事は、ログファイルの自動ローテーション、圧縮、削除を行うためのツール、logrotateの使い方を解説しています。設定ファイル(/etc/logrotate.conf, /etc/logrotate.d/)でローテーション間隔、保持期間、圧縮有無などを指定し、通常はcronで毎日実行されます。設定ファイルの各ディレクティブは、ローテーション頻度(daily, weeklyなど)、保持数(rotate)、圧縮(compress)、ローテーション後のファイル名(olddir, ifempty)、実行権限(create)、所有者(user, group)、実行スクリプト(prerotate, postrotate)などを制御します。 トラブルシューティングとして、デバッグオプション(-d)で動作確認、ログ(/var/lib/logrotate/status)のチェックが有効です。
【SEO対策】実行環境のバージョンを上げて高速化
/** Geminiが自動生成した概要 **/
PageSpeed Insightsでスコア100を目指すため、サーバー側の処理速度向上に取り組んだ。SEO対策として、PHP製CMSを使う場合、PHPバージョンを最新に保つことが重要。PHP7系はOPCacheにより高速化されており、バージョンアップだけでスコア向上も期待できる。VPSサーバでのバージョンアップ方法は過去記事を参照。PHP8ではJitコンパイラ導入で更なる高速化が見込まれる。かつてGo言語への移植も検討したが、PHPでスコア100達成できたため中止した。
【SEO対策】Gueztliで画像のファイルサイズの削減
/** Geminiが自動生成した概要 **/
この記事では、ウェブサイトのSEO対策として画像ファイルサイズの削減に焦点を当てています。GoogleのJPEGエンコーダGuetzliを導入することで、画像品質を維持しながらファイルサイズを大幅に削減できることを実例で示しています。具体的には、115.8kbの画像がGuetzliによって9.4kbまで圧縮され、80%以上の削減に成功しています。また、PageSpeed InsightsによるWebP等の次世代フォーマットの推奨についても触れつつ、Safari非対応やPageSpeed Module導入によるパフォーマンス低下を理由に現状では採用を見送っていることを説明しています。