ブログ内検索

プログラミング教材開発
大阪府高槻市原地区で肥料教室を開いています
検索キーワード:「Apache」
 

Selenium + php-webdriverでElementNotInteractableExceptionのエラーにハマった時の対処

/** Geminiが自動生成した概要 **/
Selenium + php-webdriver + Chromeのバージョンアップ後、`ElementNotInteractableException: element not interactable` エラーが発生。 環境は、Ubuntu 22.04.3 LTS, Selenium 4.13.0, php-webdriver 1.15.0, Chrome 117.0.5938.92, PHP 8.2.10, Apache 2.4.57。 エラーは `RemoteWebElement->sendKeys()` で発生し、 `<input type="text">` に文字列を入力する箇所で発生。 調査の結果、`<input>` の `type` が `hidden` になっていたことが原因。以前のバージョンでは強制的に実行されていたが、バージョンアップによりエラーになった。 `readonly` 属性を持つ `<input>` でも同様のエラーが発生する。

 

Selenium + php-webdriverでWebDriverCurlExceptionのエラーにハマった時の対処

/** Geminiが自動生成した概要 **/
Seleniumとphp-webdriverのバージョンアップ後にWebDriverCurlExceptionが発生した問題の解決策についての記事です。 ログイン・ログアウトを繰り返すテストコードで、三回目のログイン時にエラーが発生。調査の結果、セッションの破棄と再生成が必要であることが判明。php-webdriverのquitメソッドを用いてdriverを明示的にquitすることで解決しました。 記事では、エラー発生時の環境、テストコード、エラーメッセージ、解決策を詳細に記述しています。

 

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 をスムーズに利用できるようになります。

 

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を再起動する。

 

【SEO対策】PHPのOPCacheの更新チェックの頻度を下げる

/** Geminiが自動生成した概要 **/
PHPのOPCacheは、バイトコードをキャッシュしてパフォーマンスを向上させる機能。設定項目`opcache.revalidate_freq`はスクリプトの更新チェック頻度を制御する。デフォルトは2秒だが、CMSサイト等でPHPスクリプトの更新が少ない場合は、この値を大きくすることで更新チェックのオーバーヘッドを減らせる。設定変更は`php.ini`で`opcache.validate_timestamps`を有効化し、`opcache.revalidate_freq`を例えば86400(1日)に変更、サーバー再起動で行う。今回の検証ではパフォーマンスの顕著な差は見られなかった。

 

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と管理者情報を入力してインストールを完了します。記事ではコマンド操作の詳細やトラブルシューティングも紹介されています。

 

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)のチェックが有効です。

 

gRPC for PHPのインストール

/** Geminiが自動生成した概要 **/
この記事はUbuntu 19.10環境でGoogle Ads APIを使用するためのgRPC for PHPのインストール手順を解説しています。PEAR/PECL、Composerをインストール後、`pecl install grpc`、`pecl install protobuf`コマンドでgRPCとprotobufをインストールします。その後、`/etc/php/7.4/cli/php.ini`と`/etc/php/7.4/fpm/php.ini`両方に`extension=grpc.so`と`extension=protobuf.so`を追加し、`phpinfo()`や`php -m`でインストールを確認します。記事ではComposerのインストール手順も解説していますが、gRPCのインストール自体はComposerを使わずPECL経由で行っています。

 

SOY CMSの静的化プラグインで高速化

/** Geminiが自動生成した概要 **/
SOY CMSの静的化プラグインが改良され、ページ単位での静的化設定、全プラグイン実行後の静的化処理、ページ更新時の静的ファイル一括削除、サイトキャッシュ削除時の静的ファイル削除が可能になった。従来の静的化はフロントコントローラやRewriteモジュールの処理を回避することで高速化を実現していたが、今回の改良でさらに柔軟性と効率性が高まった。HTMLキャッシュプラグインと併用することで、標準ページは静的化、ブログページはHTMLキャッシュと使い分け、サーバー負荷軽減に効果的。改良版はsaitodev.coからダウンロード可能。高速化に加え、SEO対策にも有効。

 

【SEO対策】キャッシュの利用でデータ転送量を削減

/** Geminiが自動生成した概要 **/
SEO対策として、データ転送量削減のためブラウザキャッシュを活用する方法を解説。HTML以外のファイルは一度取得すれば再取得不要なため、ApacheのExpiresモジュールでブラウザにキャッシュさせる。Ubuntu環境でApache2.4を前提に、a2enmod expiresコマンドでモジュールを有効化し、.htaccessにファイルタイプごとにキャッシュ期間を設定する記述を追加すれば完了。HTMLは即時、CSS/JavaScriptは10日間、画像は15日間キャッシュされるようになる。

 

【SEO対策】Gueztliで画像のファイルサイズの削減

/** Geminiが自動生成した概要 **/
この記事では、ウェブサイトのSEO対策として画像ファイルサイズの削減に焦点を当てています。GoogleのJPEGエンコーダGuetzliを導入することで、画像品質を維持しながらファイルサイズを大幅に削減できることを実例で示しています。具体的には、115.8kbの画像がGuetzliによって9.4kbまで圧縮され、80%以上の削減に成功しています。また、PageSpeed InsightsによるWebP等の次世代フォーマットの推奨についても触れつつ、Safari非対応やPageSpeed Module導入によるパフォーマンス低下を理由に現状では採用を見送っていることを説明しています。

 

【SEO対策】HTTP/2

/** Geminiが自動生成した概要 **/
HTTP/2は、HTTP/1.1以前のバージョンに比べて、複数のファイルを並列でダウンロードできるため、ウェブサイトの表示速度を大幅に向上させます。これにより、リクエスト回数とインターネット全体の回線使用量が削減されます。しかし、一度に送受信されるデータ量が増えるため、画像サイズの最適化が重要になります。ApacheサーバーでHTTP/2を有効にする方法は、別記事で紹介されています。より詳細な情報は、オライリーの"Real World HTTP"で学ぶことができます。現在、LiteSpeedのようなサーバーでは、さらに高速なHTTP/3(QUIC)が利用可能ですが、当サイトはApacheのHTTP/3対応を待っています。

 

【SEO対策】データの転送量の削減の為の圧縮

/** Geminiが自動生成した概要 **/
個人事業主がSEO対策として行ったデータ転送量削減策を紹介。コンテンツの充実を最優先としつつ、今回はデータ圧縮に着目。GoogleのPageSpeed Insightsを参考に、Brotliアルゴリズムを用いてデータ転送量の削減を試みた。Brotliは対応サーバーが限られるため、Deflateやgzipも選択肢として提示。HTMLや画像のデータ量削減は今後の課題とし、データ転送に関する更なる改善策を予告している。

 

SOY CMSでドメインが異なる複数のサイトを運営する

/** Geminiが自動生成した概要 **/
SOY CMSで異なるドメインの複数サイト(example.kyoto, other.example.kyoto)をさくらVPS上の単一サーバーで運用する手順を記述。Let's Encryptでワイルドカード証明書(*.example.kyoto)を取得し、既存証明書を削除後、お名前.comのDNS設定でTXTレコードを追加。SOY CMSでサイト毎にURLを設定し、Apacheのドキュメントルートにindex.phpと.htaccessを設置、ドメインに応じてサイトを切り替えるよう設定。ワイルドカード証明書の更新は、お名前.comでは自動化できないため手動、またはさくらのクラウドDNSへの移管が必要。

 

PHPのexec関数でセッションの値の引き継ぎに苦戦した時のメモ

/** Geminiが自動生成した概要 **/
Amazon Linux 2のLAMP環境で、PHPの`exec`関数を使ってGoogle Analytics APIにアクセスする際にセッションの引き継ぎに失敗した。`exec`で実行した`cmd.php`内で`session_start()`してもセッション情報が取得できなかった。調査の結果、`cmd.php`内では`session_save_path()`の戻り値が空文字列になっていた。`session_save_path("/var/lib/php/session");`を`session_start()`前に追加することでセッション情報が取得できるようになり、APIアクセスも成功した。`php.ini`の`session.save_path`の設定が原因と考えられるが、未検証。

 

PHPで形態素解析エンジンのMaCabを使用する為の手順のメモ

/** Geminiが自動生成した概要 **/
Ubuntu 19.10環境でPHPからMeCab形態素解析エンジンを使用する手順をまとめたメモです。MeCab、辞書(mecab-ipadic-utf8, mecab-ipadic-neologd)、php-mecabをインストールし、PHPからMeCabを呼び出すテストコードを実行しています。 php-mecabインストールでは、phpize、configure、make、installを行い、mecab.iniを作成、ApacheとCLIで有効化しました。テストコードは"今日は晴天なり"を解析し、結果を配列で出力しています。ブラウザと端末の両方から実行し、期待通りの解析結果が得られました。

 

Windows10 Apache2.4でlocalhostの接続拒否の解決方法

/** Geminiが自動生成した概要 **/
Windows10のアップデート後、Apache2.4のlocalhostが接続拒否となった。httpd.confのInclude行のコメントアウトを外す際に、VirtualHost行のコメントも外してしまったことが原因でsyntaxエラーが発生していた。さらに、httpd-vhosts.confのVirtualHost設定で指定されたDocumentRootのsoycmsディレクトリが欠落していたため、Apache再起動時にエラーが発生。管理者権限でコマンドプロンプトを実行し、Apacheを再起動することでlocalhostへの接続が復旧した。httpd.confのDocumentRoot設定は修正不要であったが、httpd-vhosts.confで指定したDocumentRootディレクトリは必須であることが判明した。

 

さくらのVPSにUbuntu18.04を入れてSOY CMSを動かした時のメモ

/** Geminiが自動生成した概要 **/
SOY CMSでMySQL 8系に接続できない場合、認証方式の違いが原因です。MySQL 8系は`caching_sha2_password`がデフォルトですが、SOY CMSは`mysql_native_password`で接続します。解決策は、MySQLの設定ファイル`mysqld.cnf`の`[mysqld]`セクションに`default_authentication_plugin=mysql_native_password`を追加し、MySQLを再起動します。新規インストール時はインストール時に`mysql_native_password`を指定できます。既存ユーザの場合は、MySQLにログインし`ALTER USER 'ユーザ名'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';`を実行し、`FLUSH PRIVILEGES;`で変更を適用します。

 

Windows10のApache2.4でVirtual Hostを設ける

/** Geminiが自動生成した概要 **/
Windows10のApache2.4でバーチャルホストを設定する方法。httpd.confの`#Include conf/extra/httpd-vhosts.conf`の#を外し、httpd-vhosts.confを編集する。既存の`<VirtualHost *:80>`の設定に加え、新たな`<VirtualHost *:81>`ブロックを追加し、DocumentRootに任意のディレクトリを指定、アクセス許可を設定する。追加のバーチャルホストは、Listenポートと`<VirtualHost>`ブロックを追加することで設定可能。コマンドプロンプトで`httpd -k restart`を実行しApacheを再起動後、ブラウザで`localhost:81`等にアクセスし、意図したファイルが表示されれば設定完了。

 

ApacheでLet's Encryptの自動更新する為にCertBotを導入した

/** Geminiが自動生成した概要 **/
Let's Encryptの証明書更新を自動化するため、CertBotを導入した。以前設定したcronでの自動更新が機能せず期限切れメールが届いたため、新しい仕組みに切り替えた。CertBot公式サイトの手順でインストール後、Ubuntu 18.04環境でcronを設定し、毎日2時半に`certbot renew --force-renew`を実行するようにした。Apacheの停止と起動を更新前後に行うように設定し、起動は少し遅らせて実行するようにした。

 

SOY CMSのブログブロックの使用を制限して、ブログページの高速化

/** Geminiが自動生成した概要 **/
Googleは常時SSL化をランキング要因の一つとしています。つまり、サイトがHTTPSを使用しているかどうかは、検索結果の順位に影響を与えます。しかし、その影響は軽微であり、他のSEO対策と比べると優先度は低いと言えるでしょう。 常時SSL化の主なメリットはセキュリティの向上です。ユーザーの情報を暗号化することで、盗聴や改ざんのリスクを軽減できます。これはユーザーの信頼感向上に繋がり、間接的にSEO効果に繋がる可能性があります。 また、常時SSL化によってサイトの表示速度が向上する可能性も指摘されています。Googleはサイトの表示速度もランキング要因としているため、結果的にSEOに良い影響を与える可能性があります。 しかし、常時SSL化自体が劇的なSEO効果をもたらすわけではないので、他の重要なSEO対策を疎かにしてまで優先するべきではありません。コンテンツの質やユーザーエクスペリエンスの向上など、他のSEO対策と並行して行うことが重要です。

 

Apache上で利用しているLet's Encryptの失効

/** Geminiが自動生成した概要 **/
旧サーバーでLet's Encrypt証明書の失効、新サーバーで新規発行の手順を解説。 旧サーバーでは、`certbot`を使わず、`/opt/letsencrypt/letsencrypt-auto revoke`コマンドで証明書を失効、`delete`コマンドで関連ファイルを削除。ドメイン名(saitodev.co)を指定して実行。 新サーバーでの証明書発行手順は別記事を参照。

 

Go言語でHTTPのGET

/** Geminiが自動生成した概要 **/
Go言語でHTTP GETリクエストを実行する方法を解説しています。`net/http`パッケージの`Get`関数で指定URLにアクセスし、レスポンスを取得します。`ioutil.ReadAll`でレスポンスボディを読み込み、`string`型に変換してHTML内容を表示します。エラー処理も実装し、最後に`response.Body.Close()`でクローズします。記事では、各段階の出力を示しながら、最終的にHTMLを取得するコードを完成させています。

 

さくらVPSにJenkinsを入れて、Selenium + php-webdriverを動かせるようにする

/** Geminiが自動生成した概要 **/
さくらVPS(Ubuntu 16.04)にJenkinsを導入し、Seleniumとphp-webdriverでUIテストを自動化する方法を紹介。Jenkinsインストール後、初期設定、ジョブ作成、Git連携、ビルドトリガー設定、シェルスクリプト実行設定、メール通知設定を行い、Apacheの設定を調整してテスト実行環境を構築。15分毎にGitリポジトリをポーリングし、変更があれば自動的にテストを実行、結果をメールで通知。これにより、月700円のVPS費用で継続的なUIテストを実現。

 

さくらVPS上でSeleniumとphp-webdriverを利用する

/** Geminiが自動生成した概要 **/
さくらVPS(Ubuntu 16.04)にSeleniumとphp-webdriverによるUIテスト環境を構築する方法。Selenium実行には仮想デスクトップ(Xvfb)とChromiumが必要で、手順はApache/PHP設定、Java8、Selenium、Xvfb、Chromium、ChromeDriverインストール、そしてSelenium起動スクリプト(load.sh)作成。load.shはXvfbとSeleniumを同時に起動し、ブラウザは仮想デスクトップ上で動作する。動作確認は http://(VPSのIPアドレス):4444 で行う。Jenkinsの設定とload.shの自動起動設定は今後の課題。

 

VPSサーバでWebサーバ構築のハンズオンを行いました

/** Geminiが自動生成した概要 **/
アップラインの会議室にて、ネットメディア運営者向けにVPSサーバでのWebサーバ構築ハンズオンを実施。お名前.comドメインのVPSサーバへの紐付けから、Apache2.4、PHP7、Let's Encrypt(常時SSL)、HTTP/2を用いたWebサーバの構築までを体験。一見難解なVPSサーバも、手順に沿ってコマンドを実行すれば、SSL設定などはむしろ容易。この機会により高速・安全なWebサイト運営を目指せる。関連として、当サイトもHTTP/2対応で高速化を実現した事例を紹介。

 

Apacheサーバでバージョンの表示を隠す

/** Geminiが自動生成した概要 **/
Apacheサーバーのバージョン表示はセキュリティリスクとなるため、非表示設定が推奨されています。Ubuntu 16.04, Apache 2.4.27環境では、`security.conf` 内の `ServerTokens` を `OS` から `Prod` に、`ServerSignature` を `Off` から `On` に変更し、Apacheを再起動することでバージョンを非表示にできます。設定変更後、デベロッパーツールや404ページでApacheのバージョンが表示されなくなっていることを確認します。

 

Apache2.4.27の標準設定ではHTTP/2が使用できなくなったのでその対応

/** Geminiが自動生成した概要 **/
Apache 2.4.27にアップグレード後、prefork設定ではHTTP/2が使えなくなったため、workerに変更した事例。preforkではHTTP/2が無効化される仕様変更が原因。Ubuntu 16.04環境で、PHPをFastCGI(php7.0-fpm)にし、`a2dismod`と`a2enmod`コマンドでMPMをworkerに切り替えた。`apachectl -V`で確認後、ブラウザでHTTP/2が有効化されたことを確認。ただし、画像はキャッシュの影響でHTTP/1.1だったが、キャッシュクリアで解決した。

 

ApacheサーバでBrotliを使用してみた

/** Geminiが自動生成した概要 **/
常時SSL化はSEO上効果がある。GoogleはHTTPSをランキングシグナルとして使用しており、サイトのセキュリティ向上はユーザー体験の向上に繋がるため、間接的にSEO効果が見込める。ただし、HTTPS化自体が劇的なランキング上昇をもたらすわけではない。相対的にHTTPサイトより優位になる程度の影響と考えられる。また、サイト表示速度の向上も期待できるが、適切な設定が必要。常時SSL化は必須事項となりつつあり、SEO対策としてだけでなく、セキュリティ向上とユーザーへの信頼感醸成という観点からも重要である。

 

Googleの圧縮アルゴリズムBrotliを試してみた

/** Geminiが自動生成した概要 **/
Brotli圧縮を試した結果、gzipよりも高い圧縮率を実現できることが分かり、サーバーでの利用を検討。Ubuntu 18.04ではaptでbrotliをインストール可能。画像ファイルの圧縮テストでは、オリジナル870.3kBに対し、Brotliは856.8kB、gzipは861.0kBと、Brotliが僅かに優れていた。圧縮コマンドは`brotli 元ファイル -o 圧縮ファイル`、解凍は`brotli -d 圧縮ファイル -o 元ファイル`。次の記事では、ApacheサーバーでBrotliを利用する方法を解説する。

 

BracketsのBeautifyでXMLファイルの自動整形を行わないようにする

/** Geminiが自動生成した概要 **/
BracketsのBeautifyによるXMLファイルの自動整形を無効化する方法について解説されています。SOY CMS/Shop開発において、build.xmlがBeautifyによって整形され、Antビルドでエラーが発生する問題が発生しました。解決策として、brackets.jsonに`"language":{"xml":{"bb.beautify.onSave":false}}`を追加し、XMLファイルの自動整形を無効化することで、Antビルドが正常に動作するようになりました。

 

常時SSL化はSEO上効果はあるか?

/** Geminiが自動生成した概要 **/
常時SSL化はSEOに効果があると考えられる。理由は、常時SSL化で利用可能になるHTTP/2がページ表示速度を劇的に向上させるため。Googleは表示速度をSEOの評価基準にしているため、HTTP/2対応は間接的にSEO向上に繋がる。著者のサイトもHTTP/2導入後、PageSpeed Insightsのスコアが99点を記録、PV数も右肩上がりだ。 HTTP/2の恩恵を受けるにはVPSや専用サーバー等が必要で、相応の知識も求められる。しかし、HTTP/2を抜きにしても、フォームからの情報漏洩防止の観点から、特にログインや問い合わせフォームを持つサイトは常時SSL化が推奨される。専門知識を持つユーザーはSSL化されていないサイトのフォームは利用しないだろう。つまり、常時SSL化はセキュリティ面でもユーザー獲得に繋がるため、SEO効果があると結論付けられる。

 

SOY CMSでwwwありとなしのどちらでもアクセスできるサイトでの管理画面の対応

/** Geminiが自動生成した概要 **/
SOY CMSのconfig.ext.phpは、管理画面のカスタマイズを可能にする強力なツールです。管理画面のURLの変更、ログイン画面へのリダイレクト設定、.htaccessを利用したアクセス制限、管理画面のデザイン変更、独自機能の追加などが実現できます。データベースへのアクセスやSmartyテンプレートの利用も可能です。ただし、PHPの知識が必要で、不適切な記述はシステムエラーに繋がるため注意が必要です。このファイルはバージョンアップの影響を受けず、安全にカスタマイズを維持できます。

 

Muninで監視用サーバを構築する2

/** Geminiが自動生成した概要 **/
外部サービス監視のため、対象サーバ(192.168.80.80)にmunin-nodeをインストールし、監視サーバ(192.168.100.120)のIPを許可するよう設定ファイルを編集。ファイアウォールで4949ポートを開放する。次に、監視サーバ側でmunin.confに監視対象のホスト名(hoge.com)とIPアドレスを追記。Apacheを再起動後、Munin画面に新しいリンクが表示されれば設定完了。

 

Muninで監視用サーバを構築する1

/** Geminiが自動生成した概要 **/
Webサービスの利用者増加に備え、Ubuntu 16.04サーバにMuninを導入して監視環境を構築した。Apacheのインストールと設定、muninとmunin-nodeのインストール後、アクセス制限を解除し、Basic認証を設定した。最後にファイアウォールでポート80, 443, 4949を開放し、セキュリティを強化した。今回は監視サーバ自体の設定を行い、次回は監視対象サーバの設定を行う。

 

インターネット内に流れているパケットを傍受してみる

/** Geminiが自動生成した概要 **/
WordPressなどのCMSは総当り攻撃の標的になりやすく、特にログインページがhttpの場合、IDとパスワードが傍受されやすい。Wiresharkのようなツールを使えば、ネットワーク上のパケットを解析し、http通信のログイン情報を簡単に盗み見ることが可能。httpsは通信を暗号化するため、傍受されても内容は解読できない。カフェなどのフリーWi-Fiでhttpのログインページを使うのは危険。https化はセキュリティ対策だけでなく、HTTP/2.0による高速化にも繋がるため重要。また、メールもhttpと同様に暗号化されていないと傍受される可能性があるため注意が必要。

 

ブラウザのキャッシュの設定

/** Geminiが自動生成した概要 **/
SOY CMSのキャッシュモードを利用することで表示速度を大幅に向上させることができます。キャッシュモードには、「出力キャッシュ」「ブロックキャッシュ」「データキャッシュ」の3種類があります。出力キャッシュはページ全体をキャッシュし、ブロックキャッシュはページの一部のブロックをキャッシュ、データキャッシュはデータベースへのアクセス結果をキャッシュします。それぞれのキャッシュモードは管理画面から簡単に設定でき、サイトのアクセス状況や更新頻度に合わせて最適な設定を選択することで、サーバー負荷を軽減し、表示速度を向上させることができます。特に、頻繁に更新されない静的なページやアクセス数の多いページでは、出力キャッシュが効果的です。キャッシュのクリアも管理画面から簡単に行えます。

 

SOY CMSで表示直前で画像のリサイズ表示を行う

/** Geminiが自動生成した概要 **/
SOY CMSでサイト表示を高速化するために、表示直前にサーバ側で画像リサイズを行う方法を紹介しています。Google PageSpeed Insightsで低評価を受けた画像サイズの問題を解消するため、サムネイルプラグインではなく、SOY CMSの隠し機能を活用。 具体的には、カスタムフィールドに画像パスを入力し、imgタグのsrc属性に`im.php?src=[画像パス]&width=[幅]`を指定することで、動的にリサイズされた画像を表示。従来のHTMLのwidth属性による縮小表示よりもパフォーマンスが向上し、PageSpeed Insightsのスコアも改善。 記事では、設定変更前後の具体的なコード例やスクリーンショットを交えながら解説。リサイズ処理はJPEG、PNG、GIFに対応し、作業フローを簡略化しつつサイト高速化を実現。次回、CSSや画像のキャッシュ設定について解説予定。

 

当サイトをHTTP/2対応して表示の爆速化してみた

/** Geminiが自動生成した概要 **/
Let's Encryptの証明書更新を自動化するため、CertBotを導入した。以前の方法は使えなくなったため、公式サイトの手順に従い、snapd経由でCertBotをインストール。`certbot certonly --apache`コマンドで証明書を取得し、Apacheの設定を自動更新。 cronで`certbot renew`を定期実行することで自動更新を実現。`--dry-run`オプションでテストも可能。以前の`letsencrypt-auto`コマンドは非推奨となったため、CertBotへの移行が必須。

 

PHPで楽天市場の商品登録を楽しよう:GitとTortoiseGit編

/** Geminiが自動生成した概要 **/
楽天市場の商品登録をPHPで行うため、複数人での在宅作業におけるファイル管理を容易にするためGitとTortoiseGitを導入。TortoiseGitはGUIで操作できるため、Gitに不慣れなメンバーでも「プル」「プッシュ」「コミット」といった操作を右クリックメニューから容易に行える。BitBucketをリポジトリとして利用し、プルとプッシュの手順を指示することでファイルの競合を最小限に抑え、作業効率を向上させた。

 

PHPで楽天市場の商品登録を楽しよう:PHPのインストール編

/** Geminiが自動生成した概要 **/
Windows7にPHP7をインストールする方法を解説。PHP7をダウンロード・展開後、C:\php7に配置。Apacheの設定ファイル(httpd.conf)を編集し、PHPモジュールを読み込む設定や、index.phpをDirectoryIndexに追加。PHPの設定ファイル(php.ini)で必要な拡張モジュールを有効化し、タイムゾーンを東京に設定。Apacheを再起動後、phpinfo()を表示するinfo.phpを作成し、ブラウザで確認することでインストール完了となる。

 

PHPで楽天市場の商品登録を楽しよう:Apacheのインストール編

/** Geminiが自動生成した概要 **/
楽天市場の商品登録作業効率化のため、PHPによるローカル検証環境構築を目指し、複数PCへのインストール手順を記録している。今回はApache2.4のインストール方法を紹介。まずPCが64ビットか確認後、Apache動作に必要なVisual C++再頒布可能パッケージをインストールする。次にApacheの64ビット最新版をダウンロード、解凍し、Apache24フォルダをCドライブ直下に配置。httpd.confのServerNameをlocalhost:80に修正する。Windows環境変数のPathにC:\Apache24\bin;を追加し、コマンドプロンプトでhttpd -k startを実行。ブラウザでhttp://localhostにアクセスし"It Works!"が表示されればApacheのインストールは完了。次回はPHPのインストールについて。

 

さくらのVPS + Apache2.4のサーバでSSL対応してみた

/** Geminiが自動生成した概要 **/
さくらVPS上のApache2.4でSSL証明書を設定する方法を解説した記事です。opensslを用いて秘密鍵とCSRを作成し、認証局に提出、発行された証明書と中間CA証明書を所定のディレクトリに配置、Apacheの設定ファイルを編集してSSLを有効化します。設定ファイルでは、証明書ファイル、秘密鍵ファイル、中間CA証明書のパスを指定します。最後にApacheを再起動し、httpsでアクセスしてSSL設定を確認します。記事ではLet's Encryptを使った簡便な設定方法への言及もあります。

 

Dockerの他コンテナにあるSOY CMSからMySQLのコンテナにアクセスしてみる

/** Geminiが自動生成した概要 **/
Docker Composeを用いて、PHP7/ApacheとMySQLのコンテナを連携させ、SOY CMSを動作させる方法を解説。MySQLコンテナでは`bind-address`を指定し、PHPコンテナでは`pdo_mysql`拡張をインストールする必要がある。データベース接続設定では、MySQLコンテナの内部IPアドレスとポート(3306)を指定。SOY CMSのデータベース設定ファイル(mysql.php)を適切に編集することで、コンテナ間のデータベースアクセスを実現。記事では、`docker-compose.yml`の設定例や、コンテナ内でのデータベース作成手順、SOY CMSの初期設定画面へのアクセス方法などを示している。また、PHP7環境でのSOY CMS動作に関する修正はGitHubで公開されている。

 

さくらのVPSにPHP7を入れてSOY CMSを動かしてみた

/** Geminiが自動生成した概要 **/
さくらのVPSにPHP7をインストールし、SOY CMSを動かす手順を解説した記事。共有サーバーの表示速度低下を改善するため、VPSに移行。手順は既存記事を参考に、PHPインストール部分を更新。 Apache2.4インストール後、Ondřej Surý氏のPPAを用いてPHP7.0を導入し、関連モジュールをインストール、Apache2の設定を行った。PHP7でSOY CMSを動かすにはファイル修正が必要で、修正済みパッケージはsaitodev.co/soycms/からダウンロード可能。

 

Dockerで構築したPHP7の環境でSOY CMSを動かしてみる

/** Geminiが自動生成した概要 **/
Docker上のPHP7環境でSOY CMSを動かす手順を解説。前回はmbstringが不足しエラーが発生したが、Dockerfileに`docker-php-ext-install mbstring`を追加し解決。elfinderは未対応だが、その他は動作し爆速に。Dockerfileとphp.iniの設定例、コンテナ起動コマンドも紹介。修正版SOY CMSはGitHubで公開中。

 

DockerでPHP7の環境を構築してみる

/** Geminiが自動生成した概要 **/
Dockerを使ってPHP7環境を構築する方法を紹介しています。UbuntuへのDockerインストール手順、Dockerfileの作成、コンテナイメージのビルド、コンテナの起動、PHPバージョン確認、ブラウザでのphpinfo表示確認までを解説。Dockerを使うことで、簡単にPHP7環境を構築し、動作確認できることを示しています。ルートディレクトリ操作の課題は残っていますが、Apache設定などを省略できる手軽さがメリットです。

 

さくらのVPSでSOY CMSを動かした時のメモ

/** Geminiが自動生成した概要 **/
Apacheサーバのバージョン表示はセキュリティリスクとなるため、非表示にすることが推奨されています。本記事では、Apacheの設定ファイル`httpd.conf`または`apache2.conf`を編集することで、バージョン情報を隠す方法を解説しています。具体的には、`ServerTokens`ディレクティブを`Prod`に設定することで、公開されるサーバ情報を最小限に抑えられます。また、`ServerSignature`ディレクティブを`Off`にすることで、エラーページなどからサーバのバージョン情報が削除されます。これらの設定変更後、Apacheを再起動することで変更が反映されます。さらに、セキュリティ対策としてmod_securityなどのセキュリティモジュール導入も推奨しています。


Powered by SOY CMS   ↑トップへ