<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ubuntu24 | じじぃの引出し</title>
	<atom:link href="https://www.kazuban.com/blog/tag/ubuntu24/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kazuban.com/blog</link>
	<description>なにかしら、皆さんの参考になれば幸いです！</description>
	<lastBuildDate>Mon, 16 Mar 2026 04:04:27 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.kazuban.com/blog/wp-content/uploads/2020/05/cropped-ICON-1-32x32.png</url>
	<title>ubuntu24 | じじぃの引出し</title>
	<link>https://www.kazuban.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AIに教えてもらいながら、どうにかUbuntu上の Docker EngineでDifyをサーバー化できた。</title>
		<link>https://www.kazuban.com/blog/ubuntu-dockerengine-dify/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Mon, 05 May 2025 01:17:22 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux (CentOS、Rocky、Ubuntu)]]></category>
		<category><![CDATA[AIとのやり取り]]></category>
		<category><![CDATA[Dify]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[ubuntu24]]></category>
		<category><![CDATA[wsl]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=11029</guid>

					<description><![CDATA[前回までで、「Docker Engine」の設定は完了しています。今回は、「Docker」で「Dify」を起動させサーバー化が目的です。実現するにあたって、かなりAIに助けてもらったので、そのやり取りも紹介しています。  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><a href="https://www.kazuban.com/blog/wsl-ubuntu-dockerengine/">前回までで、「Docker Engine」の設定は完了しています。</a><br>今回は、「Docker」で「Dify」を起動させサーバー化が目的です。<br>実現するにあたって、かなりAIに助けてもらったので、そのやり取りも紹介しています。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Difyをクローン化</a><ol><li><a href="#toc2" tabindex="0">gitの確認</a></li><li><a href="#toc3" tabindex="0">Gitでdifyをクローン化する</a></li></ol></li><li><a href="#toc4" tabindex="0">Difyコンテナ起動</a><ol><li><a href="#toc5" tabindex="0">docker compose upでエラー発生！AIに聞いてみる。</a></li></ol></li><li><a href="#toc6" tabindex="0">Dify起動</a><ol><li><a href="#toc7" tabindex="0">初期画面</a></li><li><a href="#toc8" tabindex="0">Difyの動作と試用</a></li></ol></li><li><a href="#toc9" tabindex="0">Difyを自動起動</a></li><li><a href="#toc10" tabindex="0">Difyをサーバー化して、他のPCからもアクセスさせる</a><ol><li><a href="#toc11" tabindex="0">DifyPCのIPアドレス調査</a></li><li><a href="#toc12" tabindex="0">Windowsのアドレスからは、アクセスできない。</a></li><li><a href="#toc13" tabindex="0">docker ps コマンドで実行中のコンテナーを提出</a></li><li><a href="#toc14" tabindex="0">ファイヤーウォールとポートフォワーディング設定</a><ol><li><a href="#toc15" tabindex="0">１．ファイアウォール開放 (ポート 80):</a></li><li><a href="#toc16" tabindex="0">2．ポートフォワーディング設定 (ポート 80):</a></li><li><a href="#toc17" tabindex="0">アクセスできた～</a></li></ol></li></ol></li><li><a href="#toc18" tabindex="0">DifyにLLMを設定して、カスタムチャット環境を構築</a><ol><li><a href="#toc19" tabindex="0">DifyにLLMの設定方法</a><ol><li><a href="#toc20" tabindex="0">オンラインLLMの登録</a></li><li><a href="#toc21" tabindex="0">LM Studio モデルの登録</a></li><li><a href="#toc22" tabindex="0">Ollama　モデルの登録</a></li></ol></li></ol></li><li><a href="#toc23" tabindex="0">あとがき</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Difyをクローン化</span></h2>



<h3 class="wp-block-heading"><span id="toc2">gitの確認</span></h3>



<p>difyをクローン化するのに、「git」を利用するので、「git」のインストール状況を確認します。<br>windows ターミナルを開き、wsl を起動し、「git -v」で状況を確認します。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-6c280a658549c20db340281f1ee6bbdb"><code>PS C:\Users\hogehoge2&gt; wsl

$ git -v
git version 2.43.0
インストールされていない場合には、インストール
$ sudo apt update
$ sudo apt install git</code></pre>



<h3 class="wp-block-heading"><span id="toc3">Gitでdifyをクローン化する</span></h3>



<p>「git clone ・・」でクローン化を実行すると、カレントディレクト下「dify」ディレクトリへソースコードがクローン化されます。<br>windowsターミナルで、「wsl」を実行し、ubuntu環境へ入ると、デフォルトでは、winndowsユーザーのディレクトリへセットされた状態で起動します。<br>好みの問題だと思いますが、この場所へ「dify」環境を作成してもいいと思いますが、筆者はubuntuのユーザーホームディレクトリ下に作成しようと思います。<br>wsl、ubuntuプロンプトで、「cd」を実行すると、ユーザーのホームディレクトリへ移動します。<br>その場所で「git clone・・」すると、そのディレクトリ直下に「dify」さらにその下に「docker」ディレクトリが作成されています。<br>「ls」コマンドで確認できます。<br>「dify/docker」ディレクトリへ「cd」コマンドで移動しておきます。<br>「pwd」コマンドで、現在のディレクトリが確認できます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-ad68e176018c4225a713c543c2c82523"><code>hogehoge2@hoge-PC:/mnt/c/Users/hogehoge2$
$ cd
$ git clone https://github.com/langgenius/dify.git
Cloning into 'dify'...
remote: Enumerating objects: 153846, done.
remote: Counting objects: 100% (536/536), done.
remote: Compressing objects: 100% (359/359), done.
remote: Total 153846 (delta 396), reused 178 (delta 177), pack-reused 153310 (from 3)
Receiving objects: 100% (153846/153846), 87.73 MiB | 5.07 MiB/s, done.
Resolving deltas: 100% (111131/111131), done.
$ ls
dify
$ cd dify/docker/
$ pwd
/home/hogehoge2/dify/docker</code></pre>



<h2 class="wp-block-heading"><span id="toc4">Difyコンテナ起動</span></h2>



<p>「git clone」を実行したディレクトリに、「dify/docker」ディレクトリが作成されています。<br>その中に「.env.example」のサンプル環境変数ファイルが作成されています。<br>通常ファイルは「ls」コマンドで確認できますが。「.」で始まるファイルは表示されません。<br>その場合「ls -la」コマンドを実行すると、表示されます。<br>コピーは「cp &lt;オリジナルファイル名&gt;　&lt;複写ファイル名&gt;」で複写できます。<br>「.env.example」ファイルを、正式な環境変数「.env」としてコピーし、「docker compose」コマンドで、コンテナを起動させます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-69212d483fca0e2e7f0922dbf0b0ff47"><code>$ pwd
/home/hogehoge2/dify/docker
$ cp .env.example .env
$ docker compose up -d
&#91;+] Running 80/80    
✔ web Pulled             149.7s
✔ sandbox Pulled         221.1s
 ✔ ssrf_proxy Pulled      88.2s
 ✔ db Pulled             224.4s
 ✔ worker Pulled         402.2s
 ✔ plugin_daemon Pulled  404.6s
 ✔ nginx Pulled           36.4s
 ✔ weaviate Pulled       225.1s
 ✔ redis Pulled          221.2s
 ✔ api Pulled            402.2s
&#91;+] Running 12/12
 ✔ Network docker_default             Created    0.1s
 ✔ Network docker_ssrf_proxy_network  Created    0.0s
 ✔ Container docker-web-1             Started    3.7s
 ✔ Container docker-ssrf_proxy-1      Started    4.0s
 ✔ Container docker-sandbox-1         Started    3.7s
 ✔ Container docker-redis-1           Started    3.7s
 ✔ Container docker-weaviate-1        Started    3.7s
 ✔ Container docker-db-1              Healthy    10.7s
 ✔ Container docker-worker-1          Started    9.3s
 ✔ Container docker-plugin_daemon-1   Started    9.3s
 ✔ Container docker-api-1             Started    9.5s
 ✔ Container docker-nginx-1           Started    10.0s
</code></pre>



<h3 class="wp-block-heading"><span id="toc5">docker compose upでエラー発生！AIに聞いてみる。</span></h3>



<p>上記は正常な例ですが、古いPCをテストマシンとして利用した時、「docker compose up」で下記エラーがでた事がありました。</p>



<blockquote class="wp-block-quote has-vivid-red-color has-watery-red-background-color has-text-color has-background has-link-color wp-elements-663148c1df4e9167eb9abd3e83e97fcc is-layout-flow wp-block-quote-is-layout-flow">
<p>dependency failed to start: container docker-db-1 is unhealthy</p>
</blockquote>



<p>この時もgeminiに聞いてみたところ、「docker logs docker-db-1」でログを確認してくれとの事なので、ログを直接貼り付けると、</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon" style="--cocoon-custom-background-color:#fff7cc"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/Robot-icon.png" alt="Ai" class="speech-icon-image"/></figure><div class="speech-name">Ai</div></div><div class="speech-balloon has-background has-watery-yellow-background-color">
<p>ログを見る限り、データベースの初期化自体は正常に完了しています (<code>PostgreSQL init process complete; ready for start up.</code>)。 その後の起動プロセスも進んでいますが、<strong><code>2025-04-29 00:02:07.998 UTC [557] FATAL: the database system is starting up</code></strong> という致命的なエラーが出力されています。</p>



<p>このエラーは、PostgreSQLサーバーが起動してリカバリなどの内部処理を行っている最中に、外部からの接続要求（この場合はおそらくDockerのヘルスチェックや、依存するDifyコンテナからの初期接続試行）があった場合に発生することがあります。</p>



<p>つまり、データベースサーバー自体は最終的に <code>database system is ready to accept connections</code> の状態になりますが、Dockerのヘルスチェックがサーバーの準備が完全に整う前に接続を試み、上記の <code>FATAL</code> エラーを受け取ってしまい、それが原因でコンテナが <code>unhealthy</code> と判定されている可能性が高いです。<br><br><strong>解決策:</strong></p>



<p>Dockerのヘルスチェック設定を調整し、データベースが完全に起動して接続可能になるまで、チェックを待つように設定を変更するのが最も有効な対策です。</p>



<p><strong>データベースサービス (db または postgresql) の <code>healthcheck</code> 設定を見つける:</strong> <br><code>services</code> のセクションにある、データベースコンテナに対応するサービス定義（通常は <code>db</code> という名前）を探します。その中に <code>healthcheck</code> というブロックがあるはずです。<br><br><strong>YAML</strong><br><code>services: </code><br><br><code>db: # ... その他の設定 ...</code><br><code>  healthcheck: # ここに設定があります </code><br>　　・<br><code>    test: ["CMD-EXEC", "pg_isready -U &lt;db_user&gt; -d &lt;db_name&gt;"] # 例 </code><br><code>    interval: 10s </code><br><code>    timeout: 5s </code><br><code>    retries: 5 </code><br><code>    start_period: 30s # &lt;-- この値を調整します</code></p>



<p><strong><code>docker-compose.yml</code> を開く:</strong> Difyを起動するために使用している <code>docker-compose.yml</code> ファイルをテキストエディタで開きます。</p>
</div></div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-5 sbs-flat sbp-r sbis-cb cf block-box not-nested-style cocoon-block-balloon" style="--cocoon-custom-background-color:#dddddd"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/themes/cocoon-master/images/ojisan.png" alt="じじぃ" class="speech-icon-image"/></figure><div class="speech-name">じじぃ</div></div><div class="speech-balloon has-background has-light-grey-background-color">
<p>docker-compose.yamlを確認した所、「<code>start_period:</code>」の設定がありません。</p>
</div></div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon" style="--cocoon-custom-background-color:#fff7cc"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/Robot-icon.png" alt="Ai" class="speech-icon-image"/></figure><div class="speech-name">Ai</div></div><div class="speech-balloon has-background has-watery-yellow-background-color">
<p><code>start_period</code> が指定されていない場合、コンテナが起動を開始すると同時にヘルスチェックが始まります。今回のデータベースのログで見たように、起動直後の一時的な準備期間中に接続を試みると <code>FATAL: the database system is starting up</code> のようなエラーが発生することがあります。</p>



<p><code>interval: 1s</code> と非常に短い間隔でチェックが実行されるため、データベースが完全に準備できる前に多くのチェックが走ってしまい、すぐにリトライ回数（<code>retries: 60</code>）を使い果たして <code>unhealthy</code> と判定されてしまう可能性が高いです。</p>



<p><strong>解決策:</strong></p>



<p><code>start_period</code> を追加し、必要に応じて <code>interval</code> も調整しましょう。</p>



<ol class="wp-block-list">
<li><strong><code>healthcheck</code> 設定に <code>start_period</code> を追加する:</strong> データベースが起動して準備ができるまでの猶予期間として、<code>start_period</code> を設定します。<br>例えば <code>30s</code> または <code>60s</code> (30秒または60秒) を指定します。 <br><strong>YAML</strong><br><code>services: </code><br><code>db: # ... その他の設定 ... </code><br><br><code>  healthcheck: </code><br><code>    test: [ 'CMD', 'pg_isready', '-h', 'db', '-U', '${PGUSER:-postgres}', '-d', '${POSTGRES_DB:-dify}' ] </code><br><code>    interval: 5s # 例: 毎秒ではなく5秒ごとにチェックに緩和 </code><br><code>    timeout: 3s </code><br><code>    retries: 10 # 例: リトライ回数を調整 (intervalを長くすればretriesは少なくても良い) </code><br><code>    start_period: 60s # &lt;- この行を追加 (例: 60秒待つ)</code> <br><br><strong>ポイント:</strong> <code>start_period</code> の間は、ヘルスチェックが失敗してもコンテナは <code>starting</code> 状態のままとなり、<code>unhealthy</code> とは判定されません。<code>start_period</code> が経過した後に初めて、ヘルスチェックの失敗が <code>unhealthy</code> の判定に使われます。</li>



<li><strong><code>interval</code> も少し長めにすることをお勧めします:</strong> <code>interval: 1s</code> は開発時などに素早く確認したい場合には便利ですが、本番に近い環境や安定性を重視する場合は <code>5s</code> や <code>10s</code> に設定することが一般的です。これにより、データベースへの不要な負荷も軽減されます。</li>



<li><strong><code>docker-compose.yml</code> を保存する。</strong></li>



<li><strong>Docker Compose を再起動する:</strong> 変更を反映させるために、コンテナを再作成して起動します。</li>
</ol>
</div></div>



<p>アドバイス通りに、編集して再度「docker compose up -d」を実行すると、正常になりました。<br>いやぁ～、AIさまさま、ですね～<br>おそらく、ネット検索では、解決できなかったと思います。<br>ただし、古いPCだったのが、一番の原因かもしれません。<br>５年ほど前のPCでは、このエラーはでなかったので、レアなケースかもしれませんが、AIの利用例として紹介しました。</p>



<h2 class="wp-block-heading"><span id="toc6">Dify起動</span></h2>



<h3 class="wp-block-heading"><span id="toc7">初期画面</span></h3>



<p>「docker compose up」が正常に終了すると、Webブラウザで「http://localhost/install」へアクセスすると「dify」の初期設定が開きます</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="800" height="755" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-localhost-800x755.png" alt="" class="wp-image-11052" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-localhost-800x755.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-localhost-500x472.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-localhost-300x283.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-localhost-768x725.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-localhost.png 1200w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h3 class="wp-block-heading"><span id="toc8">Difyの動作と試用</span></h3>



<p>とりあえず、起動しました。<br>以前このサイトでも説明していますが、<a href="https://www.kazuban.com/blog/dify-lmstudio/#toc1">簡単なチャットボットを作成</a>し試してみます。<br>LLMモデルはオンラインの「gemini」を登録し、動作を確認できました。<br>オンラインであれば、「LM Studio」や「Ollama」など、ローカルLLMを利用するアプリは必要ないので、すぐに確認できます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="800" height="571" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-fist-try-800x571.png" alt="" class="wp-image-11056" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-fist-try-800x571.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-fist-try-500x357.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-fist-try-300x214.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-fist-try-768x548.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/dify-fist-try.png 1577w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h2 class="wp-block-heading"><span id="toc9">Difyを自動起動</span></h2>



<p><span class="marker-under">Difyを動作させるには、Dockerが起動していなくてはいけません。</span><br>それには、WSL上で、ubuntuも起動している必要があります。<br>手動でやる場合、</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>・windowsターミナル起動<br>・wslコマンドで、ubuntuターミナル起動<br>・ubuntuターミナルでカレントディレクトリを、Difyのクローンディレクトリに移動<br>・「docker compose up -d」 コマンド実行</p>
</blockquote>



<p>このような手順が必要ですが、問題なのは、<span class="marker-under-red">ターミナルを閉じるとdockerも終了してしまう</span>ことです<br>Difyを使うには、dockerが起動していなくてはいけません。<br>windowsアプリの「docker desktop」であれば、標準で自動起動設定だったと思いますし、起動後もシステムトレイのアイコンで起動が確認できます。右ボタンで状態確認や終了も簡単です。<br>ubuntu経由の場合には、GUIでの確認ができないので、ここが面倒なところですね～。<br>自動起動方法をいろいろ調べると、windowsバッチファイルを作成し、スタートアップフォルダに登録する事で、windows起動時に、自動起動できそうです。<br>ただ、<br>「コマンドプロンプト　⇒　ubuntuターミナル　⇒　docker」<br>のタスクが必要で、<span class="marker-under-red">ターミナルは開いた状態にしておく</span>必要があります。<br>このようなバッチファイルを作りたいですが、どんなコードにすればいいのか・・？<br>うまいコードを考え付かなかったので、difyの試しもかねて起動しているチャットボットで設定しているgeminiに考えてもらいました。</p>



<pre class="wp-block-code has-black-color has-watery-yellow-background-color has-text-color has-background has-link-color wp-elements-28b6e40086f38030cefb644c1904cdfc"><code>@echo off
title Starting Dify via WSL

echo Starting WSL and navigating to ~/dify/docker...
echo Running 'docker compose up -d'...
echo WSL window will remain open after commands.

REM WSLを起動し、bashシェル内でコマンドを実行します。
REM cd ~          : ホームディレクトリに移動 (念のため)
REM cd ./dify/docker : dify/docker ディレクトリに移動
REM docker compose up -d : docker compose をバックグラウンドで起動
REM exec bash     : 上記コマンド実行後、インタラクティブなbashシェルを開始して終了させない
wsl.exe -e bash -c "cd ~/dify/docker &amp;&amp; docker compose up -d &amp;&amp; echo '--- Dify containers started (or attempted to start) ---' &amp;&amp; exec bash"

echo WSL window launched. This batch window can be closed if desired.
REM pause REM Optionally uncomment this line to keep the batch window open until a key is pressed</code></pre>



<p>すごいです。<br>ほとんど実際の起動には影響がない「REM」や「echo」文がほとんどですが、<br>「REM」文を使っての説明文や、「echo」での実行中のメッセージにも手抜きがないですね！<br>このコードをコピーしてエディターで、「start_dify.bat」というファイルで保存しました。<br>バッチファイルの単独実行では問題ありませんでした。<br>後はこのファイルのショートカットを、スタートアップフォルダへコピーするだけです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>・上記の作成したバッチファイルを、適当は場所へ保存します<br>　私は、ユーザーフォルダ「C:\Users\「ユーザー」」へ保存しました。<br>・次に、このファイルのショートカットを作成します。<br>・このショートカットを「スタートアップフォルダ」へ保存します。<br>　スタートアップフォルダは、エクスプローラーのアドレスバーへ「shell:startup」と入力すると開くことができます。</p>
</blockquote>



<div class="wp-block-media-text is-stacked-on-mobile is-vertically-aligned-top"><figure class="wp-block-media-text__media"><img decoding="async" width="622" height="989" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/startup-folder.png" alt="" class="wp-image-11070 size-full" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/04/startup-folder.png 622w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/startup-folder-500x795.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/startup-folder-300x477.png 300w" sizes="(max-width: 622px) 100vw, 622px" /></figure><div class="wp-block-media-text__content">
<p>特に必須ではないですが、ターミナルは起動状態にさせるので邪魔になる場合、作成したショートカットファイルを、マウス右ボタンで「プロパティ」を開きます。<br>「プロパティ」の「ショートカット」タブの<span class="marker-under">「実行時の大きさ」を「最小化」</span>に設定すると、起動時にタスクバーに最小化状態で起動できます。</p>
</div></div>



<p>これで、再起動すると、自動起動したターミナルはタスクバーへ最小化状態ですが、環境によっては起動途中の場合があるので、すぐに使用したい場合には、一度開いてDockerの状態を確認したほうがいいと思います。<br>正常に起動できると、Webブラウザのアドレスバーに「http://localhost/install」でdifyが起動できます。<br>場合によっては、「http://localhost/signin」にリダイレクトされる場合もあります</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="732" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/localhost-signin-800x732.png" alt="" class="wp-image-11073" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/04/localhost-signin-800x732.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/localhost-signin-500x458.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/localhost-signin-300x275.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/localhost-signin-768x703.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/localhost-signin.png 875w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>この画面が開くと、ローカルPCでは、Difyを利用する事ができますが、<span class="marker-under">今回はサーバーとして利用したい</span>ので、<span class="marker-under-red">LAN上の別のPCからのアクセスも必要</span>です。</p>



<h2 class="wp-block-heading"><span id="toc10">Difyをサーバー化して、他のPCからもアクセスさせる</span></h2>



<p>同じLAN上であっても、「localhost」では、他のPCではアクセスできません。<br><a href="https://www.kazuban.com/blog/wsl-ubuntu-dockerengine/#toc15">前回後半で少し話題にしました</a>が、「windowsホスト」「WSL(ubuntu)」「Docker」と複雑な通信環境なので面倒です。</p>



<h3 class="wp-block-heading"><span id="toc11">DifyPCのIPアドレス調査</span></h3>



<p>IPアドレスは、windowsターミナルでは「ipconfig」コマンド<br>WSLターミナルでは、「ip addr」で確認できます。<br>この情報を、Aiに添付して聞いてみました。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon" style="--cocoon-custom-background-color:#fff7cc"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/Robot-icon.png" alt="Ai" class="speech-icon-image"/></figure><div class="speech-name">Ai</div></div><div class="speech-balloon has-background has-watery-yellow-background-color">
<p>詳細な情報ありがとうございます！ipconfig と ip a の結果から状況がより明確になりました。<br>原因の特定<br>・Windows ホスト:<br>　あなたの Windows PC の Wi-Fi アダプターには 192.168.0.94 という IP アドレスが割り当てられています。<br>　これはご自宅などの LAN 内の IP アドレスです。<br>・WSL (Ubuntu):<br>　Windows Subsystem for Linux (WSL) 環境内の Ubuntu には、eth0 インターフェースに 172.31.226.6 という IP アドレスが割り当てられています。<br>　これは WSL が使用する仮想ネットワーク内の IP アドレスです。</p>
</div></div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon" style="--cocoon-custom-background-color:#fff7cc"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/Robot-icon.png" alt="Ai" class="speech-icon-image"/></figure><div class="speech-name">Ai</div></div><div class="speech-balloon has-background has-watery-yellow-background-color">
<p>WSL2 環境で Docker コンテナを動かしている場合、Windows ホストからそのコンテナ内のサービスにアクセスするには、通常以下のいずれかのアドレスを使用します。<br>１．localhost: <br>　Windows ホストのブラウザで http://localhost/chat/&#8230;と入力する。<br>　WSL2 は localhost 経由でのポートフォワーディングをサポートしています。 <br>　（これが最も一般的な方法です）<br>２．WSL の IP アドレス: http://172.31.226.6/chat/&#8230;<br>　(今回アクセスできている方法)<br><br>・http://192.168.0.94/chat/&#8230; でアクセスできないのは、WSL2 と Docker のネットワークアーキテクチャ上、自然なことです。<br>サービスが Windows ホストの物理的な IP アドレスに直接公開されているわけではないためです。<br>・もし、LAN 内の他の PC (例: 192.168.0.100) からもこの Dify 環境にアクセスしたい場合は、追加の設定が必要になる可能性があります:<br><br>１．Windows ファイアウォールの設定: Windows のファイアウォールで、外部からのポート 80 (または Dify が使用しているポート) への着信接続を許可する必要があります。<br>２．ポートフォワーディング (状況による): WSL2 のネットワーク設定によっては、Windows ホストの 192.168.0.94 のポート 80 へのアクセスを、WSL の 172.31.226.6 のポート 80 へ転送する設定が必要になる場合があります。<br>これは 「netsh interface portproxy」 コマンドなどで設定できますが、まずは localhost や WSL の IP でアクセスできることを確認するのが先決です。<br><br>要約:<br>・Windows ホストからアクセスする場合: http://localhost/chat/… または http://172.31.226.6/chat/… を使用してください。<br>・http://192.168.0.94/chat/&#8230; でアクセスできないのは仕様であり、問題ではありません。<br></p>
</div></div>



<h3 class="wp-block-heading"><span id="toc12">Windowsのアドレスからは、アクセスできない。</span></h3>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-5 sbs-flat sbp-r sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/themes/cocoon-master/images/ojisan.png" alt="じじぃ" class="speech-icon-image"/></figure><div class="speech-name">じじぃ</div></div><div class="speech-balloon">
<p>http://localhost や http://172.31.226.6 からはアクセスできています。<br>今回は、LAN上の別のPCからhttp://192.168.0.94 にアクセスしたいため、自分PCで試したら、アクセスできませんでした</p>
</div></div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon" style="--cocoon-custom-background-color:#fff7cc"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/Robot-icon.png" alt="Ai" class="speech-icon-image"/></figure><div class="speech-name">Ai</div></div><div class="speech-balloon has-background has-watery-yellow-background-color">
<p>なるほど、LAN上の他のPCからアクセスできるようにしたい、ということですね。承知いたしました。</p>



<p>ご自身のPC (<code>192.168.0.94</code>) から <code>http://192.168.0.94/chat/...</code> にアクセスできなかったのは、まさにその設定がまだされていないためです。Windowsホストのネットワーク(<code>192.168.0.x</code>) と WSL内部のネットワーク (<code>172.31.x.x</code>) は分離されており、外部（LANを含む）から直接WSL内のサービスにアクセスするには、「ポートフォワーディング（ポート転送）」という設定が必要になります。</p>



<p><strong>設定手順</strong></p>



<p>以下の手順を<strong>管理者権限</strong>で実行してください。</p>



<ol class="wp-block-list">
<li><strong>Difyが使用しているポートを確認 (重要):</strong>
<ul class="wp-block-list">
<li>まず、DifyがWSL内でどのポート番号で待ち受けているか確認します。HTTPなので通常は <strong>80番</strong> ですが、Dockerの設定によっては異なるポート（例: 3000番など）がホスト(WSL)に公開されている場合があります。</li>



<li>Docker Composeを使っている場合は <code>docker-compose.yml</code> ファイルの <code>ports:</code> セクションを確認してください。例えば <code>ports: - "80:80"</code> や <code>ports: - "3000:80"</code> のようになっています。左側の数字がWSL側で公開されているポート番号です。</li>



<li><code>docker ps</code> コマンドを実行しても確認できます。<code>PORTS</code> 列に <code>0.0.0.0:80-&gt;80/tcp</code> や <code>0.0.0.0:3000-&gt;80/tcp</code> のように表示されます。<code>0.0.0.0:</code> の後の数字がWSL側で公開されているポート番号です。</li>



<li><strong>以降の説明では、Difyがポート <code>80</code> を使用していると仮定します。もし異なるポート（例: 3000）だった場合は、コマンド内の <code>80</code> をその番号に読み替えてください。</strong></li>
</ul>
</li>



<li><strong>Windows ファイアウォールでポートを開放:</strong>
<ul class="wp-block-list">
<li>LAN内の他のPCからのアクセスを許可するために、WindowsのファイアウォールでDifyが使用するポート（ここでは80番）を開ける必要があります。</li>



<li><strong>管理者としてPowerShellを開き</strong>、以下のコマンドを実行します。<br><code>powershell New-NetFirewallRule -DisplayName "Allow Dify Access from LAN" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow</code><br><em>(もしコマンドプロンプトを使いたい場合は、管理者として開き <code>netsh advfirewall firewall add rule name="Allow Dify Access from LAN" dir=in action=allow protocol=TCP localport=80</code> を実行)</em></li>
</ul>
</li>



<li><strong>ポートフォワーディングの設定:</strong>
<ul class="wp-block-list">
<li>Windowsホスト (<code>192.168.0.94</code>) のポート80に来た通信を、WSL (<code>172.31.226.6</code>) のポート80に転送するように設定します。</li>



<li><strong>管理者としてPowerShell（またはコマンドプロンプト）を開き</strong>、以下のコマンドを実行します。 <code>powershell netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=172.31.226.6</code>
<ul class="wp-block-list">
<li><code>listenport=80</code>: Windows側で外部からの接続を待ち受けるポート番号。</li>



<li><code>listenaddress=0.0.0.0</code>: Windowsの全てのIPアドレス（<code>192.168.0.94</code> を含む）で待ち受ける設定。特定のIP (<code>192.168.0.94</code>) だけを指定することも可能です。</li>



<li><code>connectport=80</code>: 転送先のWSL内でDifyが待ち受けているポート番号。</li>



<li><code>connectaddress=172.31.226.6</code>: 転送先のWSLのIPアドレス。</li>
</ul>
</li>
</ul>
</li>



<li><strong>動作確認:</strong>
<ul class="wp-block-list">
<li>設定後、まずご自身のPCのブラウザから <code>http://192.168.0.94/chat/84aj9r6azPSYjXt8</code> にアクセスできるか試してください。 (ポートが80以外の場合は <code>http://192.168.0.94:ポート番号/chat/...</code> のように指定)</li>



<li>アクセスできれば、LAN内の他のPCからも同じアドレス (<code>http://192.168.0.94/chat/...</code>) でアクセスできるはずです。</li>
</ul>
</li>
</ol>



<p><strong>注意点:</strong></p>



<ul class="wp-block-list">
<li><strong>WSLのIPアドレスの変動:</strong> WSLを再起動すると、WSLのIPアドレス (<code>172.31.226.6</code>) が変わる可能性があります。もしアクセスできなくなった場合は、<code>ip a</code> コマンドでWSLの新しいIPアドレスを確認し、手順3のポートフォワーディング設定を一度削除して再作成する必要があります。
<ul class="wp-block-list">
<li>削除コマンド: <code>netsh interface portproxy delete v4tov4 listenport=80 listenaddress=0.0.0.0</code></li>



<li>再作成コマンド: (新しい <code>connectaddress</code> を指定して再度実行)</li>
</ul>
</li>



<li><strong>管理者権限:</strong> ファイアウォールとポートフォワーディングの設定には管理者権限が必要です。</li>



<li><strong>ポート番号:</strong> Difyが使用しているポート番号を正確に確認し、コマンド内の <code>80</code> を適宜修正してください。</li>
</ul>



<p>この手順で、LAN内の他のPCからアクセスできるようになるはずです。試してみてください。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc13"><em>docker ps コマンドで実行中のコンテナーを提出</em></span></h3>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-5 sbs-flat sbp-r sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/themes/cocoon-master/images/ojisan.png" alt="じじぃ" class="speech-icon-image"/></figure><div class="speech-name">じじぃ</div></div><div class="speech-balloon">
<p>docker ps では下記になっています。<br>$ docker ps<br>・・<br>・<br>・</p>
</div></div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon" style="--cocoon-custom-background-color:#fff7cc"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/Robot-icon.png" alt="Ai" class="speech-icon-image"/></figure><div class="speech-name">Ai</div></div><div class="speech-balloon has-background has-watery-yellow-background-color">
<p><code>docker ps</code> の出力結果、ありがとうございます。</p>



<p>コンテナ <code>docker-nginx-1</code> の <code>PORTS</code> 列にご注目ください。</p>



<pre class="wp-block-code"><code>PORTS
0.0.0.0:80-&gt;80/tcp, &#91;::]:80-&gt;80/tcp, 0.0.0.0:443-&gt;443/tcp, &#91;::]:443-&gt;443/tcp</code></pre>



<p>これは、以下のことを意味しています。</p>



<ul class="wp-block-list">
<li><code>0.0.0.0:80-&gt;80/tcp</code>: WSLホスト（<code>172.31.226.6</code> など）の <strong>ポート 80</strong> (HTTP) へのTCP接続を、<code>docker-nginx-1</code> コンテナ内部のポート 80 に転送する。</li>



<li><code>[::]:80-&gt;80/tcp</code>: 上記のIPv6版。</li>



<li><code>0.0.0.0:443-&gt;443/tcp</code>: WSLホストの <strong>ポート 443</strong> (HTTPS) へのTCP接続を、<code>docker-nginx-1</code> コンテナ内部のポート 443 に転送する。</li>



<li><code>[::]:443-&gt;443/tcp</code>: 上記のIPv6版。</li>
</ul>



<p><code>docker-web-1</code> コンテナ自体は内部的にポート 3000 を使っていますが、外部（WSLホスト）からのアクセスは <code>docker-nginx-1</code> コンテナがポート 80 (HTTP) と 443 (HTTPS) で受け付けています。Nginx がリバースプロキシとして動作し、リクエストを <code>docker-web-1</code> や <code>docker-api-1</code> などに振り分けている構成です。</p>



<p><strong>結論</strong></p>



<p>あなたが LAN 上の他の PC からアクセスしたい <strong>HTTP</strong> のポート番号は <strong>80</strong> です。</p>



<p>したがって、先ほどのポートフォワーディング設定のコマンドは、ポート番号 <code>80</code> を使って実行してください。</p>



<ol class="wp-block-list">
<li><strong>ファイアウォール開放 (ポート 80):</strong> <code>New-NetFirewallRule -DisplayName "Allow Dify Access from LAN (HTTP)" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow</code></li>



<li><strong>ポートフォワーディング設定 (ポート 80):</strong><br><code>powershell netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=172.31.226.6</code></li>
</ol>



<p>これで、 <code>http://192.168.0.94</code> (ポート80は省略可能) でアクセスできるはずです。</p>



<p>もし将来的にHTTPS (<code>https://192.168.0.94</code>) でアクセスしたい場合は、同様にポート <code>443</code> 用のファイアウォールルールとポートフォワーディング設定を追加する必要があります。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc14">ファイヤーウォールとポートフォワーディング設定</span></h3>



<p><span class="marker-under-red">ファイアウォールを開放</span>し、<span class="marker-under-red">ポートフォワーディング設定をしろ</span>、のアドバイスです。<br>教わったコードを実行してみます。</p>



<h4 class="wp-block-heading"><span id="toc15">１．ファイアウォール開放 (ポート 80):</span></h4>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-2a1baa688c4d7f0081410424df4fffa6"><code>PowerShell
PS C:\Users\hoge2&gt;　New-NetFirewallRule -DisplayName "Allow Dify Access from LAN (HTTP)" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow</code></pre>



<p>コントロールパネル→システムとセキュリティ→windows Defender ファイアウォール→詳細設定<br>受信の規則で<br>コマンドで指定したAllow Dify Access from LAN(HTTP)が設定されているのが、確認できます。<br>コマンドではなく、この画面で、GUI設定する事もできます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="638" src="https://www.kazuban.com/blog/wp-content/uploads/2025/05/defender-800x638.png" alt="" class="wp-image-11155" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/05/defender-800x638.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/05/defender-500x399.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/05/defender-300x239.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/05/defender-768x612.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/05/defender.png 1200w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h4 class="wp-block-heading"><span id="toc16">2．ポートフォワーディング設定 (ポート 80):</span></h4>



<p>管理者権限のPowerShell の、「netsh」コマンドで設定します。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-407ff20f71ed0d5d65d19b8abe74f839"><code>PowerShell（管理者）
PS C:\Users\hoge2&gt; netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=172.31.226.6</code></pre>



<p>「netsh interface portproxy show v4tov4」で確認できます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-3b28731fc08b3c287046ad304f896c2a"><code>PS C:\Users\hoge2&gt; netsh interface portproxy show v4tov4
ipv4 をリッスンする:         ipv4 に接続する:
Address         Port        Address         Port
--------------- ----------  --------------- ----------
0.0.0.0         80          172.31.226.6    80</code></pre>



<h4 class="wp-block-heading"><span id="toc17">アクセスできた～</span></h4>



<p>これで無事に「http://192.168.0.94/instal」でアクセスできました。<br>LAN上の別のPCからも、アクセス確認できました。<br>おそらく、ネット検索では、ここまで的確なアドバイスを見つけるのは至難の業だと思います。<br>ちょっと前までは、言語生成AIをうまく使うには、プロンプトが重要だと言われていましたが、最近の言語生成AIはかなり言語の理解力が向上していると感じます。<br>上記のじじぃの質問でもわかりますが、ほとんど「プロンプト」など意識していません。<br>とにかくわからない事やPCからの出力を、自分の言葉で質問しているだけです。<br>それでもかなり的確な回答をくれます。<br>たまには、間違った回答もありますが、それでエラーが発生した場合、<span class="marker-under">そのエラーやログをそのまま突っ込めば</span>、新たな回答をくれます。<br>すごい時代になりました。</p>



<h2 class="wp-block-heading"><span id="toc18">DifyにLLMを設定して、カスタムチャット環境を構築</span></h2>



<p>やっとDifyサーバーが起動できました。</p>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="407" height="690" src="https://www.kazuban.com/blog/wp-content/uploads/2025/05/select-llm.png" alt="" class="wp-image-11167 size-full" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/05/select-llm.png 407w, https://www.kazuban.com/blog/wp-content/uploads/2025/05/select-llm-300x509.png 300w" sizes="(max-width: 407px) 100vw, 407px" /></figure><div class="wp-block-media-text__content">
<p>次に、このDifyにLLMモデルを設定することで、チャットボットをはじめカスタムLLMアプリを開発する事ができるようになります。<br>左図の例では、<br>一番上の「Gemini」はオンラインで公開されているLLMです。<br>二番目は、「LM Studio」でダウンロードしたローカルLLMです。<br>三番目は、「Ollama」で読み込んでいるローカルLLMです。<br>このように、「Dify」ではオンライン、ローカルあまり意識せず、使用するLLMを自由にカスタマイズできます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc19">DifyにLLMの設定方法</span></h3>



<p>ネット上でも、多くの情報があると思いますが、このサイトでも以前の記事で紹介しています。</p>



<h4 class="wp-block-heading"><span id="toc20"><a href="https://www.kazuban.com/blog/dify-lmstudio/#toc3">オンラインLLMの登録</a></span></h4>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">

<a href="https://www.kazuban.com/blog/dify-lmstudio/#toc3" title="ローカルでDifyとLM_Studio を連携させ、ローカルでチャットボットを作る。" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_LMStudio-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_LMStudio-160x90.png 160w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_LMStudio-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_LMStudio-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">ローカルでDifyとLM_Studio を連携させ、ローカルでチャットボットを作る。</div><div class="blogcard-snippet internal-blogcard-snippet">LM StudioとDifyをローカルで連携させたのでレポートします。記事を書いている時に、Dify設定にLM Studioのプラグインを発見したので、そちらの設定も追加してます。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.kazuban.com/blog" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.kazuban.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2025.03.23</div></div></div></div></a>
</div></figure>



<h4 class="wp-block-heading"><span id="toc21"><a href="https://www.kazuban.com/blog/dify-lmstudio/#toc6">LM Studio モデルの登録</a></span></h4>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">

<a href="https://www.kazuban.com/blog/dify-lmstudio/#toc6" title="ローカルでDifyとLM_Studio を連携させ、ローカルでチャットボットを作る。" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_LMStudio-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_LMStudio-160x90.png 160w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_LMStudio-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_LMStudio-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">ローカルでDifyとLM_Studio を連携させ、ローカルでチャットボットを作る。</div><div class="blogcard-snippet internal-blogcard-snippet">LM StudioとDifyをローカルで連携させたのでレポートします。記事を書いている時に、Dify設定にLM Studioのプラグインを発見したので、そちらの設定も追加してます。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.kazuban.com/blog" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.kazuban.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2025.03.23</div></div></div></div></a>
</div></figure>



<h4 class="wp-block-heading"><span id="toc22"><a href="https://www.kazuban.com/blog/dify-ollama/#toc6">Ollama　モデルの登録</a></span></h4>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">

<a href="https://www.kazuban.com/blog/dify-ollama/#toc6" title="DifyとOllamaを連携させ、ローカルチャットボット環境を作る" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_Ollama-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_Ollama-160x90.png 160w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_Ollama-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dify_Ollama-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">DifyとOllamaを連携させ、ローカルチャットボット環境を作る</div><div class="blogcard-snippet internal-blogcard-snippet">前回はLM StudioとDifyの連携でしたが、今回は、Ollamaと連携させてみました。どちらもそれぞれ特徴があるので、使い分けてもいいと思います。私的には、スタンドアローンで使うならLM Studio。Difyとの連携であればOllama かな？と思っています。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.kazuban.com/blog" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.kazuban.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2025.03.30</div></div></div></div></a>
</div></figure>



<h2 class="wp-block-heading"><span id="toc23">あとがき</span></h2>



<p>Windowsアプリ「Docker Desktop」を使わず、「Ubuntu」にインストールした「Docker Engine」で「Dify」をサーバー化する方法を紹介しました。<br>「Docker Desktop」はWindows環境向けのツールであり、構築の手間は比較的少ないですが、Ubuntuサーバー上で動作させる際は、仮想化環境の設定やネットワーク通信の複雑さが生じるため、トラブルシューティングがやや難しくなります。<br>今回は、AIのアシストにより、Difyサーバーを構築することができました。<br>設定プロセスだけでなく、AIを活用した実践例として、このやり取りもご参考にしていただければ幸いです。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WSLのUbuntu24.04にDockerEngineをインストール。</title>
		<link>https://www.kazuban.com/blog/wsl-ubuntu-dockerengine/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Tue, 22 Apr 2025 11:59:02 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux (CentOS、Rocky、Ubuntu)]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[ubuntu24]]></category>
		<category><![CDATA[wsl]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=10895</guid>

					<description><![CDATA[以前の記事では、「WSL」を構築し、Windowsアプリの「Docker Desktop」をインストールし、そこに「Dify」をクローン化して起動させました。 この状態では、「WSL」環境には、別途Linuxはインストー [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>以前の記事では、「WSL」を構築し、Windowsアプリの「Docker Desktop」をインストールし、そこに「Dify」をクローン化して起動させました。</p>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">

<a href="https://www.kazuban.com/blog/dify-install/" title="話題のDifyをインストールしてみた。失敗談あり。" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify-160x90.png 160w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">話題のDifyをインストールしてみた。失敗談あり。</div><div class="blogcard-snippet internal-blogcard-snippet">話題のDifyをローカルインストールしてみました。普通にやれば何てことない作業ですが、余計な事したので時間がかかってしましました。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.kazuban.com/blog" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.kazuban.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2025.03.15</div></div></div></div></a>
</div></figure>



<p>この状態では、「WSL」環境には、別途Linuxはインストールされていません。<br>「wsl -l -v」コマンドで確認できます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-61003bade078a0306dab85c2cdbb4426"><code>PS C:\Users\hoge&gt; wsl -l -v
  NAME              STATE           VERSION
* docker-desktop    Running         2</code></pre>



<p>現在は、仮想環境として「Docker Engine」のみが動作し、そのコンテナとして「Dify」が動作しています。<br>この状態でも、「Dify」を利用する場合には問題ありませんが、せかっくの「WSL」なので「ubuntu」環境に「Docker」を構築し、「Dify」コンテナを構築し直そうと思います。<br>また、windowsアプリ「Docker Desktop」は、ライセンス的に完全オープンではありませんし、「Dify」もLinuxとの組み合わせのほうが、貧弱スペックマシンでは、パフォーマンスが向上しそうな気がしています。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Docker Desktop と WSLを完全アンインストール</a><ol><li><a href="#toc2" tabindex="0">Docker Desktop のアンインストール</a></li><li><a href="#toc3" tabindex="0">wslを完全に削除する</a></li><li><a href="#toc4" tabindex="0">ハードディスクのチェック</a></li></ol></li><li><a href="#toc5" tabindex="0">WSLにUbintu24.04をインストール</a><ol><li><a href="#toc6" tabindex="0">Windows新しいアカウント作成</a></li><li><a href="#toc7" tabindex="0">Ubuntu24.04インストール</a></li><li><a href="#toc8" tabindex="0">ユーザーとパスワード設定</a></li><li><a href="#toc9" tabindex="0">root パスワード設定</a></li><li><a href="#toc10" tabindex="0">パスワード入力なしで「sudo」を実行する</a></li></ol></li><li><a href="#toc11" tabindex="0">Docker Engine をインストール</a><ol><li><a href="#toc12" tabindex="0">古いバージョンのアンインストール</a></li><li><a href="#toc13" tabindex="0">Docker Engine インストール手順（Ubuntu 編）</a></li><li><a href="#toc14" tabindex="0">コンテナの削除</a></li></ol></li><li><a href="#toc15" tabindex="0">WSL、Ubuntu24.04、Docker Engine、環境完了</a><ol><li><a href="#toc16" tabindex="0">ubuntu、docker の通信状態</a><ol><li><a href="#toc17" tabindex="0">Windowsターミナルで、ipconfig コマンド</a></li><li><a href="#toc18" tabindex="0">wslで、ip a コマンド</a></li></ol></li><li><a href="#toc19" tabindex="0">ネットワーク環境・・複雑ですね</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Docker Desktop と WSLを完全アンインストール</span></h2>



<p>再度、クリーンな状態から再インストールしたい場合もあると思います<br>gemini君に教えてもらった、クリーンインストール方法をメモしておきます。</p>



<h3 class="wp-block-heading"><span id="toc2">Docker Desktop のアンインストール</span></h3>



<blockquote class="wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow">
<p>★Docker Desktopのアンインストール<br>1. 「設定」アプリを開く:<br>　Windowsキー + Iキーを押すか、スタートメニューから「設定」を選択します。<br>2. 「アプリ」を開く:<br>　「アプリ」をクリックします。<br>3. 「アプリと機能」を開く:<br>　左側のメニューから「アプリと機能」を選択します。<br>4. Docker Desktopを選択してアンインストール:<br>　アプリの一覧から「Docker Desktop」を見つけて選択し、「アンインストール」をクリックします。<br>　画面の指示に従ってアンインストールを完了させます。</p>



<p>★ 関連するファイルの削除 (オプション)<br>Docker Desktopのアンインストール後、残りのファイルを手動で削除することで、より完全にアンインストールすることができます。</p>



<pre class="wp-block-code"><code>1. 以下のフォルダを削除:
　`C:\Program Files\Docker`
　`C:\ProgramData\DockerDesktop`
　`C:\Users\&lt;ユーザー名&gt;\AppData\Local\Docker`
　`C:\Users\&lt;ユーザー名&gt;\AppData\Roaming\Docker`
2. Hyper-Vを無効化 (Docker DesktopでHyper-Vを使用していた場合):
　「コントロールパネル」&gt;「プログラム」&gt;「Windowsの機能の有効化または無効化」を開きます。
　「Hyper-V」のチェックボックスをオフにして、「OK」をクリックします。
　コンピュータを再起動します。
3. WSL 2を無効化 (Docker DesktopでWSL 2を使用していた場合):
　管理者としてPowerShellを開きます。

　`wsl --unregister docker-desktop`と`wsl --unregister docker-desktop-data`コマンドを実行します。
　「コントロールパネル」&gt;「プログラム」&gt;「Windowsの機能の有効化または無効化」を開きます。
　「Linux用Windowsサブシステム」のチェックボックスをオフにして、「OK」をクリックします。
　コンピュータを再起動します。
4. 環境変数の削除 (Docker関連の環境変数を設定していた場合):
　「システム環境変数の編集」を検索して開きます。
　「環境変数」ボタンをクリックします。
　ユーザー環境変数とシステム環境変数から、Dockerに関連する変数を削除します。
★注意点:
　上記のフォルダやファイルは、環境によって異なる場合があります。
　レジストリを編集する場合は、誤った操作をするとシステムに問題が発生する可能性があるため、注意が必要です。
　Docker Toolboxを使用していた場合は、VirtualBoxもアンインストールする必要があります。</code></pre>
</blockquote>



<h3 class="wp-block-heading"><span id="toc3">wslを完全に削除する</span></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<pre class="wp-block-code"><code>★ WSLディストリビューションのアンインストール<br>　WSLに、既にLinuxディストリビューションがインストールされている場合、<br>　まず、これらを個別にアンインストールします。<br>1. 管理者権限でPowerShellまたはコマンドプロンプトを開きます。<br>2. `wsl --list --verbose` または `wsl -l -v` コマンドを実行し、インストールされているディストリビューションの一覧と名前を確認します。<br>3. `wsl --unregister &lt;ディストリビューション名&gt;` コマンドを実行します。<br>　例：`wsl --unregister Ubuntu-24.04`<br>4. 他のディストリビューションに対しても同様の手順を繰り返します。<br>**補足:**<br>　ディストリビューションをアンインストールすると、そのディストリビューションに関連付けられたすべてのデータが削除されます。<br>　必要なデータがある場合は、事前にバックアップしてください。<br>　Microsoft Storeからインストールしたディストリビューションは、通常のWindowsアプリと同様にアンインストールすることも可能です。</code></pre>



<p>★WSL機能の無効化<br>　ディストリビューションをアンインストールした後、WSL機能を完全に無効化することもできます。<br>1. 「コントロールパネル」&gt;「プログラム」&gt;「Windowsの機能の有効化または無効化」を開きます。<br>2. 「Windows Subsystem for Linux」と「仮想マシン プラットフォーム」のチェックボックスをオフにします。<br>3. 「OK」をクリックし、コンピューターを再起動します。<br>**補足:**<br>　WSL機能を無効化すると、すべてのWSL関連機能が利用できなくなります。<br>　Hyper-Vを有効にしている場合は、Hyper-Vも無効にする必要があります。<br>**その他の注意点**<br>　 WSL関連のファイルやフォルダが残っている場合は、手動で削除することも可能です。ただし、システムの重要なファイルを誤って削除しないように注意してください。<br>　レジストリを編集する場合は、誤った操作をするとシステムに問題が発生する可能性があるため、注意が必要です。</p>



<p>これらの手順に従うことで、WSLを完全に削除することができます。</p>
</blockquote>



<h3 class="wp-block-heading"><span id="toc4">ハードディスクのチェック</span></h3>



<p>古いPCにインストールしていると、ハードディスクの調子が悪いのか？WSLが正常にインストールできない事がありました。<br>Windows付属のチェッカーで回復する可能性がありますので、メモしておきます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<pre class="wp-block-code"><code>★システムファイルチェッカー（SFC）の実行:<br>システムファイルの破損を修復します。<br>管理者権限でコマンドプロンプトを開き、<br>「sfc /scannow」と入力して実行。</code></pre>



<pre class="wp-block-code"><code>★DISMコマンドの実行:<br>SFCで修復できないシステムイメージの破損を修復します。<br>管理者権限でコマンドプロンプトを開き、<br>「DISM /Online /Cleanup-Image /RestoreHealth」と入力して実行。</code></pre>
</blockquote>



<h2 class="wp-block-heading"><span id="toc5">WSLにUbintu24.04をインストール</span></h2>



<p>「Docker Desktop」と「WSL」のアンインストール方法を紹介しました。<br>今回は、WSLに「Ubuntu24.04」を構築し、「Docker Engine」環境を構築しますが、まだ「Docker Desktop」の環境は残しておきたいので、Windowsに新しいユーザーアカウントを作成し新しい環境で作業したいと思います。</p>



<h3 class="wp-block-heading"><span id="toc6">Windows新しいアカウント作成</span></h3>



<p>新しいユーザーの作成方法は、ネット上に情報がありますので、検索してみてください。<br>新しいユーザーでサインインし、新たに「WSL」環境を構築する場合では、<a href="https://www.kazuban.com/blog/dify-install/#toc2">こちらを参考してしてください。</a><br>新しいユーザーでサインインした初期状態では「wsl -l -v」で確認すると、なにも環境がないのがわかります。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-d9e0fabbc58256b0c43e584ae615cf92"><code>PS C:\Users\hoge2&gt; wsl -l -v
Linux 用 Windows サブシステムにインストールされているディストリビューションはありません。
この問題を解決するには、以下の手順に従ってディストリビューションをインストールしてください:

'wsl.exe --list --online' を使用して利用可能な配布を一覧表示する
および 'wsl.exe --install &lt;Distro&gt;' を使用してインストールしてください。</code></pre>



<h3 class="wp-block-heading"><span id="toc7">Ubuntu24.04インストール</span></h3>



<p>いよいよインストールを始めますが、２つの方法<br><span class="marker">「Microsoft Store 経由」</span>と<span class="marker">「wsl コマンド経由」</span>があります。<br>どちらでもいいと思いますが、アンインストールなどアプリの管理は「Microsoft Store 経由」のほうが簡単です</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="685" height="229" src="https://www.kazuban.com/blog/wp-content/uploads/2025/04/ubuntu_uninstall.png" alt="" class="wp-image-10920" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/04/ubuntu_uninstall.png 685w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/ubuntu_uninstall-500x167.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/04/ubuntu_uninstall-300x100.png 300w" sizes="(max-width: 685px) 100vw, 685px" /></figure>



<p>インストール自体はどちらも、簡単です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>「Microsoft Store 経由」</strong><br>・Microsoft Store を開き、「Ubuntu 24.04」を検索。<br>・ 「入手」をクリック。<br>・ インストールが完了したら、「起動」をクリックします。</p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<pre class="wp-block-code"><code><strong>「wsl コマンド経由」</strong><br>・PowerShell またはコマンドプロンプトを管理者権限で開く。<br>・「wsl --list --online」　でLinux ディストリビューションが一覧表示できる<br>・希望のディストリビューションをインストール<br>・「wsl --install -d Ubuntu-24.04」<br>・インストールが完了後「Ubuntu」起動</code></pre>
</blockquote>



<h3 class="wp-block-heading"><span id="toc8">ユーザーとパスワード設定</span></h3>



<p>「ubuntu」の起動は、<strong>「Microsoft Store 経由」</strong>であれば、「スタートメニュー」にアイコンが作成されています。<br><strong>「wsl コマンド経由」</strong>の場合は、<span class="marker-under-red">ターミナルを起動し「wsl」コマンド</span>で起動できます。<br>「ubuntu」の最初の起動では、Unixユーザ名の作成を求められます。<br>特に、<span class="marker-under">WIndowsユーザーと同じ必要はない</span>ので、適当なユーザー名とパスワードを設定します。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-fc02e0d8562effd42ffe46450ba1b04b"><code>・
Enter new UNIX username: hoge2
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
・</code></pre>



<h3 class="wp-block-heading"><span id="toc9"><a href="https://www.kazuban.com/blog/ubuntu24-04lts-install/#toc4">root パスワード設定</a></span></h3>



<p><a href="https://www.kazuban.com/blog/ubuntu24-04lts-install/#toc4">こちらでもレポートしましたが、</a>「ubuntu」では管理権限が必要な場合には「sudo」コマンドで行い、「root」ユーザーは極力使わないを基本にしているみたいです。<br>したがってデフォルトでは「root」パスワードは設定されていません。<br>ただ、管理者権限が必要なコマンドやフォルダのアクセスなど、設定やメンテナンスの場合一回一回「sudo」を使うのは面倒です。<br>「root」での作業は、注意が必要ですが、管理者コマンドの連続の場合、筆者は使用しています。<br>その場合、筆者は「root」パスワードを設定しています。<br>「root」パスワードは、「<strong>sudo passwd root</strong>」コマンドで設定できます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-dde0e4ebbde19058c0f2e736a10d5ac3"><code>$ <strong>sudo passwd root</strong>
&#91;sudo] password for hoge2:
New password:
Retype new password:
passwd: password updated successfully</code></pre>



<p>設定されました。<br>「root」になりたい時には、「<strong>su</strong>」コマンドを使用します。<br>「root」になると<span class="marker-under">「$」プロンプトが「#」に換わります</span>。<br>元のユーザに戻るには「exit」コマンドを実行します。<br>現在のユーザーは<strong>「whoami」</strong>で確認できます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-68b89d914433fdcecff4aa14f883c22a"><code>$ su
Password:
# whoami
root
# exit
exit
$ whoami
hoge2</code></pre>



<h3 class="wp-block-heading"><span id="toc10"><a href="https://www.kazuban.com/blog/ubuntu24-04lts-install/#toc5">パスワード入力なしで「sudo」を実行する</a></span></h3>



<p>通常は「sudo」コマンドを使用しますが、いちいちパスワードを聞かれるので、結構面倒です。<br>パスワードなしで「sudo」を実行できる設定は「<strong>visudo</strong>」コマンドの特殊なエディターで設定します。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-6ce0f568d9dd915d1416c311f160bcaa"><code>$ sudo visudo
・
・
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
・
## Same thing without a password
%sudo  ALL=(ALL)       NOPASSWD: ALL
・
・</code></pre>



<p>開いた設定ファイルに、<br>「<strong>%sudo ALL=(ALL) NOPASSWD: ALL</strong>」<br>この設定値を追加し上書き保存します。<br>この設定で、「sudo」グループのユーザーは「sudo」が実行でき、パスワードが不要になります。<br>ただし、「sudo」コマンドを実行できるのは、「sudoグループ」登録されているユーザーのみなので、現ユーザーを「suduグループ」に登録します。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-5233c8631e0434e59df2d96b04c678e1"><code>$ sudo usermod -aG sudo $USER
$ newgrp sudo</code></pre>



<p>この設定で、現ユーザーは「sudoグループ」に登録され「sudo」コマンドが実行できます。</p>



<h2 class="wp-block-heading"><span id="toc11">Docker Engine をインストール</span></h2>



<p>「ubuntu」を操作できるユーザー設定が完了したので、いよいよ「Docker Engine」をインストールしていきます。</p>



<h3 class="wp-block-heading"><span id="toc12">古いバージョンのアンインストール</span></h3>



<p>古いバージョンがインストールされている可能性がある場合には、念のため次のコマンドを実行してアンインストールしておきます</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-5e783d0bf34da85fe663e43a0535a4c6"><code>$ sudo apt-get remove docker docker-engine docker.io containerd runc</code></pre>



<p>完全に削除するには、次のコマンドでボリュームやイメージデータを削除します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-54d678a774dd4d386fc6f087086e69af"><code>$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd</code></pre>



<h3 class="wp-block-heading"><span id="toc13">Docker Engine インストール手順（Ubuntu 編）</span></h3>



<p>・依存パッケージのインストール</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-a2c47e3f5046f72fdf0a3f50049035f5"><code>$ sudo apt-get update
$ sudo apt-get install -y ca-certificates curl gnupg lsb-release</code></pre>



<p>・ディレクトリを作製し、Docker の公式 GPG 鍵を追加</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-2d47be207e0dd8a1d44e7762ef4f8b1c"><code>$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg</code></pre>



<p>・Docker リポジトリを追加</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-e87b6a4cc47a4f6b45a88a5e27194977"><code>$ echo \
  "deb &#91;arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null
</code></pre>



<p>・パッケージ更新＆インストール</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-68d773d294e1b2fe4dc74661d04f1575"><code>$ sudo apt-get update
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></pre>



<p>・Docker の動作確認</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-8c7d37f805187e8429f6bb76d96429b4"><code>$ sudo docker run hello-world

↑ これで「Hello from Docker!」が出れば OK！</code></pre>



<p>・dockerコマンド実行は、「sudo」 が必要ですが、実行ユーザーがdockerグループであれば、不要になります。<br>下記コマンドで、douckerグループに参加させます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-042b07a7be729546f3a49ee27f929557"><code>$ sudo usermod -aG docker $USER
$ newgrp docker</code></pre>



<h3 class="wp-block-heading"><span id="toc14">コンテナの削除</span></h3>



<p>動作確認で「hello-world」コンテナを作製しましたが、コンテナ削除操作を覚書しておきます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-d865aecab9cd8fd2a9ad3857cce481a6"><code>★コンテナの一覧を表示
$ docker ps -a

★コンテナ削除
$ docker rm &lt;CONTAINER ID または NAMES&gt;

★hello-world イメージ自体を削除
★動作している場合に、エラーになるので、コンテナ削除後にイメージ削除
　 ※"hello-word"のCONTAINER IDを表示する
　 $ docker ps -a -q --filter ancestor=hello-world
$ docker rm $(docker ps -a -q --filter ancestor=hello-world)
$ docker rmi hello-world

★全てのコンテナと全てのコンテナイメージを削除
  -f オプションを付加すると、強制的に削除されるので注意
$ docker rm -f $(docker ps -a -q)
$ docker rmi -f $(docker images -a -q)

★ボリュームの削除: 全ボリュームを削除します。
$ docker volume rm $(docker volume ls -q)

★ネットワークの削除: ネットワークを削除します。
$ docker network rm $(docker network ls -q)

★キャッシュのクリア: 必要に応じて、Dockerのキャッシュをクリアします。
$ docker system prune -a

★すべての停止中コンテナと未使用イメージのみを一掃
　実行中のコンテナは削除しない
$ docker system prune</code></pre>



<h2 class="wp-block-heading"><span id="toc15">WSL、Ubuntu24.04、Docker Engine、環境完了</span></h2>



<p>WSL、ubuntu、docker の環境が出来上がりました。<br>次に、dockerでDifyの環境をセットアップする予定ですが、windowsアプリの「docker Desktop」の場合は、ある程度アプリがやってくれそうですが、今回は「Ubuntu24.04」環境に「Docker」をインストールしたのでネットワーク環境が複雑になりそうな気がしています。</p>



<h3 class="wp-block-heading"><span id="toc16">ubuntu、docker の通信状態</span></h3>



<p>windows環境とwsl環境で、通信状態を調べてみます。</p>



<h4 class="wp-block-heading"><span id="toc17">Windowsターミナルで、ipconfig コマンド</span></h4>



<pre class="wp-block-code"><code>PS C:\Users\hogehoge2&gt; ipconfig
Windows IP 構成
・
Wireless LAN adapter Wi-Fi:
   接続固有の DNS サフィックス . . . . .:
   IPv6 アドレス . . . . . . . . . . . .: 240f:110:2717:1:f62b:3484:aafb:ade5
   一時 IPv6 アドレス. . . . . . . . . .: 240f:110:2717:1:b1bf:2b2:5d5d:2a98
   リンクローカル IPv6 アドレス. . . . .: fe81::84c1:d56e:ece:1ad8%15
   IPv4 アドレス . . . . . . . . . . . .: <strong>192.168.0.94</strong>
   サブネット マスク . . . . . . . . . .: <strong>255.255.255.0</strong>
   デフォルト ゲートウェイ . . . . . . .: fe81::fab7:98ff:fe4b:95b8%15
・                                          192.168.0.1
イーサネット アダプター vEthernet (WSL):
   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe81::f749:f04d:c08e:932%44
   IPv4 アドレス . . . . . . . . . . . .: <strong>172.31.224.1</strong>
   サブネット マスク . . . . . . . . . .: <strong>255.255.240.0</strong>
   デフォルト ゲートウェイ . . . . . . .:</code></pre>



<p>WindowsホストマシンIPアドレス、家庭内LAN：<br> 192.168.0.94/24<br><br>WSL Windows側IPアドレス、WindowsとWSL間の通信するためのゲートウェイ：<br> 172.31.244.1/20</p>



<h4 class="wp-block-heading"><span id="toc18">wslで、ip a コマンド</span></h4>



<pre class="wp-block-code"><code>$ ip a
1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2:<strong> eth0:</strong> &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:c8:2e:42 brd ff:ff:ff:ff:ff:ff
    inet <strong>172.31.226.6/20</strong> brd 172.31.239.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe81::215:5dff:fec8:2e42/64 scope link
       valid_lft forever preferred_lft forever
3: <strong>docker0</strong>: &lt;NO-CARRIER,BROADCAST,MULTICAST,UP&gt; mtu 1500 qdisc noqueue state DOWN group default
    link/ether ba:b5:41:49:d7:3c brd ff:ff:ff:ff:ff:ff
    inet <strong>172.17.0.1/16</strong> brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever</code></pre>



<p>WSL Docker側IPアドレス、WSL環境はこのアドレスで、Windowsと通信：<br> 172.31.226.6/20<br><br>docker0 のIPアドレス、Dockerがコンテナにネットワーク機能を提供するためにWSL 2のLinux環境内に作成する<strong>ブリッジネットワークインターフェース</strong>です<br>172.17.0.1/16</p>



<h3 class="wp-block-heading"><span id="toc19">ネットワーク環境・・複雑ですね</span></h3>



<p>次回、DockerにDifyのコンテナを作成しようと思います。<br>LAN内でも別のPCからのアクセス可能にしたいので、設定状況をレポートします。</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ubuntu24.04LTSでWorsPressを動作させる。WordPress インストール、バックアップと復元</title>
		<link>https://www.kazuban.com/blog/wordpewss-ubuntu/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sun, 30 Jun 2024 06:22:28 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux (CentOS、Rocky、Ubuntu)]]></category>
		<category><![CDATA[ubuntu24]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=8935</guid>

					<description><![CDATA[「RockyLinux9」への「WordPress」のインストールはこちらで説明しています。 目次 WordPressを動作させる最新のWordPressをダウンロードとドキュメント・ルートへ設置MariaDBにデータベ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>「RockyLinux9」への「WordPress」のインストールは<a href="https://www.kazuban.com/blog/rokeylinux9-3-wordpress-install/">こちら</a>で説明しています。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">WordPressを動作させる</a><ol><li><a href="#toc2" tabindex="0">最新のWordPressをダウンロードとドキュメント・ルートへ設置</a></li><li><a href="#toc3" tabindex="0">MariaDBにデータベースと管理ユーザーの設定</a></li><li><a href="#toc4" tabindex="0">WordPress 初期設定</a></li><li><a href="#toc5" tabindex="0">Apacheの、rewriteモジュールとAllowOverrideの設定</a></li></ol></li><li><a href="#toc6" tabindex="0">WordPress バックアップとリストア</a><ol><li><a href="#toc7" tabindex="0">スクリプトの環境</a></li><li><a href="#toc8" tabindex="0">スクリプトのダウンロードと展開</a></li><li><a href="#toc9" tabindex="0">自分の環境に合わせて、編集</a><ol><li><a href="#toc10" tabindex="0">MariaDBデータベースのバックアップスクリプト</a></li><li><a href="#toc11" tabindex="0">MariaDBデータベースの復元スクリプト</a></li><li><a href="#toc12" tabindex="0">WordPress内容の復元スクリプト</a></li><li><a href="#toc13" tabindex="0">WordPress内容のバックアップスクリプト</a></li></ol></li><li><a href="#toc14" tabindex="0">バックアップ自動化</a></li></ol></li><li><a href="#toc15" tabindex="0">Ubuntu24.04LTSでWordPressを構築する記事一覧</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">WordPressを動作させる</span></h2>



<h3 class="wp-block-heading"><span id="toc2">最新のWordPressをダウンロードとドキュメント・ルートへ設置</span></h3>



<p>・ホームディレクトリの仮のダウンロードディレクトリに移動<br>・<a href="https://ja.wordpress.org/latest-ja.tar.gz">WordPress 最新版のダウンロード</a><br>・圧縮ファイルを展開<br>・WordPress ディレクトリ全体を、Apacheのドキュメント・ルートへ移動<br>・必要に応じて、「wordpress」ディレクトリ名を自分の環境へ変更<br>・WordPressディレクトリ全体の、ユーザーとグループの変更</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-c0619151fcb158bc730831a550f9b158"><code>$ cd ~/Downloads/
$ wget https://ja.wordpress.org/latest-ja.tar.gz
$ tar xvzf latest-ja.tar.gz
$ sudo mv ./wordpress/ /home/www/html/
$ cd /home/www/html/
$ sudo mv ./wordpress/ ./blog/
$ sudo chown -R apache:apache ./blog/</code></pre>



<h3 class="wp-block-heading"><span id="toc3">MariaDBにデータベースと管理ユーザーの設定</span></h3>



<p>「CREATE DATABASE」でWordPress用のデータベースを作成し<br>「GRANT ALL ON」でデータベースへ全権限を持つ ユーザを作成します。<br>mariaDBに wordpress用のデータベースを作成前に、設定情報をメモしておきます。<br>・データベース名：WpDb<br>・ユーザー名:WpAdmin<br>・パスワード:WpPasswd<br>・データベースホスト:local</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-87c2c70e7ed759f2047f6623927bb4fb"><code>$<strong> mysql -u root -p&#91;パスワード]</strong> &lt;----- -pの後スペースなし
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 10.11.8-MariaDB-0ubuntu0.24.04.1 Ubuntu 24.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB &#91;(none)]&gt; <strong>CREATE DATABASE WpDb;</strong>  &lt;--- データベース作成
Query OK, 1 row affected (0.001 sec)

MariaDB &#91;(none)]&gt; <strong>SHOW DATABASES;</strong>  &lt;---- データベース確認
+--------------------+
| Database           |
+--------------------+
| <strong>WpDb</strong>              |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.001 sec)
          &lt;---------- 作成したデータベースの管理者ユーザーの作成
MariaDB &#91;(none)]&gt; <strong>GRANT ALL ON WpDb.* TO 'WpAdmin'@'localhost' IDENTIFIED By 'WpPasswd';</strong>
Query OK, 0 rows affected (0.008 sec)

MariaDB &#91;(none)]&gt; <strong>USE mysql</strong>   &lt;---- 管理者ユーザーのデータベースは「mysql」
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB &#91;mysql]&gt; <strong>SELECT user,host from user;</strong>  &lt;---- ユーザーデータベースの確認
+-----------------+-----------+
| User            | Host      |
+-----------------+-----------+
| <strong>WpDb</strong>           | localhost |
| mariadb.sys     | localhost |
| mysql           | localhost |
| root            | localhost |
+-----------------+-----------+
4 rows in set (0.003 sec)

MariaDB &#91;mysql]&gt; <strong>SHOW GRANTS FOR 'WpAdmin'@'localhost';</strong> &lt;--- 権限の確認
+------------------------------------------------------------------------------------------------------------------------+
| Grants for WpAdministrator@localhost                                                                                   |
+------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `WpAdmin`@`localhost` IDENTIFIED BY PASSWORD '*1234567AABBB2024A1B2222CC33344A2014Z' |
| GRANT ALL PRIVILEGES ON `WpDb`.* TO `WpAdmin`@`localhost`                                                |
+------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

MariaDB &#91;mysql]&gt; quit
Bye</code></pre>



<h3 class="wp-block-heading"><span id="toc4">WordPress 初期設定</span></h3>



<p>さあ、準備が完了したので、アドレスバーに公開サイトURLを入力すると「初期画面」が出てくるはずですが、前回の「RockyLinux」同様、<span class="marker-under-red">エラーが出てしまいました。</span></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="772" height="216" src="https://www.kazuban.com/blog/wp-content/uploads/2024/01/mysqli_error.png" alt="" class="wp-image-8536" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/01/mysqli_error.png 772w, https://www.kazuban.com/blog/wp-content/uploads/2024/01/mysqli_error-500x140.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/01/mysqli_error-300x84.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/01/mysqli_error-768x215.png 768w" sizes="(max-width: 772px) 100vw, 772px" /></figure>



<p>「php-mysql*」の状態を調べてみます</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-6c8efe4d7b428d6d0333d99e40879f15"><code>$ dpkg -l | grep php-mysql
l$ apt list php-mysql*
一覧表示... 完了
php-mysql/noble 2:8.3+93ubuntu2 all</code></pre>



<p>「RockyLinux9」では、「php-mysqlnd」が必要でしたが、「ubuntu2.4」では「php-mysql」のようなのでインストールします</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-e9ce4e5964c51aaa73b590ec66f15872"><code>$ sudo apt install php-mysql</code></pre>



<p>インストール後再度公開サイトへアクセスすると、<span class="marker-under">無事に初期設定　画面がでてきました。</span></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="780" height="577" src="https://www.kazuban.com/blog/wp-content/uploads/2023/12/welcom.png" alt="" class="wp-image-8464" srcset="https://www.kazuban.com/blog/wp-content/uploads/2023/12/welcom.png 780w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/welcom-500x370.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/welcom-300x222.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/welcom-768x568.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<p>「さぁ、始めましょう！<span style="font-size: revert; font-family: var(--cocoon-default-font);">」を</span>クリックする事で、次の「ようこそ」画面で必要情報を入力する事でサンプルページが出てきます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="715" src="https://www.kazuban.com/blog/wp-content/uploads/2023/12/samplepage-800x715.png" alt="" class="wp-image-8474" srcset="https://www.kazuban.com/blog/wp-content/uploads/2023/12/samplepage-800x715.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/samplepage-500x447.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/samplepage-300x268.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/samplepage-768x686.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/samplepage.png 893w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>確認が済んだら、設定した「データベースのユーザー名」などの情報は、/home/www/html/blog/wp-config.phpに書かれているので、アクセス権は厳しくしておきます</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-8d3252cfd4fe458ba7d1c95ea71e557d"><code>$ cd /home/www/html/blog
$ sudo chmod 600 ./wp-config.php</code></pre>



<h3 class="wp-block-heading"><span id="toc5">Apacheの、rewriteモジュールとAllowOverrideの設定</span></h3>



<p>WordPress設定のパーマリンクで<span class="marker">「基本」以外</span>の設定にしたい場合、Apache上でURLの書き換えを行う<span class="marker-under-red">「mod_rewrite」モジュールを有効</span>にする必要があります。<br>したがって、「mod_rewrite.so」モジュールが組み込まれている必要があります。<br>またパーマリンクの設定で、<span class="marker">「基本」以外</span>に設定した場合、URLの書き換えを行う設定がWordPressのディレクトリ内の「<strong>.htaccess</strong>」として作成されます。<br>apacheは「.htaccess」を見つけると、この設定を有効にしますが、<strong>AllowOverride がNone</strong>で設定されていると<span class="marker-under-red">「.htaccess」は無視</span>されます。<br>「mod_rewriteモジュール」と「AllowOverride ディレクティブ」の確認を行います</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-25504ca25f312dfbd94bd0e58016edbf"><code>$ ls /etc/apache2/mods-enabled/ | grep rewrite
　・・     &lt;--- 有効になっていない

$ ls /etc/apache2/mods-available/ | grep rewrite
<strong>rewrite.load</strong>
　・・     &lt;--- 設定ファイルはあるので、有効にする

$ sudo <strong>a2enmod rewrite</strong>
Enabling module rewrite.
To activate the new configuration, you need to run:
  systemctl restart apache2

　・・     &lt;--- AllowOverrideの設定ファイルを作成
$ cd /etc/apache2/conf-available
$ sudo vi ./wordpress.conf
&lt;Directory "/home/www/html/blog"&gt;
    <strong>AllowOverride All</strong>
&lt;/Directory&gt;
　・・     &lt;--- 設定ファイル保存し、有効にする
$ sudo <strong>a2enconf wordpress</strong>
Enabling conf wordpress.
To activate the new configuration, you need to run:
  systemctl reload apache2</code></pre>



<h2 class="wp-block-heading"><span id="toc6">WordPress バックアップとリストア</span></h2>



<p><a href="https://www.kazuban.com/blog/rokeylinux9-3-wordpress-backup/#toc6">バックアップの詳細はこちらで紹介している</a>ので、興味あればご確認ください<br>今回以前自作した、バックアップとリストアのスクリプトをダウンロード可能にしました。<br>環境をあわせれば、使用できると思いますし、スクリプトなのでご自身の環境に合わせる事で使用できると思います。</p>



<h3 class="wp-block-heading"><span id="toc7">スクリプトの環境</span></h3>



<p>基本的は構造は下記になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>・「自分のホームディレクトリ」に「bin」ディレクトリを作成<br>・「bin」にスクリプトを保存し、スクリプトには実行権限「+X」もしくは「700」に設定<br>・「自分のホームディレクトリ」にバックアップ用「Backup」ディレクトリを作成<br>・「Backup」に「MariaDB」と「WordPress」のバックアップ用ディレクトリを作成<br><br>$ cd &lt;&#8212;&#8211; ホームディレクトリに移動<br>$ mkdir ./bin &lt;&#8212;&#8211; スクリプトを保存するディレクトリ<br>$ mkdir ./Backup &lt;&#8212;&#8211; バックアップ保存用ディレクトリ<br>$ mkdir ./Backup/MariaDB &lt;&#8212;&#8212;&#8211; MariaDBデータ保存用ディレクトリ<br>$ mkdir ./Backup/Wp-content &lt;&#8212;&#8212; WordPressコンテンツ保存用ディレクトリ</p>
</blockquote>



<h3 class="wp-block-heading"><span id="toc8">スクリプトのダウンロードと展開</span></h3>



<p>下記からダウンロードし、展開して使用します。<br><a href="https://www.kazuban.com/soft/wordpress-back-restore.tar.gz">https://www.kazuban.com/soft/wordpress-back-restore.tar.gz</a></p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-513c3906fd629fd2759babd50b3d4f2f"><code>$ cd 
$ wget https://www.kazuban.com/soft/wordpress-back-restore.tar.gz
$ tar xvzf wordpress-back-restore.tar.gz
$ cd .bin
$ chmod 700 ./*
$ ls
MariaDB_Backup.sh  MariaDB_Restore.sh  Tidyup_backfile.sh  Wp-ContentRestore.sh  Wp-Content_Backup.sh</code></pre>



<p>５個のスクリプトが展開されます。<br>・MariaDB_Backup.sh　　　MariaDBデータベースのバックアップ<br>・MariaDB_Restore.sh　　　MariaDBデータベースの復元<br>・Tidyup_backfile.sh        　バックアップデータの整理<br>・Wp-ContentRestore.sh　　WordPressコンテンツの復元<br>・Wp-Content_Backup.sh　　WordPressコンテンツのバックアップ</p>



<h3 class="wp-block-heading"><span id="toc9">自分の環境に合わせて、編集</span></h3>



<h4 class="wp-block-heading"><span id="toc10">MariaDBデータベースのバックアップスクリプト</span></h4>



<p>自分の環境に合わせて、変数を編集します。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-f2a65f11dfb5a515f6efcbaadb592686"><code>#!/bin/sh
#
#  MariaDB_Backup.sh    2023/12
#
#------------------------------------
BackupDir="/home/hogehoge/Backup/MariaDB"   &lt;-------- バックアップディレクトリ
MysqlUser="WpAdmin"                        &lt;-------- WordPressのユーザー
MysqlUserPasswd="WpPasswd"                 &lt;-------- WordPressユーザーのパスワード
TidyUpScript="/home/hogehoge/bin/Tidyup_backfile.sh" &lt;---- データ整理スクリプト
DaysAgo="4"               &lt;-------- データを整理する日数
LOG="mariadb_backup.log"　&lt;------- ログファイル名
#------------------------------------
　　・
　　・</code></pre>



<p>実行すると、バックアップを開始します。<br>設定されている、バックアップディレクトリに、<br>「実行時の日付」-MariaDB.bak　の名前で保存されます<br>もし、古いバックアップがある場合、その作成日が「DaysAgo=&#8221;4&#8243;」より古い場合削除されます</p>



<h4 class="wp-block-heading"><span id="toc11">MariaDBデータベースの復元スクリプト</span></h4>



<p>自分の環境に合わせて、変数を編集します。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-5cd95725e320e5472bcf02e72cc81d75"><code>#!/bin/sh
#
#  MariaDB_Restore.sh    2024/02
#
#------------------------------------
BackupDir="/home/hogehoge/Backup/MariaDB"     &lt;-------- バックアップディレクトリ
MySqlPasswd="Password"                        &lt;-------- MariaDBのパスワード
DataBase="WpDb"                               &lt;-------- WordPressデータベース
#------------------------------------
PreBackup="Y"   # Do you want to back up? Y/N &lt;---- 事前バックアップの有無
PreBackupFile="Pre-Backup.bak"                &lt;------事前バックアップのファイル名
MysqlUser="WpAdmin"                           &lt;----- WordPressデータベースユーザー
MysqlUserPasswd="WpPassword"                    &lt;-------- WordPressユーザーのパスワード
BackupScript="/home/hogehoge/bin/MarinaDB_Backup.sh"
#------------------------------------
echo "--------------------"
　　・
　　・</code></pre>



<p>復元スクリプトは、引数なしで実行すると、バックアップディレクトリに保存されているファイルのリストを表示するので、再度バックアップしたい日付のファイルを引数に指定して実行します。<br>「PreBackup=&#8221;Y&#8221;」に設定されている場合には、<br>復元前の状態のバックアップととり、確認後復元を開始します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-e418af8ca1aada298b91321cb2736738"><code>$ ./MariaDB_Restore.sh     &lt;---- 引数なしで実行
--------------------
/home/hogehoge/Backup/MariaDB　　&lt;----- バックアップディレクトリ内のファイルを表示
20240625-MariaDB.bak
20240626-MariaDB.bak
20240627-MariaDB.bak
20240628-MariaDB.bak
<strong>20240629-MariaDB.bak</strong>
--------------------
MariaDB_Restore.sh &#91;Backup file name]
--------------------
-- You are able to select from the list above.--
--------------------

$ ./MariaDB_Restore.sh <strong>20240629-MariaDB.bak</strong>　&lt;---- ファイルを指定して再実行
--------------------
/home/hogehoge/Backup/MariaDB
20240629-MariaDB.bak
--------------------
--------------------
preliminary backup start.  &lt;----- 実行前データバックアップ
mysqldump -u WpAdmin -pWpPassword -h localhost -A  > 20240629-Pre-Backup.bak
-- The backup is complete. --
--------------------
-- Mysql restore start --
mysql -u root -pPassword WpDb &lt; 20240629-MariaDB.bak
Restore?(y/n):y   &lt;----- 確認</code></pre>



<h4 class="wp-block-heading"><span id="toc12">WordPress内容の復元スクリプト</span></h4>



<p>自分の環境に合わせて、変数を編集します。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-4fde71d89a1a10b64f3ff5de992bca5a"><code>#!/bin/sh
#
#       WP-contentRestor.sh   2024/02
#
#--------------------------------------------
BackupDir="/home/hogehoge/Backup/Wp-content" &lt;---- WordPressのバックアップディレクトリ
WordPressWpContentDir="/home/www/html/blog/wp-content"　　&lt;----WordPressコンテンツ本体 
#------------------------------------
echo "--------------------"
　　・
　　・</code></pre>



<p>MariaDBと同様に、引数なしで実行すると、バックアップディレクトリに保存されているファイルのリストを表示するので、再度バックアップしたい日付のファイルを引数に指定して実行します<br>復元前の状態のバックアップととり、確認後復元を実行します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-9e4eb193587c2c588a58938102cd587c"><code>$ ./Wp-ContentRestore.sh
--------------------
/home/hogehoge/Backup/Wp-content　　&lt;----- バックアップディレクトリ内のファイルを表示
20240625-Wp-content.tar.gz
20240626-Wp-content.tar.gz
20240627-Wp-content.tar.gz
20240628-Wp-content.tar.gz
<strong>20240629-Wp-content.tar.gz</strong>
wp-content_backup.log
--------------------
Wp-content_Backup.sh &#91;????????-Wp-content.tar.gz] 
--------------------
-- You are able to select from the list above.--
--------------------

$ ./Wp-ContentRestore.sh <strong>20240629-Wp-content.tar.gz</strong>　&lt;---- ファイルを指定して再実行
--------------------
/home/hogehoge/Backup/Wp-content
20240625-Wp-content.tar.gz
20240626-Wp-content.tar.gz
20240627-Wp-content.tar.gz
20240628-Wp-content.tar.gz
20240629-Wp-content.tar.gz
wp-content_backup.log
--------------------
--------------------
/home/hogehoge/Backup/Wp-content
tar xzf 20240629-Wp-content.tar.gz  &lt;----展開、容量により時間がかかります
---- Restore --------
sudo mv /home/www/html/blog/wp-content /home/www/html/blog/wp-content-20240629
sudo mv /home/hogehoge/Backup/Wp-content /home/www/html/blog/wp-content /home/www/html/blog/wp-content
sudo chown -R apache:apache /home/www/html/blog/wp-content/
Restore completed!
--------------------</code></pre>



<h4 class="wp-block-heading"><span id="toc13">WordPress内容のバックアップスクリプト</span></h4>



<p>自分の環境に合わせて、変数を編集します。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-10381616c7ca5735ea4e52169edbf61b"><code>#!/bin/sh
#
#       WP-content_Backup.sh    2020/03
#                               2023/12
#
#--------------------------------------------
BackupToDir="/home/hogehoge/Backup/Wp-content" &lt;-- WordPressのバックアップディレクトリ
BackupSorceDir="/home/www/html/blog/wp-content"&lt;----WordPressコンテンツ本体
TidyUpScript="/home/hogehoge/bin/Tidyup_backfile.sh" &lt;---- データ整理スクリプト
DaysAgo="4"               &lt;-------- データを整理する日数
LOG="wp-content_backup.log"　&lt;------- ログファイル名
#--------- Help -----------------------------
　　・
　　・</code></pre>



<p>バックアップは引数なしで実行が始まります。<br>事前にWordPressのディレクトリを日付付きのファイルに圧縮して保存します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-e86834bd2168eacf64a6b94f83264932"><code>$ ./Wp-Content_Backup.sh
tar czf 20240629-Wp-content.tar.gz /home/www/html/blog/wp-content/  &lt;---- 事前バックアップ
rm 20240625*  &lt;--- バックアップファイル整理
rm 20240626*</code></pre>



<h3 class="wp-block-heading"><span id="toc14">バックアップ自動化</span></h3>



<p>Linux の「Crontab」コマンドで、スケジューリングする事で自動的にバックアップする事も可能になります。<br>「crontab -e」でスケジュールを編集し、「crontab -l」で確認できます。<br>また、「MAILTO=」を設定する事で、指定ユーザーに結果をメールを送信してくれます</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-e425b823b45463934e9aa8ff555f93af"><code>$ crontab -e
MAILTO=root
00 1 * * *       /home/hogehoge/bin/MariaDB_Backup.sh
30 1 * * *       /home/hogehoge/bin/Wp-Content_Backup.sh

$ crontab -l
MAILTO=root
00 1 * * *       /home/hogehoge/bin/MariaDB_Backup.sh
30 1 * * *       /home/hogehoge/bin/Wp-Content_Backup.sh
</code></pre>



<p>これで、プラグインを使用しなくても、Wordpressのバックアップが可能になりました。<br></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc15">Ubuntu24.04LTSでWordPressを構築する記事一覧</span></h2>



<div class="wp-block-columns has-watery-red-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:0px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="1024" height="773" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop.png" alt="" class="wp-image-8987" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop.png 1024w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-500x377.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-800x604.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-300x226.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-768x580.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/ubuntu24-04lts-install">インストール・SSH・ファイヤーウォール</a></p>
</div>
</div>



<div class="wp-block-columns has-watery-green-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:4px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="948" height="600" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2.png" alt="" class="wp-image-8990" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2.png 948w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-500x316.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-800x506.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-300x190.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-768x486.png 768w" sizes="(max-width: 948px) 100vw, 948px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/ubuntu24-04lts-apache2">Apache2のインストールと設定</a></p>
</div>
</div>



<div class="wp-block-columns has-watery-red-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:0px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="750" height="564" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl.png" alt="" class="wp-image-8995" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl.png 750w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl-500x376.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl-300x226.png 300w" sizes="(max-width: 750px) 100vw, 750px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/ssl-php-mariadb">SSL、PHP、MariaDB、Let’s Encrypt証明書でhttps化</a></p>
</div>
</div>



<div class="wp-block-columns has-watery-green-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:4px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="684" height="430" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress.png" alt="" class="wp-image-8999" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress.png 684w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress-500x314.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress-300x189.png 300w" sizes="(max-width: 684px) 100vw, 684px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p>WordPress インストール、バックアップと復元</p>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ubuntu24.04LTSでWorsPressを動作させる。SSL、PHP、MariaDB、Let’s Encrypt証明書でhttps化</title>
		<link>https://www.kazuban.com/blog/ssl-php-mariadb/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 29 Jun 2024 02:29:16 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux (CentOS、Rocky、Ubuntu)]]></category>
		<category><![CDATA[Let&#039;s Encrypt]]></category>
		<category><![CDATA[ubuntu24]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=8852</guid>

					<description><![CDATA[RockyLinux9の設定は、こちらで紹介しています。 目次 ファイヤーウォール設定の確認sslモジュールを有効化Certbot クライアントのインストールと証明書取得PHPのインストールインストールfpm版のphpイ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><a href="https://www.kazuban.com/blog/rokeylinux9-3-apache/#toc14">RockyLinux9の設定は、こちらで紹介しています。</a></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ファイヤーウォール設定の確認</a></li><li><a href="#toc2" tabindex="0">sslモジュールを有効化</a></li><li><a href="#toc3" tabindex="0">Certbot クライアントのインストールと証明書取得</a></li><li><a href="#toc4" tabindex="0">PHPのインストール</a><ol><li><a href="#toc5" tabindex="0">インストール</a></li><li><a href="#toc6" tabindex="0">fpm版のphpインストールと切り替え</a></li><li><a href="#toc7" tabindex="0">php-fpm設定ファイルの変更</a></li><li><a href="#toc8" tabindex="0">HTTP/2を利用する。eventMPMモジュールとhttp2モジュールを有効</a></li><li><a href="#toc9" tabindex="0">http2通信の確認</a></li><li><a href="#toc10" tabindex="0">php.iniの設定</a></li><li><a href="#toc11" tabindex="0">Webブラウザで確認</a></li></ol></li><li><a href="#toc12" tabindex="0">MariaDBのインストールと設定</a><ol><li><a href="#toc13" tabindex="0">インストール</a></li><li><a href="#toc14" tabindex="0">基本的なセキュリティ設定</a></li><li><a href="#toc15" tabindex="0">文字コードの設定</a></li></ol></li><li><a href="#toc16" tabindex="0">Ubuntu24.04LTSでWordPressを構築する記事一覧</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ファイヤーウォール設定の確認</span></h2>



<p>ここでのファイヤーウォールは、「firewalld」を使用しています。<br>今までの設定を確認してみます。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-693461398efedaede8015ecccaed4133"><code>$ firewall-cmd --get-active-zones
<strong>admin</strong>
  sources: 192.168.0.0/24
<strong>public</strong> (default)
  interfaces: wlp8s0

$ sudo firewall-cmd --list-all --zone=<strong>public</strong> | grep services
  services: dhcpv6-client http <strong>https</strong>
$ sudo firewall-cmd --list-all --zone=<strong>admin</strong> | grep services
  services: dhcpv6-client http <strong>https</strong> ssh</code></pre>



<p>「https」の許可は完了しています。</p>



<h2 class="wp-block-heading"><span id="toc2">sslモジュールを有効化</span></h2>



<p>「ubuntu」では、有効なモジュールは「/etc/apache2/mods-enabled/」にシンボリックリンクとしてファイルが存在すれば、有効になっています。<br>私の環境では、有効になっていないようですので、「a2enmod ssl」で有効にします。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-14a040610e7dfc7e2512227f317a31ee"><code>$ sudo a2enmod ssl
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
  systemctl restart apache2

$ sudo systemctl restart apache2</code></pre>



<h2 class="wp-block-heading"><span id="toc3">Certbot クライアントのインストールと証明書取得</span></h2>



<p>Let’s Encrypt から証明書を取得するには、「Certbot」を利用するので、パッケージを確認してみます。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-d99afd07f49c76e3a61e911d13c7f20c"><code>$ apt list | grep certbot
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

<strong>certbot</strong>/noble 2.9.0-1 all
　　・
　　・
<strong>python3-certbot-apache</strong>/noble 2.9.0-1 all
　　・
　　・</code></pre>



<p>パッケージの確認ができたので、インストールします</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-893d48a206f0569bdd80abe84ecce1f4"><code>$ sudo apt update
$ sudo apt upgrade
$ sudo apt install certbot
$ sudo apt install python3-certbot-apache</code></pre>



<p>インストールが完了したら、証明書をゲットします。<br>コマンドオプションは「certonly」「&#8211;webroot」で取得できますが、<br><span class="marker-under-red">対象のサーバで<strong>Webサーバーが動作</strong>しており、外部から<strong>８０番ポート</strong>へアクセスできる必要</span>があります。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-12778fc7b590a4a27905424c4c0e7eeb"><code>$ sudo certbot certonly --webroot -w /home/www/html/ -d www.hogehoge.com -d hogehoge.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): <strong>hoge@hogehoge.com</strong> &lt;------自分のEメールアドレスを入力

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https:// letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:<strong> y</strong>　&lt;----- 利用規約を読んでください

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: <strong>y</strong>  &lt;--------- 電子フロンティア財団からEメールが届いてもいいか？
Account registered.
Requesting a certificate for www.hogehoge.com and kazuban.com
Requesting a certificate for www.hogehoge.com and kazuban.com

<span class="bold-green">Successfully</span> received certificate.
Certificate is saved at:<strong> /etc/letsencrypt/live/www.hogehoge.com/fullchain.pem</strong>
Key is saved at:        <strong> /etc/letsencrypt/live/www.hogehoge.com/privkey.pem</strong>
This certificate expires on 2024-09-12.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</code></pre>



<p>Successfullyで取得できました。またコメントにより、<br>証明書ファイル：/etc/letsencrypt/live/www.hogehoge.com/fullchain.pem<br>鍵ファイル：/etc/letsencrypt/live/www.hogehoge.com/privkey.pem<br>が保存された事がわかります。<br>証明書の設定は「/etc/apache2/sites-available」の「default-ssl.conf」を編集し<br>「a2ensite default-ssl」で有効にします。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-e8ef8670b8ded0c9e4a1eab96c1ac0b6"><code>$ cd /etc/apache2/sites-available
$ sudo cp -p default-ssl.conf default-ssl.conf.org
$ sudo vi ./default-ssl.conf
&lt;VirtualHost *:443&gt;
        #ServerAdmin webmaster@localhost
        <strong>ServerAdmin root@hogehoge.com</strong>

        #DocumentRoot /var/www/html
        <strong>DocumentRoot /home/www/html</strong>
　　　　　　・
　　　　　　・
        #   A self-signed (snakeoil) certificate can be created by installing
        #   the ssl-cert package. See
        #   /usr/share/doc/apache2/README.Debian.gz for more info.
        #   If both key and certificate are stored in the same file, only the
        #   SSLCertificateFile directive is needed.
        #SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
        #SSLCertificateKeyFile   /etc/ssl/private/ssl-cert-snakeoil.key
        <strong>SSLCertificateFile  /etc/letsencrypt/live/www.hogehoge.com/fullchain.pem</strong>
        <strong>SSLCertificateKeyFile /etc/letsencrypt/live/www.hogehoge.com/privkey.pem</strong>
　　　　　　・
　　　　　　・
&lt;/VirtualHost&gt;

$ sudo a2ensite default-ssl</code></pre>



<h2 class="wp-block-heading"><span id="toc4">PHPのインストール</span></h2>



<h3 class="wp-block-heading"><span id="toc5">インストール</span></h3>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-f9a6fdce9f12c36cb831f34ba70c2dc3"><code>$ sudo apt install php
$ sudo apt install php-fpm
$ php -v
PHP 8.3.6 (cli) (built: Apr 15 2024 19:21:47) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies</code></pre>



<p><a href="https://make.wordpress.org/hosting/handbook/server-environment/#php-extensions">WordPressサイトを参考に</a>拡張モジュールをインストールします<br>パッケージ管理が違うので、すでに違うパッケージでインストール済みだったり<br>パッケージ名が見つからない場合がありましたが、とりあえず、このまま進みます</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-c7891e811f7487b04cddf06bd4ffe7f3"><code>インストール済み
$ sudo apt install php-exif
$ sudo apt install php-fileinfo
$ sudo apt install php-opcache
$ sudo apt install php-iconv
$ sudo apt install php-ftp
$ sudo apt install php-sockets
$ sudo apt install php-shmop

インストール実行
$ sudo apt install php-curl
$ sudo apt install php-dom
$ sudo apt install php-mbstring
$ sudo apt install php-xml
$ sudo apt install php-igbinary
$ sudo apt install  php-intl
$ sudo apt install php-imagick
$ sudo apt install php-zip
$ sudo apt install php-redis
$ sudo apt install php-ssh2

パッケージが見つかりません
$ sudo apt install php-hash
$ sudo apt install php-openssl
$ sudo apt install php-pcre
$ sudo apt install php-filter
$ sudo apt install php-bc
$ sudo apt install php-image

</code></pre>



<h3 class="wp-block-heading"><span id="toc6">fpm版のphpインストールと切り替え</span></h3>



<p>ApcheのMPMは、「preforkMPM」「workerMPM」「eventMPM」の３種類あるようですが<br>Apache2.4系から導入されたのが「eventMPM」で、CPUとメモリの使用量が少ないようです。<br>「centos」ではデフォルトで「eventMPM」になっていますが、「Ubuntu」は「preforkMPM」がデフォルトのようなので、下記サイトを参考に「eventMPM」に切り替えたいと思います。<br><a href="https://qiita.com/Nelson605/items/e3a8d10c1415dd0c5c0b">https://qiita.com/Nelson605/items/e3a8d10c1415dd0c5c0b</a><br><a href="https://doudonn.com/saba/2491">https://doudonn.com/saba/2491</a></p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-a5da6f71d7c6d508cf663393b22fd6b4"><code>$ sudo apt install php8.3-fpm
$ sudo a2enmod proxy_fcgi setenvif
$ sudo a2enconf php8.3-fpm
$ sudo a2dismod php8.3
$ sudo systemctl restart apache2

$ sudo a2dismod mpm_prefork
$ sudo a2enmod mpm_event
$ sudo systemctl restart apache2
$ sudo systemctl restart php8.3-fpm</code></pre>



<h3 class="wp-block-heading"><span id="toc7">php-fpm設定ファイルの変更</span></h3>



<p>php-fpmの設定は「/etc/php/8.3/fpm/pool.d/www.conf」で行います。<br>php-fpmを動作させるユーザーとグループについては、Apache側での設定に合わせる必要があります。また、listenオーナーとlistenグループも、Apacheに合わせます。<br>バックアップ後編集していきます。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-ac52eca3b2ebafb7d2827ab869f79624"><code>$ sudo cp -p www.conf www.conf.org
$ sudo vi /etc/php/8.3/fpm/pool.d/www.conf
　　・
　　・
;user = www-data
;group = www-data
<strong>user = apache
group = apache</strong>
　　・
;listen.owner = www-data
;listen.group = www-data
<strong>listen.owner = apache
listen.group = apache</strong>
　　・
　　・</code></pre>



<h3 class="wp-block-heading"><span id="toc8">HTTP/2を利用する。<br>eventMPMモジュールとhttp2モジュールを有効</span></h3>



<p>SSLサーバー証明書がとれたので、HTTP/2も利用したいと思います<br>有効なモジュールは「apachectl -M」で確認できます。<br>「mpm_event_module」は有効になっていましたが、「http2_module」はなっていなかったので有効にします。<br>「a2enmod http2」で有効にし、「apache2」を再起動後、「apachectl -M」で再確認します</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-802ef90c831721cbc82377a86303555c"><code>$ sudo a2enmod http2
$ sudo  systemctl restart apache2

$ apachectl -M | grep http2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
<strong> http2_module</strong> (shared)</code></pre>



<p>「http2」は有効になりましたが、エラーがでました。<br>「VirtualHost *:80」に設定したからいいと思っていましたが、メインにも設定した方がよさそうです<br>「/etc/apache2/apache2.conf」にも設定を追加しました<br>「apache2ctl configtest」で確認し、OKだったので、再起動するとエラーは消えました。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-778674470bc71495ca8b0376e2e786e8"><code>$ sudo vi /etc/apache2/apache2.conf
　　・
　　・
<strong>ServerName www.hogehoge.com</strong>
　　・
$ sudo apache2ctl configtest
Syntax OK
$ sudo  systemctl restart apache2
$ apachectl -M | grep http2
 http2_module (shared)</code></pre>



<h3 class="wp-block-heading"><span id="toc9">http2通信の確認</span></h3>



<p>Google Chrome での確認方法を紹介します。<br>・アドレスバーにサイトのURLを入力し表示させる。<br>・「F12」キーを押す。<br>・「Ctrl」＋「R」で再読み込み<br>・「Network」「Protocol」・「h2」で確認<br></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="400" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/http2-800x400.png" alt="" class="wp-image-8882" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/http2-800x400.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/http2-500x250.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/http2-300x150.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/http2-768x384.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/http2.png 821w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h3 class="wp-block-heading"><span id="toc10">php.iniの設定</span></h3>



<p>このサイトでも「RockyLinux9」での設定を説明していますが、同様に設定したいと思います。<br>「ubuntu」での設定は、「/etc/php/8.3/fpm/php.ini」で行います。<br>念のためバックアップを取り、編集します。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-98f06c024114fe73134a3608689ed614"><code>$ sudo cp -p /etc/php/8.3/fpm/php.ini /etc/php/8.3/fpm/php.ini.org
$ sudo vi /etc/php/8.3/fpm/php.ini

expose_php = Off

;post_max_size = 8M
post_max_size = 128M

;upload_max_filesize = 2M
upload_max_filesize = 128M

;date.timezone =
date.timezone = "Asia/Tokyo"

;mbstring.language = Japanese
mbstring.language = Japanese

;mbstring.internal_encoding =
mbstring.internal_encoding = UTF-8

;mbstring.http_input =
mbstring.http_input = UTF-8

;mbstring.http_output =
mbstring.http_output = pass

;mbstring.encoding_translation = Off
mbstring.encoding_translation = On

;mbstring.detect_order = auto
mbstring.detect_order = auto

;mbstring.substitute_character = none
mbstring.substitute_character = none

$ sudo systemctl restart php8.3-fpm
$ sudo systemctl restart apache2
$ sudo systemctl is-enabled php8.3-fpm.service 
enabled
</code></pre>



<h3 class="wp-block-heading"><span id="toc11">Webブラウザで確認</span></h3>



<p>PHP設定の情報を出力させるコマンド「phpinfo()」を実行させるファイル「index.php」を作成します</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-438a9fb94a63b9867dedeac6d5a32454"><code>$ cd /home/www/html
$ su
パスワード: 
# echo '&lt;?php phpinfo(); ?&gt;' &gt; index.php</code></pre>



<p>「index.php」ファイルが作成されたら、Webブラウザのアドレスバーから確認できます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="330" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/FPM-1-800x330.png" alt="" class="wp-image-8907" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/FPM-1-800x330.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/FPM-1-500x207.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/FPM-1-300x124.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/FPM-1-768x317.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/FPM-1.png 932w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>「index.php」は、確認が終了したら、必ず削除しましょう。</p>



<h2 class="wp-block-heading"><span id="toc12">MariaDBのインストールと設定</span></h2>



<p>「ubuntu」での「MariaDB」パッケージを確認してみます。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-ac912768c85cb3f4f5887bf4d2cdc450"><code>$ apt list mariadb*
一覧表示... 完了
　　・
　　・
mariadb-server/noble-updates,noble-security 1:10.11.8-0ubuntu0.24.04.1 amd64
　　・</code></pre>



<h3 class="wp-block-heading"><span id="toc13">インストール</span></h3>



<p>提供されているので、インストールします。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-95b9434f14555fee645369b11c68f719"><code>$ sudo apt update
$ sudo apt upgrade
$ sudo apt install mariadb-server
・

$ systemctl status mariadb　
<span class="bold-green">●</span> mariadb.service - MariaDB 10.11.8 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: enabled)
     Active: <span class="bold-green">active (running)</span> since Sat 2024-06-22 08:54:42 JST; 7min ago
$ sudo systemctl is-enabled mariadb
enabled
</code></pre>



<p>自動的に起動と自動起動設定も完了していました。</p>



<h3 class="wp-block-heading"><span id="toc14">基本的なセキュリティ設定</span></h3>



<p>「mysql_secure_installation」で設定します。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-bc7e351da655112d0277ce67094284d2"><code># mysql_secure_installation
・
Enter current password for root (enter for none): &lt;-- パスワード入力だけど
OK, successfully used password, moving on...           設定していない場合は「Enter」
・
・                                           
Switch to unix_socket authentication &#91;Y/n] <strong>n</strong> &lt;--- 「unix_socket」認証に切り替えるか？
・
・
Change the root password? &#91;Y/n] <strong>Y</strong> &lt;---- MariaDBのrootユーザに変更するか
・
New password:               &lt;---- <strong>パスワード入力</strong>
Re-enter new password:      &lt;---- <strong>パスワード入力</strong>
Password updated successfully!
・
・
By default, a MariaDB installation has an anonymous user, allowing anyone
Remove anonymous users? &#91;Y/n]<strong> Y </strong>    &lt;----- ログインできる匿名ユーザーを削除するか？
 ... Success!
・
Disallow root login remotely? &#91;Y/n]<strong> Y </strong> &lt;-- リモートからのrootログイン不許可？
 ... Success!
・
Remove test database and access to it? &#91;Y/n] <strong>Y</strong>  &lt;-- 「test」データベースの削除？
・
 ... Success!
・
Reload privilege tables now? &#91;Y/n]<strong> Y</strong>  &lt;---- 設定した特権テーブルを反映させるか？
 ... Success!
・
・
Thanks for using MariaDB!</code></pre>



<h3 class="wp-block-heading"><span id="toc15">文字コードの設定</span></h3>



<p>文字コードを「utf8mb4」に設定します。<br>「CentOS」系では「/etc/my.cnf.d/mariadb-server.cnf」を編集しましたが、<br>「ubuntu」では、このファイルは見つかりません。<br>探してみると、「server」用と「client」用の２種類で設定するようです<br>・/etc/mysql/mariadb.conf.d/50-server.cnf<br>・/etc/mysql/mariadb.conf.d/50-client.cnf<br>いつものように、バックアップして編集しますが、「50-server.cnf」はデフォルトで「utf8mb4」に設定されていたのでそのまま使用し「50-client.cnf」のみ編集します。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-2a5034a34ddd78e70b460210781e05f2"><code>$ cd /etc/mysql/mariadb.conf.d/
$ sudo cp -p 50-client.cnf 50-client.cnf.org
$ sudo vi ./50-client.cnf
　　・
　　・
&#91;client-mariadb]
# ---- 2024/06/23 add
default-character-set = utf8mb4   &lt;------- 追加
　　・
$ sudo systemctl restart mariadb
$ sudo systemctl status mariadb
</code></pre>



<p>確認してみます</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-dfb92674d0ac29ce1882b98e5cdfc663"><code>$ mysql -u root -p
Enter password:       &lt;------ root パスワード入力
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.11.8-MariaDB-0ubuntu0.24.04.1 Ubuntu 24.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB &#91;(none)]&gt; show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | <strong>utf8mb4</strong>                    |
| character_set_connection | <strong>utf8mb4</strong>                    |
| character_set_database   |<strong> utf8mb4 </strong>                   |
| character_set_filesystem | binary                     |
| character_set_results    | <strong>utf8mb4</strong>                    |
| character_set_server     | <strong>utf8mb4</strong>                    |
| character_set_system     | utf8mb3                    |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.004 sec)

MariaDB &#91;(none)]&gt; quit
Bye</code></pre>



<p>「RockyLinux9」で設定した時は、システム再起動しないと反映されませんでしたが、今回はすぐに反映されていました。<br>ここまでで、「WordPress」を動作させる環境が整いました。<br>次回、「WordPress」を動作させます。<br></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc16">Ubuntu24.04LTSでWordPressを構築する記事一覧</span></h2>



<div class="wp-block-columns has-watery-red-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:0px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="1024" height="773" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop.png" alt="" class="wp-image-8987" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop.png 1024w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-500x377.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-800x604.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-300x226.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-768x580.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/ubuntu24-04lts-install">インストール・SSH・ファイヤーウォール</a></p>
</div>
</div>



<div class="wp-block-columns has-watery-green-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:4px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="948" height="600" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2.png" alt="" class="wp-image-8990" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2.png 948w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-500x316.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-800x506.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-300x190.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-768x486.png 768w" sizes="(max-width: 948px) 100vw, 948px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/ubuntu24-04lts-apache2">Apache2のインストールと設定</a></p>
</div>
</div>



<div class="wp-block-columns has-watery-red-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:0px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="750" height="564" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl.png" alt="" class="wp-image-8995" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl.png 750w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl-500x376.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl-300x226.png 300w" sizes="(max-width: 750px) 100vw, 750px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p>SSL、PHP、MariaDB、Let’s Encrypt証明書でhttps化</p>
</div>
</div>



<div class="wp-block-columns has-watery-green-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:4px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="684" height="430" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress.png" alt="" class="wp-image-8999" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress.png 684w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress-500x314.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress-300x189.png 300w" sizes="(max-width: 684px) 100vw, 684px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/wordpewss-ubuntu">WordPress インストール、バックアップと復元</a></p>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ubuntu24.04LTSでWorsPressを動作させる。Apache2のインストールと設定</title>
		<link>https://www.kazuban.com/blog/ubuntu24-04lts-apache2/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 29 Jun 2024 01:48:19 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux (CentOS、Rocky、Ubuntu)]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ubuntu24]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=8778</guid>

					<description><![CDATA[「centos」と「ubuntu」は「RedHat系」と「Debian系」で派生元のディストリビューションが違うため同じLinuxの一種であっても、相違点は多いです。特に、操作してみて「Apache」の動作コマンドや設定 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>「centos」と「ubuntu」は「RedHat系」と「Debian系」で派生元のディストリビューションが違うため同じLinuxの一種であっても、相違点は多いです。<br>特に、操作してみて「Apache」の動作コマンドや設定ファイルの場所やファイル構成もかなり違っています。</p>



<p>「ubuntu」のapache は「apache2」パッケージで提供されているようですが、名前の違いだけではなく、設定作法が「centos」はかなり違っています。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Apache2インストール</a></li><li><a href="#toc2" tabindex="0">firewalld に許可</a></li><li><a href="#toc3" tabindex="0">apache2 設定作法</a></li><li><a href="#toc4" tabindex="0">apache2 のディレクトリ設定変更</a></li><li><a href="#toc5" tabindex="0">apache2 が作業するユーザーとグループの変更</a></li><li><a href="#toc6" tabindex="0">ドキュメントルートディレクトリの作成</a></li><li><a href="#toc7" tabindex="0">セキュリティ対策</a><ol><li><a href="#toc8" tabindex="0">ICONページ一覧が表示されないようにする</a></li><li><a href="#toc9" tabindex="0">Apacheバージョン情報を隠す</a></li><li><a href="#toc10" tabindex="0">X-Frame-Optionsヘッダ設定</a></li><li><a href="#toc11" tabindex="0">ドキュメントルートにindex.htmlを作成</a></li><li><a href="#toc12" tabindex="0">CGIスクリプトを利用する</a></li></ol></li><li><a href="#toc13" tabindex="0">apache2設定終了</a></li><li><a href="#toc14" tabindex="0">Ubuntu24.04LTSでWordPressを構築する記事一覧</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Apache2インストール</span></h2>



<p>「RockyLinux9」へのインストールは、<a href="https://www.kazuban.com/blog/rokeylinux9-3-apache/">こちらで紹介しています</a>　ので参考にしてください。<br>「ubuntu」は「apt install apache2」でインストールします</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-c5053c460f344e51662b1bd9f52e7d61"><code>$ sudo apt update
$ sudo apt upgrade
$ sudo apt install apache2</code></pre>



<p>「ubuntu」は、「apt」でインストールすると、自動的に起動設定が終了しているようですね。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-fa543d79d8634630e066f3c6fdbde6c6"><code>$ systemctl status  apache2
<span class="bold-green">●</span> apache2.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/apache2.service; <span class="bold-green">enabled</span>; preset: <span class="bold-green">enabled</span>)
     Active: active (running) since Sat 2024-06-20 11:03:54 JST; 9min ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 73404 (apache2)
      Tasks: 55 (limit: 9342)
     Memory: 5.6M (peak: 6.8M)
        CPU: 108ms
     CGroup: /system.slice/apache2.service
             ├─73404 /usr/sbin/apache2 -k start
             ├─73406 /usr/sbin/apache2 -k start
             └─73407 /usr/sbin/apache2 -k start
$ systemctl is-enabled apache2
enabled</code></pre>



<h2 class="wp-block-heading"><span id="toc2">firewalld に許可</span></h2>



<p>前回、ファイヤーウォールは、「firewalld」に切り替えたので「apach2」にも、<a href="https://www.kazuban.com/blog/rokeylinux9-3-apache/#toc4">こちらを参考に</a>、http と https を許可しておきます。<br>これで、Webブラウザのアドレスバーに、IPアドレスを打ち込むとデフォルトページが表示されるはずです。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="717" height="640" src="https://www.kazuban.com/blog/wp-content/uploads/2024/05/apache2-default-page.png" alt="" class="wp-image-8785" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/05/apache2-default-page.png 717w, https://www.kazuban.com/blog/wp-content/uploads/2024/05/apache2-default-page-500x446.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/05/apache2-default-page-300x268.png 300w" sizes="(max-width: 717px) 100vw, 717px" /></figure>



<h2 class="wp-block-heading"><span id="toc3">apache2 設定作法</span></h2>



<p>「ubuntu」では、「ＣentOS系」とは設定作法がかなり違うようです。<br>インストール直後の「apach2設定ディレクトリ」を確認してみると</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-a16da32b670e4773ebb71f2997f38118"><code>/etc/apache2/
├── apache2.conf
├── conf-available
│&nbsp;&nbsp; ├── charset.conf
│&nbsp;&nbsp; ├── ・
├── conf-enabled
│&nbsp;&nbsp; ├── charset.conf -&gt; ../conf-available/charset.conf
│&nbsp;&nbsp; ├── ・
├── envvars
├── magic
├── mods-available
│&nbsp;&nbsp; ├── access_compat.load
│&nbsp;&nbsp; ├── ・
├── mods-enabled
│&nbsp;&nbsp; ├── access_compat.load -&gt; ../mods-available/access_compat.load
│&nbsp;&nbsp; ├── ・
├── ports.conf
├── sites-available
│&nbsp;&nbsp; ├── 000-default.conf
│&nbsp;&nbsp; └── default-ssl.conf
└── sites-enabled
    └── 000-default.conf -&gt; ../sites-available/000-default.conf</code></pre>



<p>途中、省略していますが「/etc/apache2」直下には<br>「apache2.conf」「magic」「envvars」「ports.conf」のファイルがあり<br>さらに「conf-*」「mods-*」「sites-*」で、<br>それぞれ「<strong>available</strong>」「<strong>enabled</strong>」が付いた名前のディレクトリがあります。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<ul class="wp-block-list">
<li>apache2.conf
<ul class="wp-block-list">
<li>httpd.conf と同じで、Apacheサーバーのメイン設定ファイル</li>



<li>他の構成ファイルや「enabled」ディレクトリ内のファイルを組み込む</li>
</ul>
</li>



<li>ports.conf
<ul class="wp-block-list">
<li>リスニングポートの設定ファイル。メイン設定ファイルに組み込まれる</li>
</ul>
</li>



<li>envvars
<ul class="wp-block-list">
<li>環境変数の設定ファイル</li>
</ul>
</li>



<li>magic
<ul class="wp-block-list">
<li>MIME タイプ</li>
</ul>
</li>



<li>conf-*
<ul class="wp-block-list">
<li>バーチャルホストに属さない、利用可能な設定ファイルが保存される。</li>



<li>RedHat系の/etc/httpd/conf.d 内のファイルはここへ保存する。</li>
</ul>
</li>



<li>mods-*
<ul class="wp-block-list">
<li>モジュール構成ファイルが保存される。</li>
</ul>
</li>



<li>sites-*
<ul class="wp-block-list">
<li>バーチャルホストの設定ファイルが保存される</li>
</ul>
</li>
</ul>
</div>



<p>独特なのは、「<strong>*-available</strong>」と「<strong>*-enabled</strong>」のディレクトリです。<br>基本的には、<span class="marker-under-red">「<strong>*-enabled</strong>」内のファイルだけが組み込まれます</span>が、「<strong>*-enabled</strong>」内のファイルは、<span class="marker-under">「<strong>*-available</strong>」内のファイルのシンボリックリンク</span>になっています。<br>作法としては、「<strong>*-available</strong>」内に、設定ファイルを保存し、必要なファイルのみ「<strong>*-enabled</strong>」にシンボリックリンクを作成する方法です。<br>シンボリックリンク作成と削除は、専用コマンドが用意されています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>「<strong>conf-*</strong>」用は「<strong>a2enconf</strong>」で作成。「<strong>a2disconf</strong>」で削除<br>「<strong>mods-*</strong>」用は「<strong>a2enmod</strong>」で作成。「<strong>a2dismod</strong>」で削除<br>「<strong>sites-*</strong>」用は、「<strong>a2ensite</strong>」で作成。「<strong>a2dissite</strong>」で削除</p>
</blockquote>



<h2 class="wp-block-heading"><span id="toc4">apache2 のディレクトリ設定変更</span></h2>



<p>筆者は、<a href="https://www.kazuban.com/blog/rokeylinux9-3-apache/#toc6">RockyLinux9 の設定</a>と同様の設定にします。<br>まずは、「<strong>apache2.conf</strong>」の、&lt;Directory&gt;のデフォルト設定はコメントとし<br>Rockyと同様にしました。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-b6c6ad31348a65094abe4e71e0f04d64"><code>・
・
&lt;Directory /&gt;
    AllowOverride none
    Require all denied
&lt;/Directory&gt;

&lt;Directory "<strong>/home/www</strong>"&gt;
    AllowOverride None
    # Allow open access:
    Require all granted
&lt;/Directory&gt;

&lt;Directory "<strong>/home/www/htm</strong>l"&gt;
    Options FollowSymLinks
    AllowOverride None
    Require all granted
&lt;/Directory&gt;
・
・</code></pre>



<p><br><strong>ホスト名関連</strong>は、「<strong>sites-enabled</strong>」内の「<strong>000-default.conf</strong>」で設定します。<br>上述したように、<span class="marker-under">「<strong>*-enables</strong>」は「<strong>*-available</strong>」のシンボリックリンク</span>が入っているので<span class="marker-under">どちらのファイルを編集しても同じ</span>です<br><span style="font-size: revert; font-family: var(--cocoon-default-font);">ただし、</span><span class="marker-under-red"><span style="font-size: revert; font-family: var(--cocoon-default-font);">バックアップを残す場合には</span>「<strong>*-available</strong>」のファイルをバックアップ</span>します。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-494667b308831ca96041163acf20b8e1"><code>$ cd /etc/apache2/sites-<span class="bold">available/</span>
$ sudo cp -p 000-default.conf 000-default.conf.org
$ cd /etc/apache2/sites-available/
$ sudo vi ./000-default.conf
・
・
#ServerName www.example.com
　　　↓
ServerName www.hogehoge.com
・
・
ServerAdmin webmaster@localhost
　　　↓
ServerAdmin root@hogehoge.com
・
・
DocumentRoot /var/www/html
　　　↓
DocumentRoot /home/www/html
・</code></pre>



<h2 class="wp-block-heading"><span id="toc5">apache2 が作業するユーザーとグループの変更</span></h2>



<p>apache2が処理を要求する時のユーザーとグループを設定します<br>まずは、メインの設定ファイル、「/etc/apache2/apache2.conf」を覗いてみます。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-78da7915f5b166ffc3796d23799d6f7b"><code>$ vi /etc/apache2/apache2.conf
・
・
# These need to be set in /etc/apache2/envvars
<strong>User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}</strong>
・
・</code></pre>



<p>設定ファイルにあるように、<br><strong>${APACHE_RUN_USER}</strong><br><strong>${APACHE_RUN_GROUP}</strong><br>この二つの環境変数で設定されていて、この環境変数は、変数上記のコメントにあるように「<strong>/etc/apache2/envvars</strong>」で設定されています。<br>「ubintu」はデフォルトでは「<strong>www-data</strong>」になっていますが、私は「centos」にあわせて「<strong>apache</strong>」に変更しようと思います。<br>バックアップを取り、変更します。<br>続けて、<span class="marker-under-red">「apache」ユーザーを作成し、ホームディレクトリを「/home/www」とします。</span></p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-184d625e5eb5dc1df4b54ef67f783fd3"><code># Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
　　↓
export APACHE_RUN_USER=<strong>apache</strong>
export APACHE_RUN_GROUP=<strong>apache</strong>
　　・
　　・

$ sudo useradd -d /home/www -s /sbin/nologin apache
</code></pre>



<h2 class="wp-block-heading"><span id="toc6">ドキュメントルートディレクトリの作成</span></h2>



<p>Webに公開するコンテンツ格納ディレクトリを設定変更したので、<br>実際にそのディレクトリを作成します。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-5a38e7301a807a48887faacadf019e91"><code># mkdir /home/www
# mkdir /home/www/html
# chown apache:apache /home/www/html/
# ls -la /home/www

# systemctl restart apache2</code></pre>



<h2 class="wp-block-heading"><span id="toc7">セキュリティ対策</span></h2>



<h3 class="wp-block-heading"><span id="toc8">ICONページ一覧が表示されないようにする</span></h3>



<p>ICONページ一覧の設定は、<strong>/etc/apache2/mods-enabled/alias.conf</strong>で行います。<br>設定ファイルを開いてみます。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-2d8931a3b3ab83f35969313fe0c15364"><code>$ vi /etc/apache2/mods-enabled/alias.conf
　　・
　　・
# We include the /icons/ alias for FancyIndexed directory listings.  If
# you do not use FancyIndexing, you may comment this out.

Alias /icons/ "/usr/share/apache2/icons/"

&lt;Directory "/usr/share/apache2/icons"&gt;
        Options FollowSymlinks
        AllowOverride None
        Require all granted
&lt;/Directory&gt;</code></pre>



<p>「ubuntu」では、「<strong>/etc/apache2/conf-enabled</strong>」のファイルをメイン設定として読み込みます。<br>ただし「<strong>conf-enabled</strong>」内のファイルは、「<strong>conf-available</strong>」内のファイルの<span class="marker-under">シンボリックリンク</span>になっているので、ファイルの<span class="marker-under-red">バックアップを取る場合には<br>「<strong>/etc/apache2/conf-available/</strong>」内のファイルをバックアップをとり編集します。</span></p>



<p>「icons」ディレクトリの設定では「Options Indexes」がないので、一覧が表示される事はないと思いますが、その下のファイルをWebブラウザで指定すると表示されます。<br>特に必要ないので全てコメントにしようと思います。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-ef851a91dca7348444d5da6ca6440a22"><code>$ cd /etc/apache2/mods-available
$ sudo cp -p alias.conf alias.conf.org
$ sudo vi alias.conf
　・
#Alias /icons/ "/usr/share/apache2/icons/"

#&lt;Directory "/usr/share/apache2/icons"&gt;
#        Options FollowSymlinks
#        AllowOverride None
#        Require all granted
#&lt;/Directory&gt;
　・
$ sudo systemctl restart apache2</code></pre>



<h3 class="wp-block-heading"><span id="toc9">Apacheバージョン情報を隠す</span></h3>



<p><a href="https://www.kazuban.com/blog/rokeylinux9-3-apache/#toc11">こちらと同様に</a>、バージョン情報とOSの情報を隠します。<br>「telnet」で確認します。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-cd774acf7726253b5af9d0798a6dae56"><code>$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
<strong>OPTIONS / HTTP/1.1</strong>        &lt;-------入力
<strong>host:localhost </strong>           &lt;-------入力
                          &lt;-------「Ebter」キー
HTTP/1.1 200 OK
Date: Sun, 23 Jun 2024 09:16:28 GMT
Server:<strong> Apache/2.4.58 (Ubuntu)</strong> &lt;---- Apacheバージョン情報
Allow: GET,POST,OPTIONS,HEAD
Content-Length: 0
Content-Type: text/html

Connection closed by foreign host.</code></pre>



<p>「/etc/apache2/conf-<strong>enabled</strong>」の「security.conf」で行いますが、上記と同様に<br>「/etc/apache2/conf-<strong>available</strong>/security.conf」のバックアップをとり編集します。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-06de9bddb5f5f9ff8c94abc8d006c69a"><code>$ cd /etc/apache2/conf-available
$ sudo cp -p security.conf security.conf.org
$ sudo vi ./security.conf

#ServerTokens Minimal
ServerTokens OS
#ServerTokens Full
　　↓
#ServerTokens Minimal
<strong>#</strong>ServerTokens OS
#ServerTokens Full
ServerTokens <strong>ProductOnly</strong>

<strong>#</strong>ServerSignature Off
ServerSignature <strong>On</strong>
　　↓
ServerSignature <strong>Off</strong>
<strong>#</strong>ServerSignature On

$ sudo systemctl restart apache2 
</code></pre>



<p>telnetで再確認</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-bb63c7528fea204145b8dd87b411a8b5"><code>$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
<strong>OPTIONS / HTTP/1.1</strong>        &lt;-------入力
<strong>host:localhost</strong>            &lt;-------入力
                          &lt;-------「Ebter」キー
HTTP/1.1 200 OK
Date: Sun, 23 Jun 2024 09:18:18 GMT
Server: <strong>Apache</strong> 　　&lt;---- Apacheバージョン情報は消えた
Allow: GET,POST,OPTIONS,HEAD
Content-Length: 0
Content-Type: text/html

Connection closed by foreign host.</code></pre>



<h3 class="wp-block-heading"><span id="toc10">X-Frame-Optionsヘッダ設定</span></h3>



<p><a href="https://licensecounter.jp/symantec/blog/detail28/#cnt3">クリックジャッキングを防ぐための対策に有効</a>だと言う事なので、<br>X-Frame-Optionsヘッダ設定をしておこうと思います。<br>「mod_headers」機能が有効になっているかの確認をします。<br>有効なモジュール構成は、「<strong>/etc/apache2/mods-enabled</strong>」に登録されているはずですが、なさそうです。<br>「<strong>*-enabled</strong>」はシンボリックが登録されているだけなので、「<strong>*-available</strong>」内を調べてみます。<br>「<strong>/etc/apache2/mods-available</strong>」に「<strong>headers.load</strong>」が保存されていたので、有効にすることで使用できるようになりますが、設定ファイルも必要です。<br><span class="marker-under-red">X-FRAME-OPTIONSオプションを追加する設定ファイル「<strong>headers.conf</strong>」を作成します。</span><br>次にこのファイルのシンボリックリンクを「*-enabled」に作成しますが、作成するには、「<strong>a2enmod</strong>」コマンドでおこないます。<br>リンクが作成できたら、「telnet」で確認してみます。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-aa5618a3600cfd785620b34278341bb3"><code>$ cd /etc/apache2/mods-available
$ sudo vi headers.conf
　　・
#--- 2024.06.23 hogehoge
Header append X-FRAME-OPTIONS "SAMEORIGIN"
　　・

$ sudo <strong>a2enmod</strong> headers
Enabling module headers.
To activate the new configuration, you need to run:
  systemctl restart apache2

$ sudo systemctl restart apache2
$ telnet localhost 80　　　&lt;---- telnetで確認
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
<strong>OPTIONS / HTTP/1.1</strong>        &lt;-------入力
<strong>host:localhost</strong>            &lt;-------入力
                          &lt;-------「Ebter」キー
HTTP/1.1 200 OK
Date: Sun, 23 Jun 2024 09:23:57 GMT
Server: Apache
Allow: GET,POST,OPTIONS,HEAD
<strong>X-FRAME-OPTIONS: SAMEORIGIN</strong>    &lt;---- 有効確認
Content-Length: 0
Content-Type: text/html

Connection closed by foreign host.
</code></pre>



<h3 class="wp-block-heading"><span id="toc11">ドキュメントルートにindex.htmlを作成</span></h3>



<p>デフォルトのトップページ「index.html」を作成しておきます。<br>保存後、ファイルの所有者を「Apache」のユーザー「apache」に変更し再起動しておきます。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-b78413d79599a5fdfbd04c6f5ae8c632"><code>$ cd /home/www/html/
# vi ./index.html 
・
&lt;html&gt;
  &lt;body&gt;
    &lt;h1&gt;This website is currently under maintenance.&lt;/h1&gt;
  &lt;/body&gt;
&lt;/html&gt;
・
# chown -R apache:apache /home/www/html/
# systemctl restart apache2</code></pre>



<h3 class="wp-block-heading"><span id="toc12">CGIスクリプトを利用する</span></h3>



<p>もし必要であえば、CGIスクリプトを利用できるようにしておきます<br>「a2enmod cgid」で、「cgid」モジュールを有効にし「serve-cgi-bin.conf」に動作させたいCGIスクリプトを登録するディレクトリの設定を行い、そのディレクトリがなければ作成します。<br>「AddHandler cgi-script .cgi」では、「.cgi」拡張子のみCGIスクリプトとして使用できます</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-ac34e58e7c184851dbd6d40451a3629c"><code>$ sudo a2enmod cgid
Enabling module cgid.
To activate the new configuration, you need to run:
  systemctl restart apache2

$ cd conf-available/
$ sudo cp -p serve-cgi-bin.conf serve-cgi-bin.conf.org
$ sudo vi ./serve-cgi-bin.conf

&lt;IfModule mod_alias.c&gt;
        &lt;IfModule mod_cgi.c&gt;
                Define ENABLE_USR_LIB_CGI_BIN
        &lt;/IfModule&gt;

        &lt;IfModule mod_cgid.c&gt;
                Define ENABLE_USR_LIB_CGI_BIN
        &lt;/IfModule&gt;

        &lt;IfDefine ENABLE_USR_LIB_CGI_BIN&gt;
                #AddHandler cgi-script .cgi
                &lt;Directory /home/www/html/script&gt;
                        AllowOverride None
                        Options ExecCGI FollowSymLinks
                        Order allow,deny
                        Allow from all
                        AddHandler cgi-script .cgi
                &lt;/Directory&gt;
        &lt;/IfDefine&gt;
&lt;/IfModule&gt;

$ sudo mkdir /home/www/html/script
$ sudo systemctl restart apache2

</code></pre>



<h2 class="wp-block-heading"><span id="toc13">apache2設定終了</span></h2>



<p>「apache」の設定は、「RHEL系」とはかなり違っていて、結構時間がかかりました。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc14">Ubuntu24.04LTSでWordPressを構築する記事一覧</span></h2>



<div class="wp-block-columns has-watery-red-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:0px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="1024" height="773" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop.png" alt="" class="wp-image-8987" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop.png 1024w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-500x377.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-800x604.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-300x226.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-768x580.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/ubuntu24-04lts-install">インストール・SSH・ファイヤーウォール</a></p>
</div>
</div>



<div class="wp-block-columns has-watery-green-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:4px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="948" height="600" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2.png" alt="" class="wp-image-8990" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2.png 948w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-500x316.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-800x506.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-300x190.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-768x486.png 768w" sizes="(max-width: 948px) 100vw, 948px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p>Apache2のインストールと設定</p>
</div>
</div>



<div class="wp-block-columns has-watery-red-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:0px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="750" height="564" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl.png" alt="" class="wp-image-8995" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl.png 750w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl-500x376.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl-300x226.png 300w" sizes="(max-width: 750px) 100vw, 750px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/ssl-php-mariadb">SSL、PHP、MariaDB、Let’s Encrypt証明書でhttps化</a></p>
</div>
</div>



<div class="wp-block-columns has-watery-green-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:4px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="684" height="430" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress.png" alt="" class="wp-image-8999" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress.png 684w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress-500x314.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress-300x189.png 300w" sizes="(max-width: 684px) 100vw, 684px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/wordpewss-ubuntu">WordPress インストール、バックアップと復元</a></p>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ubuntu24.04LTSでWorrPressを動作させる。インストール・SSH・ファイヤーウォール</title>
		<link>https://www.kazuban.com/blog/ubuntu24-04lts-install/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 29 Jun 2024 00:49:36 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux (CentOS、Rocky、Ubuntu)]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu24]]></category>
		<category><![CDATA[インストール]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=8721</guid>

					<description><![CDATA[10年以上前の、マウス製ノートPC。CentOS系の練習用に使用していましたが、今回は「ubuntu」をインストールして、「RockyLinux9」と同仕様のWordPressを動作させてみます。 目次 ubuntu24 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>10年以上前の、マウス製ノートPC。<br>CentOS系の練習用に使用していましたが、今回は「ubuntu」をインストールして、<a href="https://www.kazuban.com/blog/rockylinux9-3-install/">「RockyLinux9」と同仕様</a>のWordPressを動作させてみます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ubuntu24.04 インストール</a><ol><li><a href="#toc2" tabindex="0">自動パーティションで立ち上がらない</a></li></ol></li><li><a href="#toc3" tabindex="0">Ubuntuと、CentOS 、かなりの違います</a><ol><li><a href="#toc4" tabindex="0">rootパスワード</a></li><li><a href="#toc5" tabindex="0">特定のユーザーにsudo 権限を設定</a></li><li><a href="#toc6" tabindex="0">ssh</a></li><li><a href="#toc7" tabindex="0">時計同期</a></li><li><a href="#toc8" tabindex="0">ファイヤーウォール</a></li></ol></li><li><a href="#toc9" tabindex="0">Ubuntu24.04LTSでWordPressを構築する記事一覧</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ubuntu24.04 インストール</span></h2>



<p><a href="https://jp.ubuntu.com/download">こちらから</a>、Ubuntu Desktop 24.04 LTS　のディスクイメージを入手します。<br>インストールメディアはUSBメモリで作成しました。</p>



<h3 class="wp-block-heading"><span id="toc2">自動パーティションで立ち上がらない</span></h3>



<p>インストール領域は、自動パーティションを選択し、問題なくインストールは完了しましたが、<br>再起動後、立ち上がりません。<br>ブートローダが起動しない感じです。<br>ハードウェアの不良も疑い、試しに手持ちのRHEL系「Rocky-8.x86_minimal.iso」を上書きインストールしてみましたが、問題なく起動しました。<br><span class="marker-under">ハードの不良ではなさそう！</span>なので、自動パーティショニングがうまくいってない感じです。<br>再度、「Ubuntu24.04」をインストールを試みます。<br>正常に起動した「Rocky9」では、/dev/sda1の1G領域に「/boot」、/dev/sda2に残り領域と設定されていたので、再インストールでも、自動を使わず<strong><span class="marker-under-red">手動パーティショニング</span></strong>で/dev/sda1を「/boot」に、/dev/sda2を「/」のマウントポイントの設定で再インストールしたところ無事に起動できました。<br>ブートローダが書き込まれる「/boot」のファイルシステムがなにか悪さしていたような気がしますが、よくわかりません。<br>「RHEL」を自動パーティションさせた状態に、「ubuntu」を自動パーティションでインストールするとうまくいかない感じですが、とりあえず、起動したので、良しとしましょう！</p>



<h2 class="wp-block-heading"><span id="toc3">Ubuntuと、CentOS 、かなりの違います</span></h2>



<p>もとは同じ「linux」ですが、ＲedHat系とDebian系では、いろいろ違うみたいですね。<br>かなり戸惑ってしまいました。</p>



<h3 class="wp-block-heading"><span id="toc4">rootパスワード</span></h3>



<p>「ubuntu」では、インストール時に、<span class="marker-under-red">「root」パスワードを設定する項目がありません。</span><br>基本的に「su」で「root」になって作業しない！がコンセプトなのでしょうか？<br>だた、「su」になったほうが楽な場合もあるので、「rootパスワード」を設定しておきます。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-0cd395acf90bf7aa4769933abb7ec4cb"><code>$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully</code></pre>



<h3 class="wp-block-heading"><span id="toc5">特定のユーザーにsudo 権限を設定</span></h3>



<p>ユーザーの実行制限を記述してあるudoersファイルを編集し「sudo」でパスワードなしで実行できるように設定しておきます。<br>このファイルを編集するには、安全に編集するコマンド「<strong>visudo</strong>」で行います。<br>コマンド名は、「CentOS」と同じですが、若干の違いがありました。<br>「visudo」は「centos」では、純粋な「viエディタ」と同じ操作でしたが、<span class="marker-under">「ubuntu」では、一般的なエディタに近い操作感</span>だったので、戸惑いました。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-05ce6eac5e7c92fd22b393c1eda56331"><code>$ sudo visudo
・
・
# Allow members of group sudo to execute any command
%<strong>sudo</strong>   ALL=(ALL:ALL) ALL
・
## Same thing without a password
%<strong>sudo</strong>  ALL=(ALL)       NOPASSWD: ALL
・
・
</code></pre>



<p>この設定で、「特定グループ」に属するユーザーに、全てのコマンド実行の許可が、パスワードなしで与えられます。<br>「ubuntu」では「<span class="marker-under-red">sudoグループ</span>」が「特定グループ」になりますので、ユーザーを「sudol」グループに追加します。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-6f4c92cc37d850d3380cd97a514545c3"><code>$ sodo usermod -aG sudo $USER
$ newgrp docker</code></pre>



<h3 class="wp-block-heading"><span id="toc6">ssh</span></h3>



<p>「ubuntu24.04 LTS」は標準で「ssh」はインストールされているみたいですが、他のPCからは接続できません。<br>とりあえず、インストール状態を調べてみます。<br>「centos」 では、パッケージ管理ソフトは「dnf」なので「<strong>dnf list &#8211;installed | grep openssh</strong>」で調べられます。<br>ubuntu のパッケージ管理ソフトは「apt」ですが、オプションはほぼ同じようなので、<br>「<strong>apt list &#8211;installed | grep openssh</strong>」で調べられそうですが「WARNING:・・・」が出力されました。<br>調べてみると、下記サイトが参考になります。<br><a href="https://qiita.com/taro-hida/items/666c1b1cdc851b038215">https://qiita.com/taro-hida/items/666c1b1cdc851b038215</a><br>現状では、「WARNING」がでるだけで、検索結果は表示してくれますが、インストール済みパッケージを調べるには「<strong><span class="marker-under">dpkg -l</span></strong>」でも調べられ、こちらであれば、パイプ処理でも「WARNING」はでません。<br>いずれかで調べると「openssh-client」はインストールされていましたが、「<span class="marker-under-red">openssh-server」がインストールされていません</span>でしたので、インストールし、再起動時にも「ON」にする設定します。<br>ただ、「ubuntu」は、インストールすると自動的に起動と再起動時の設定も完了しているようです。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-41cdd26fc6d4b74289be32133220fe5a"><code>sudo apt install openssh-server
sudo systemctl enable ssh
systemctl is-enabled ssh</code></pre>



<p>さらに、「鍵認証方式で運用」「リモートからのRootログイン拒否」「sshのポート番号変更」の設定をします。<br>このサイトでも、RockyLinuxで設定方法を紹介していますので、参考にしてみてください。<br><a href="https://www.kazuban.com/blog/rockylinux9-3-ssh/#toc6">https://www.kazuban.com/blog/rockylinux9-3-ssh/#toc6</a><br><a href="https://www.kazuban.com/blog/rockylinux9-3-ssh/#toc9">https://www.kazuban.com/blog/rockylinux9-3-ssh/#toc9</a><br><a href="https://www.kazuban.com/blog/rockylinux9-3-ssh/#toc11">https://www.kazuban.com/blog/rockylinux9-3-ssh/#toc11</a></p>



<p>設定が終了したら、sshを再ロードしますが、サービス名が「centos」とは違うみたいで注意が必要です。<br><span class="marker-under-red">「<strong>sshd</strong>.service」ではなく「<strong>ssh</strong>.service」</span>のようです。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-b2acd7dd54acd02ceea8a83ae5eafe7c"><code>$ sudo systemctl reload <strong>sshd.service</strong>
Failed to reload sshd.service: Unit sshd.service not found.
・
・not found でエラーになりました
・
$ sudo systemctl reload <strong>ssh.service</strong>
・・・ssh.service なら、エラーになりませんでした</code></pre>



<p>ところが、ポート番号などの変更が反映されていません。<br>ネット探索しましたが、わかりませんでしたが、<span class="marker-under-red">再起動「<strong>reboot</strong>」したところ反映されました</span>。<br>また、後ほど気が付きましたが、いつの間にか、「sshd.service」名も「ssh.service」のシンボリックリンクとして作成されていて、「<span class="marker-under-blue">sshd.service」でも動作可能になっていました。</span></p>



<h3 class="wp-block-heading"><span id="toc7">時計同期</span></h3>



<p>centosでは、「chronydサービス」が動作していましたが、「ubuntu」では動いていません。<br>「ubuntu24.04 LTS」では、「<strong>systemd-timesyncd</strong>」を使うようです。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-8a82b9dd2a04c4cd80ef331286868a5f"><code># sudo systemctl status chronyd
Unit chronyd.service could not be found.
・
・
sudo systemctl status systemd-timesyncd
<span class="bold-green">●</span> systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; <span class="bold-green">enabled</span>; preset: <span class="bold-green">enabled</span>)
     Active: <span class="bold-green">active (running)</span> since Sat 2024-05-01 10:38:06 JST; 12s ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 35255 (systemd-timesyn)
     Status: "Contacted time server &#91;2001:df0:232:eea0::fff4]:123 (ntp.nict.jp)."
      Tasks: 2 (limit: 9342)
     Memory: 1.4M (peak: 1.9M)
        CPU: 59ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─35255 /usr/lib/systemd/systemd-timesyncd</code></pre>



<p>またNTPサーバーは、デフォルトで「ntp.ubuntu.com」が設定されているようです。<br>このままでも、問題ないと思いますが、国内の「ntp.nict.jp」に設定します。<br>「sudo vi /etc/systemd/timesyncd.conf」の最終行に<br>「NTP=ntp.nict.jp」<br>を追加しました。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-162712133e73d20857976641377e9018"><code>$ sudo vi /etc/systemd/timesyncd.conf
・
・
&#91;Time]
#NTP=
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
#ConnectionRetrySec=30
#SaveIntervalSec=60
<strong>NTP=ntp.nict.jp</strong>
・
・
$ systemctl status systemd-timesyncd</code></pre>



<h3 class="wp-block-heading"><span id="toc8">ファイヤーウォール</span></h3>



<p>RockyLinux9では、firewalld が一般的ですが、ubuntuでは、「ufw」ツールがデフォルトでインストールされていて、すでに、自動起動していました。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-2acc875b856fe18432377b72e6b0bbe4"><code>$ systemctl status ufw.service
<span class="bold-green">●</span> ufw.service - Uncomplicated firewall
     Loaded: loaded (/usr/lib/systemd/system/ufw.service; enabled; preset: enabled)
     Active: <span class="bold-green">active</span> <span class="bold-green">(exited) </span>since Wed 2024-05-01 20:04:54 JST; 1 day 19h ago
       Docs: man:ufw(8)
   Main PID: 800 (code=exited, status=0/SUCCESS)
        CPU: 7ms</code></pre>



<p>筆者は、centosサーバーで「<strong>firewalld</strong>」を利用していので、「ubuntu」にもパッケージがあれば<br>そちらを利用しようと思います。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-5869ac32e2fb2f447994cec8de955490"><code>$ apt list firewalld
一覧表示... 完了
<strong>firewalld/noble,now 2.1.1-1 all</strong></code></pre>



<p>パッケージがありましたので、「ufw」は停止して、「firewalld」をインストールします。</p>



<pre class="wp-block-code has-ex-a-color has-black-background-color has-text-color has-background has-link-color wp-elements-7de3a0fd4412a4aba13709b6b2bf9c63"><code>$ sudo systemctl <strong>stop </strong>ufw
$ sudo systemctl <strong>disable</strong> ufw
$ sudo systemctl status ufw
<span class="bold-red">○</span> ufw.service - Uncomplicated firewall
     Loaded: loaded (/usr/lib/systemd/system/ufw.service; disabled; preset: enabled)
     Active: <span class="bold-red">inactive (dead)</span>
       Docs: man:ufw(8)

$ systemctl is-enabled ufw
disabled

$ sudo apt <strong>install firewalld</strong></code></pre>



<p>「firewalld」は、インストールできました。<br>設定は、以前記事にした、centosでの設定と同様に設定しました。<br>詳細は、下記を参照しいてください。</p>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">

<a href="https://www.kazuban.com/blog/rockylinux9-3-firewalld" title="RockyLinux9.３で自宅サーバーを再構築V03・firewalldでアクセス制御" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://www.kazuban.com/blog/wp-content/uploads/2023/11/Firewall-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.kazuban.com/blog/wp-content/uploads/2023/11/Firewall-160x90.png 160w, https://www.kazuban.com/blog/wp-content/uploads/2023/11/Firewall-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2023/11/Firewall-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">RockyLinux9.３で自宅サーバーを再構築V03・firewalldでアクセス制御</div><div class="blogcard-snippet internal-blogcard-snippet">firewalldを少し詳しく調べていました。一例として、sshサービスを、LAN内（指定アドレス）からのみ接続可能な設定にしました。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.kazuban.com/blog" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.kazuban.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2024.01.06</div></div></div></div></a>
</div></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc9">Ubuntu24.04LTSでWordPressを構築する記事一覧</span></h2>



<div class="wp-block-columns has-watery-red-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:0px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="1024" height="773" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop.png" alt="" class="wp-image-8987" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop.png 1024w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-500x377.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-800x604.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-300x226.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-768x580.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p>インストール・SSH・ファイヤーウォール</p>
</div>
</div>



<div class="wp-block-columns has-watery-green-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:4px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="948" height="600" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2.png" alt="" class="wp-image-8990" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2.png 948w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-500x316.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-800x506.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-300x190.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/apache2-768x486.png 768w" sizes="(max-width: 948px) 100vw, 948px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/ubuntu24-04lts-apache2">Apache2のインストールと設定</a></p>
</div>
</div>



<div class="wp-block-columns has-watery-red-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:0px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="750" height="564" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl.png" alt="" class="wp-image-8995" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl.png 750w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl-500x376.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/php-mariadb-ssl-300x226.png 300w" sizes="(max-width: 750px) 100vw, 750px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/ssl-php-mariadb">SSL、PHP、MariaDB、Let’s Encrypt証明書でhttps化</a></p>
</div>
</div>



<div class="wp-block-columns has-watery-green-background-color has-background is-style-bottom-margin-1em has-bottom-margin is-layout-flex wp-container-core-columns-is-layout-c6809a2b wp-block-columns-is-layout-flex" style="border-style:none;border-width:0px;border-radius:4px">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:15%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="684" height="430" src="https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress.png" alt="" class="wp-image-8999" style="object-fit:cover;width:100px;height:70px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress.png 684w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress-500x314.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/wordpress-300x189.png 300w" sizes="(max-width: 684px) 100vw, 684px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p><a href="https://www.kazuban.com/blog/wordpewss-ubuntu">WordPress インストール、バックアップと復元</a></p>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
