<?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>IT | じじぃの引出し</title>
	<atom:link href="https://www.kazuban.com/blog/category/it/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kazuban.com/blog</link>
	<description>なにかしら、皆さんの参考になれば幸いです！</description>
	<lastBuildDate>Fri, 15 May 2026 06:54:32 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.kazuban.com/blog/wp-content/uploads/2020/05/cropped-ICON-1-32x32.png</url>
	<title>IT | じじぃの引出し</title>
	<link>https://www.kazuban.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>RockyLinux9.7で「WordPress環境構築「Vol-04」WordPressインストール</title>
		<link>https://www.kazuban.com/blog/wordpress-install-no4/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sun, 10 May 2026 00:03:42 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux (CentOS、Rocky、Ubuntu)]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[RockyLinux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[インストール]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=12701</guid>

					<description><![CDATA[いよいよWordPressをインストールしていきますこのサイトでも、同様の記事は書いていますが、変更点もあるので新しく投稿します。 目次 WordPress インストール最新のWordPresssダウンロードWordPr [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">いよいよWordPressをインストールしていきます<br>このサイトでも、同様の記事は書いていますが、変更点もあるので新しく投稿します。</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">WordPress インストール</a><ol><li><a href="#toc2" tabindex="0">最新のWordPresssダウンロード</a></li><li><a href="#toc3" tabindex="0">WordPressパッケージをApache設定場所へ移動</a></li></ol></li><li><a href="#toc4" tabindex="0">MariaDBの設定</a><ol><li><a href="#toc5" tabindex="0">データベースの作成</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></ol></li><li><a href="#toc9" tabindex="0">Hello World!</a></li><li><a href="#toc10" tabindex="0">WordPress環境構築終了</a><ol><ol><li><a href="#toc11" tabindex="0">WordPress環境構築まとめ</a></li></ol></li></ol></li></ol>
    </div>
  </div>

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



<h3 class="wp-block-heading"><span id="toc2">最新のWordPresssダウンロード</span></h3>



<p class="wp-block-paragraph">ダウンロード後展開する作業場所へ移動し、ダウンロードします<br>筆者は、ユーザーディレクトリの「Downloads」を作業場所にしました</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-207e9948997f4a007d618a554dcbbaca"><code>cd ~/Downloads/
wget https://ja.wordpress.org/latest-ja.tar.gz
tar xvzf latest-ja.tar.gz
ls wordpress/ </code></pre>



<p class="wp-block-paragraph">WordPress パッケージが展開されました</p>



<pre class="wp-block-preformatted">index.php             wp-config-sample.php  wp-mail.php<br>license.txt           wp-content            wp-settings.php<br>readme.html           wp-cron.php           wp-signup.php<br>wp-activate.php       wp-includes           wp-trackback.php<br>wp-admin              wp-links-opml.php     xmlrpc.php<br>wp-blog-header.php    wp-load.php<br>wp-comments-post.php  wp-login.php</pre>



<h3 class="wp-block-heading"><span id="toc3">WordPressパッケージをApache設定場所へ移動</span></h3>



<p class="wp-block-paragraph">展開した「wordpress」ディレクトリを、<a href="https://www.kazuban.com/blog/wordpress-install-no2/#toc5">前回「httpd.conf」で「DocumentRoot」に設定した</a>ディレクトリ配下へ移動します<br>また、「wordpress」というディレクトリ名は、公開する時のアドレス名になります<br>この場合、<span class="marker-under-blue">https://「サイトドメイン」/wordpress/</span> です。<br>変更したい場合には、好みの名前に変更します<br>次の例では、「blog」という名前に変更し、所有権も「apache」に変更しています</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-79fd3cdbb76af01c9c24578607e379d2"><code>cd ~/Downloads/
sudo mv ./wordpress/ /home/www/html/ 
cd /home/www/html/
sudo mv ./wordpress/ ./blog/
sudo chown -R apache.apache ./blog/
ls -la</code></pre>



<pre class="wp-block-preformatted">・<br>・<br>drwxr-xr-x. 5 <strong>apache apache</strong> 4096  4月  3 01:00 <strong>blog</strong><br>-rw-r--r--. 1 apache apache  121  4月 24 10:52 index.html</pre>



<p class="wp-block-paragraph">「blog」と言う名前に変更され、所有者も「apache」になっていれば、WordPressの配置は完了です。</p>



<h2 class="wp-block-heading"><span id="toc4">MariaDBの設定</span></h2>



<p class="wp-block-paragraph">WordPress用のデータベースとユーザーを作成します<br>設定情報は、事前にメモを作成しておくとスムーズに進行できます<br>例として、下記で設定します</p>



<ul class="wp-block-list">
<li>root パスワード：<a href="https://www.kazuban.com/blog/wordpress-install-no3/#toc17">初期設定</a>で、「Change the root password」で作成したパスワード</li>



<li>データベース名：WpDb</li>



<li>ユーザー名：WpAdmin</li>



<li>パスワード：WpPasswd</li>



<li>データベースホスト：localhost</li>
</ul>



<h3 class="wp-block-heading"><span id="toc5">データベースの作成</span></h3>



<pre class="wp-block-preformatted">mysql -u root -p[rootパスワード] #-pの後ろはスペースは入れない<br>・<br>・データベース作成<br>MariaDB [(none)]&gt;CREATE DATABASE <strong><span class="marker-under-red">WpDb</span></strong> CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;<br>・<br>・データベース確認<br>MariaDB [(none)]&gt; SHOW DATABASES;<br>・<br>・管理者作成<br>GRANT ALL ON <strong><span class="marker-under-red">WpDb.</span></strong>* TO '<strong><span class="marker-under-red">WpAdmin</span></strong>'@'localhost' IDENTIFIED By '<strong><span class="marker-under-red">WpPasswd</span></strong>';<br>・<br>・確認<br>USE mysql<br>SELECT user,host from user;<br>SHOW GRANTS FOR '<strong><span class="marker-under-red">WpAdmin</span></strong>'@'localhost';<br></pre>



<p class="wp-block-paragraph">もし、データベース名やユーザーを変更したい場合には、「DROP」コマンドで<br>一度削除し、再生成します</p>



<pre class="wp-block-preformatted">DROP DATABASE データベース名;<br>・より安全を考慮した次のコードでは存在しない場合のエラーを回避できます<br>DROP DATABASE IF EXISTS データベース名;<br><br>DROP USER 'username'@'localhost';<br>・存在しない場合のエラーを回避<br>DROP USER IF EXISTS 'username'@'localhost'; <br></pre>



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



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



<p class="wp-block-paragraph"><a href="https://www.kazuban.com/blog/wordpress-install-no2/#toc13">Apacheの設定</a>で、ドメインでのアクセスが可能であればドメインで、<br>ドメインでの設定をしていない場合には、IPアドレスを<br>ChromeなどWebブラウザに入力して確認します<br>「WordPressへようこそ・・・」の画面が表示されます。</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" 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 class="wp-block-paragraph"><br>その画面で「さあ、始めましょう！」をクリック<br>上記で設定したデータベース情報を設定します</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="776" height="720" src="https://www.kazuban.com/blog/wp-content/uploads/2023/12/database.png" alt="" class="wp-image-8465" style="width:689px;height:auto" srcset="https://www.kazuban.com/blog/wp-content/uploads/2023/12/database.png 776w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/database-500x464.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/database-300x278.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/database-768x713.png 768w" sizes="(max-width: 776px) 100vw, 776px" /></figure>



<p class="wp-block-paragraph">「サイトタイトル」「ユーザー名」「パスワード」を設定しますが<br>ここでのユーザー名は、<span class="marker-under">WordPressの管理画面にログインするユーザーを設定</span>します<br><span class="marker-under-red"><a href="#toc4">データベースの管理ユーザー</a>とは違いますので注意</span>してください</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="777" height="284" src="https://www.kazuban.com/blog/wp-content/uploads/2023/12/install.png" alt="" class="wp-image-8466" style="aspect-ratio:2.736111111111111;width:688px;height:auto" srcset="https://www.kazuban.com/blog/wp-content/uploads/2023/12/install.png 777w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/install-500x183.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/install-300x110.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/install-768x281.png 768w" sizes="(max-width: 777px) 100vw, 777px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="772" height="887" src="https://www.kazuban.com/blog/wp-content/uploads/2023/12/setting.png" alt="" class="wp-image-8467" srcset="https://www.kazuban.com/blog/wp-content/uploads/2023/12/setting.png 772w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/setting-500x574.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/setting-300x345.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/setting-768x882.png 768w" sizes="(max-width: 772px) 100vw, 772px" /></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="774" height="432" src="https://www.kazuban.com/blog/wp-content/uploads/2023/12/success.png" alt="" class="wp-image-8470" srcset="https://www.kazuban.com/blog/wp-content/uploads/2023/12/success.png 774w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/success-500x279.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/success-300x167.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/success-768x429.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/success-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/success-160x90.png 160w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/success-320x180.png 320w" sizes="(max-width: 774px) 100vw, 774px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.34%">
<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="402" height="529" src="https://www.kazuban.com/blog/wp-content/uploads/2023/12/login.png" alt="" class="wp-image-8473" style="object-fit:cover;width:200px;height:200px" srcset="https://www.kazuban.com/blog/wp-content/uploads/2023/12/login.png 402w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/login-300x395.png 300w" sizes="(max-width: 402px) 100vw, 402px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">ログインで、WordPressの管理画面からWordPressの設定ができるようになります</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc8">サイトヘルス</span></h3>



<p class="wp-block-paragraph">「https://「サイトドメイン」/blog/wp-admin/site-health.php」にアクセスすると、サイトの状態が確認できますが、自宅環境では、「REST API 」エラーが出ました</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="624" src="https://www.kazuban.com/blog/wp-content/uploads/2023/12/site-health-error-800x624.png" alt="" class="wp-image-8487" srcset="https://www.kazuban.com/blog/wp-content/uploads/2023/12/site-health-error-800x624.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/site-health-error-500x390.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/site-health-error-300x234.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/site-health-error-768x599.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/site-health-error.png 808w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">自宅内での設定の場合、名前解決ができていないのが原因のようです<br><a href="https://www.kazuban.com/blog/wordpress-install-no2/#toc13">同じLAN上のwindowsPCには「hosts」ファイルに設定</a>しましたが、サーバー（Linux）側も<br>「hosts」設定し強制的に名前解決させようと思います。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-6f00ef53fdd2cdf24be460013b465897"><code>sudo vi /etc/hosts</code></pre>



<pre class="wp-block-preformatted">127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4<br>::1         localhost localhost.localdomain localhost6 localhost6.localdomain6<br>192.168.1.100 www2.hogehoge.com</pre>



<p class="wp-block-paragraph">これで、「・・/wp-admin/site-health.php」を更新すると、「REST API 」エラーは消えていました</p>



<h2 class="wp-block-heading"><span id="toc9">Hello World!</span></h2>



<p class="wp-block-paragraph">「https://「サイトドメイン」/blog/」にアクセスすると、デフォルトのサンプルページが表示されます</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="800" height="755" src="https://www.kazuban.com/blog/wp-content/uploads/2026/05/hello-world-800x755.png" alt="" class="wp-image-12773" style="aspect-ratio:1.0596459670495892;object-fit:cover;width:480px;height:auto" srcset="https://www.kazuban.com/blog/wp-content/uploads/2026/05/hello-world-800x755.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2026/05/hello-world-500x472.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2026/05/hello-world-300x283.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2026/05/hello-world-768x725.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2026/05/hello-world.png 1024w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h2 class="wp-block-heading"><span id="toc10">WordPress環境構築終了</span></h2>



<p class="wp-block-paragraph">これで、WordPress環境構築は終了です<br>「https://「サイトドメイン」/blog/wp-admin/」で、ダッシュボード（管理画面）が開きます。<br>コンテンツから外観までいろいろな設定変更が可能で、「管理画面（ダッシュボード）」を使いこなすことから始めます。<br>まずは、「外観」⇒「テーマ」を変更する事で、見栄えをガラッと変えましょう！</p>



<h4 class="wp-block-heading"><span id="toc11">WordPress環境構築まとめ</span></h4>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-7387b849 wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no1/">１</a></span></p>



<p class="wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no2/">２</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-1476c951253852d4a55d81c877244e82 wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no3/">３</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-30a943d01dbfa4c684a86f1ffdf067cd wp-block-paragraph"><span class="inline-button-white-blue"><a href="https://www.kazuban.com/blog/wordpress-install-no4/">４</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-ea60c9863cef2db7e5917a00fa26aed8 wp-block-paragraph"><span class="inline-button-white-black">５</span></p>



<p class="has-light-grey-color has-text-color has-link-color wp-elements-6ffea2dacd2a225d010208a9488b8f07 wp-block-paragraph">６</p>



<p class="wp-block-paragraph"></p>
</div>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RockyLinux9.7で「WordPress環境構築「Vol-03」PHP8.4、MariaDB11.4</title>
		<link>https://www.kazuban.com/blog/wordpress-install-no3/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Fri, 01 May 2026 01:36:17 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux (CentOS、Rocky、Ubuntu)]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[RockyLinux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[インストール]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=12568</guid>

					<description><![CDATA[WordPress構築のために、PHPとMariaDB(Mysql)環境を整備していきます現状の状態は、WordPress6.9.4、PHP 8.2.30 MariaDB10.5.29です。今回は、バックアップ用が目的で [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">WordPress構築のために、PHPとMariaDB(Mysql)環境を整備していきます<br>現状の状態は、<br>WordPress6.9.4、PHP 8.2.30 MariaDB10.5.29です。<br>今回は、バックアップ用が目的ですが、トライアルもかねて、なるべく新しいバージョンにしておきたいと思います。<br>現wordpressに対応している、phpとwordpressのバージョンは下記を参考にしました</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><a href="https://tcd-theme.com/2021/09/wordpress-php-version.html">PHP</a><br><a href="https://tane-creative.co.jp/column/6445/">MariaDB</a></p>
</blockquote>



<p class="wp-block-paragraph">上記を参考に、<strong><span class="marker-under">PHP8.4 MariaDB11.4(LTS)</span></strong>をインストールします</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">PHPのインストール</a><ol><li><a href="#toc2" tabindex="0">拡張機能を追加</a></li><li><a href="#toc3" tabindex="0">PHP8.4について、🧑‍💻AIからのアドバイス</a><ol><ol><ol><li><a href="#toc4" tabindex="0">補足：PHP 8.4での注意点（AIからのアドバイス）</a></li></ol></li></ol></li></ol></li><li><a href="#toc5" tabindex="0">php.ini の設定</a></li><li><a href="#toc6" tabindex="0">キャッシュ拡張用の10-opcache.ini の設定変更</a></li><li><a href="#toc7" tabindex="0">httpd.conf の編集</a></li><li><a href="#toc8" tabindex="0">多少の動画添付を考慮した、WordPress側の設定</a></li><li><a href="#toc9" tabindex="0">PHP確認</a></li></ol></li><li><a href="#toc10" tabindex="0">MariaDB 11.4(LTS)</a><ol><li><a href="#toc11" tabindex="0">リポジトリ追加</a><ol><li><a href="#toc12" tabindex="0">EPEL リポジトリ系エラーについて、🧑‍💻AIの回答</a><ol><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></ol></li></ol></li><li><a href="#toc16" tabindex="0">MariaDB 11.４ のインストール</a></li><li><a href="#toc17" tabindex="0">初期セキュリティ設定</a></li><li><a href="#toc18" tabindex="0">ファイアウォールの設定（外部接続が必要な場合）</a></li><li><a href="#toc19" tabindex="0">インストール確認</a></li><li><a href="#toc20" tabindex="0">文字コードの設定</a></li><li><a href="#toc21" tabindex="0">再起動と確認</a><ol><li><a href="#toc22" tabindex="0">WordPress環境構築まとめ</a></li></ol></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">筆者の現環境では、PHPはまだインストールしていませんが、とりあえず確認します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-037c08db1b511be0e15a7d1f2d8ec2e6"><code>php --version</code></pre>



<p class="wp-block-paragraph">やはりインストールされていませんが、もしインストールされている場合には、必要あればバックアップを取り、問題なければすべて削除します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-94ae9bab53a21b7f39c939ef62a4d67d"><code>sudo dnf remove php*
sudo dnf remove php-*</code></pre>



<p class="wp-block-paragraph">PHP モジュールリストを確認します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-1b2559100844f89ae97018d0b5345f6f"><code>dnf module list php</code></pre>



<pre class="wp-block-preformatted">Rocky Linux 9 - AppStream<br>Name     Stream       Profiles                      Summary                            <br>php      8.1          common [d], devel, minimal    PHP scripting language             <br>php      8.2          common [d], devel, minimal    PHP scripting language             <br>php      8.3          common [d], devel, minimal    PHP scripting language             <br><br>Remi's Modular repository for Enterprise Linux 9 - x86_64<br>Name     Stream       Profiles                      Summary                            <br>php      remi-7.4     common [d], devel, minimal    PHP scripting language             <br>php      remi-8.0     common [d], devel, minimal    PHP scripting language             <br>php      remi-8.1     common [d], devel, minimal    PHP scripting language             <br>php      remi-8.2     common [d], devel, minimal    PHP scripting language             <br>php      remi-8.3     common [d], devel, minimal    PHP scripting language             <br>php      remi-8.4     common [d], devel, minimal    PHP scripting language             <br>php      remi-8.5     common [d], devel, minimal    PHP scripting language  </pre>



<p class="wp-block-paragraph">私の環境では、AppStream には、8.3までですが、Remiでは、8.5まで登録されています<br>ここでは、最新は避けて8.4をインストールしようと思います</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-3ec9e5fc94f8910c731a3b3a2259bb3e"><code>sudo dnf module install php:remi-8.4
sudo dnf install php</code></pre>



<h3 class="wp-block-heading"><span id="toc2">拡張機能を追加</span></h3>



<p class="wp-block-paragraph">WordPressを動作させるのに、必須と推奨なPHP拡張機能があります。<br><a href="https://make.wordpress.org/hosting/handbook/server-environment/#php-extensions">こちらとAIの意見を参考にして、</a>インストールしておきたいと思います。<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-0337149f0da6453da06cd81bfcdacf4f"><code>sudo dnf install \
  php-mysql php-curl\
  php-mysql php-exif\
  php-mysql php-fileinfo\
  php-mysql php-gd\
  php-mysql php-imagick\
  php-mysql php-intl\
  php-mysql php-json\
  php-mysql php-mbstring\
  php-mysql php-mysqli\
  php-mysql php-openssl\
  php-mysql php-xml\
  php-mysql php-zip</code></pre>



<p class="wp-block-paragraph">再起動</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-584407fcb0a4309bf94106bd651fc498"><code>sudo systemctl restart httpd
sudo systemctl restart php-fpm</code></pre>



<h3 class="wp-block-heading"><span id="toc3">PHP8.4について、🧑‍💻AIからのアドバイス</span></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h6 class="wp-block-heading"><span id="toc4">補足：PHP 8.4での注意点（AIからのアドバイス）</span></h6>



<p class="wp-block-paragraph">PHP 8.4は比較的新しいため、利用している<strong>WordPressテーマや古いプラグイン</strong>がまだ対応しておらず、非推奨（Deprecated）の警告が出る場合があります。</p>



<ul class="wp-block-list">
<li>もしエラーが出る場合は、WordPressの管理画面から「サイトヘルス」を確認し、足りないモジュールがないかチェックしてみてください。</li>
</ul>



<p class="wp-block-paragraph">もし特定のプラグインで「これが足りない」と言われた場合は、<code>dnf search php-拡張名</code> で探すとすぐに見つかりますよ。</p>
</blockquote>



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



<p class="wp-block-paragraph">PHPの設定は、「/etc/php.ini」で行います。<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-6ce1f335198bd0d88347c3f9468d4980"><code>sudo cp -p /etc/php.ini /etc/php.ini.org
sudo vi /etc/php.ini</code></pre>



<p class="wp-block-paragraph">筆者の利用方法としては、記事内に画像貼り付けと少数ですが<span class="marker-under-red">動画も貼り付けたい</span>と思っているので、多少余裕をもった設定にしました。</p>



<pre class="wp-block-preformatted">・<br>・<br>;expose_php = On<br><strong>expose_php = Off</strong><br><br>;max_execution_time = 30<br><strong>max_execution_time = 300</strong><br><br>;max_input_time = 60<br><strong>max_input_time = 300</strong><br><br>;max_input_vars = 1000<br><strong>max_input_vars = 3000</strong><br><br>;post_max_size = 8M<br><strong>post_max_size = 300M</strong><br><br>;upload_max_filesize = 2M<br><strong>upload_max_filesize = 256M</strong><br><br>;max_file_uploads = 20<br><strong>max_file_uploads = 50</strong><br><br>;date.timezone =<br><strong>date.timezone = "Asia/Tokyo"</strong><br><br>;mbstring.language = Japanese<br>mbstring.language = Japanese<br><br>;mbstring.internal_encoding =<br><strong>mbstring.internal_encoding = UTF-8</strong><br><br>;mbstring.http_input =<br><strong>mbstring.http_input = UTF-8</strong><br><br>;mbstring.http_output =<br><strong>mbstring.http_output = pass</strong><br><br>;mbstring.encoding_translation = Off<br><strong>mbstring.encoding_translation = On</strong><br><br>;mbstring.detect_order = auto<br>mbstring.detect_order = auto<br><br>;mbstring.substitute_character = none<br>mbstring.substitute_character = none<br>・<br>・</pre>



<h3 class="wp-block-heading"><span id="toc6">キャッシュ拡張用の10-opcache.ini の設定変更</span></h3>



<p class="wp-block-paragraph">OPcache（オプキャッシュ）は、PHPスクリプトのコンパイル結果（バイトコード）を共有メモリにキャッシュすることで、PHPの動作を高速化する拡張モジュールですが、その設定ファイルも余裕をみた設定にしました<br>/etc/php.d/10-opcache.ini もバックアップをとって編集します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-3f1669efdbcd727f7a56a4cfc000dba2"><code>sudo cp -p /etc/php.d/10-opcache.ini /etc/php.d/10-opcache.ini.org
sudo vi /etc/php.d/10-opcache.ini</code></pre>



<pre class="wp-block-preformatted">・<br>・<br>opcache.enable=1<br><br>;opcache.memory_consumption=128<br><strong>opcache.memory_consumption=256</strong><br><br>;opcache.memory_consumption=128<br><strong>opcache.memory_consumption=256</strong><br><br>;opcache.max_accelerated_files=10000<br><strong>opcache.max_accelerated_files=20000</strong><br>・<br>・</pre>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-d29359753483389ab0aff886476977a4"><code>sudo systemctl restart php-fpm
sudo systemctl restart httpd</code></pre>



<h3 class="wp-block-heading"><span id="toc7">httpd.conf の編集</span></h3>



<p class="wp-block-paragraph">こちらは、必須ではないですが、やっといたほうがいいかも？との🧑‍💻AIのアドバイスです</p>



<p class="wp-block-paragraph">/etc/httpd/conf/httpd.conf</p>



<pre class="wp-block-preformatted">・<br>・<br>LimitRequestBody 314572800  #（= 約300MB）<br>・</pre>



<p class="wp-block-paragraph">ただ、<a href="https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/9/html/9.1_release_notes/enhancement_dynamic-programming-languages-web-and-database-servers">こちらの情報では</a>、</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">デフォルト値が&nbsp;<code>0</code>&nbsp;(無制限) から 1 GiB に変更されたようです。</p>
</blockquote>



<p class="wp-block-paragraph">デフォルトでは無制限ではなくなったみたいです。</p>



<h3 class="wp-block-heading"><span id="toc8">多少の動画添付を考慮した、WordPress側の設定</span></h3>



<p class="wp-block-paragraph">こちらも、🧑‍💻AIのアドバイス<br>画像貼り付け予定であれば、設定しておいたほうがよいとの事<br>こちらは、wordpress立ち上げ時に設定しようと思います</p>



<p class="wp-block-paragraph">WordPress側の設定（wp-config.php）</p>



<pre class="wp-block-preformatted">define('WP_MEMORY_LIMIT', '256M');<br>define('WP_MAX_MEMORY_LIMIT', '512M');</pre>



<h3 class="wp-block-heading"><span id="toc9">PHP確認</span></h3>



<p class="wp-block-paragraph">「/home/www/home」に「index.php」という、ファイルを作成し、ブラウザに「<a href="https://www2.kazuban.com/">https://www2.hogehoge.com/index.php</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-fd4e20839425e3f96c4ee4dee6fc8874"><code>echo '&lt;?php phpinfo(); ?&gt;' | sudo tee /home/www/html/index.php</code></pre>



<p class="wp-block-paragraph">アドレスバーに「<a href="https://www2.kazuban.com/">https://www2.hogehoge.com/index.php</a>」で確認します</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="280" src="https://www.kazuban.com/blog/wp-content/uploads/2026/04/php-ver-800x280.png" alt="" class="wp-image-12621" srcset="https://www.kazuban.com/blog/wp-content/uploads/2026/04/php-ver-800x280.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2026/04/php-ver-500x175.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2026/04/php-ver-300x105.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2026/04/php-ver-768x269.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2026/04/php-ver.png 1050w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">確認ができたら、削除しておきましょう</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-684ddd9289da135f47cd0c8aa2f0ce94"><code>sudo rm /home/www/html/index.php</code></pre>



<h2 class="wp-block-heading"><span id="toc10">MariaDB 11.4(LTS)</span></h2>



<p class="wp-block-paragraph">11.5も動作すると思いますが、11.4(LTS)をインストールしようと思います</p>



<h3 class="wp-block-heading"><span id="toc11">リポジトリ追加</span></h3>



<p class="wp-block-paragraph">リポジトリ追加</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-18bf56cbd738a52717dc8c76a65da87a"><code>curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-11.4"</code></pre>



<p class="wp-block-paragraph">パッケージキャッシュの更新</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-607451a79a8cbb97f5a7a3e4da9791db"><code>sudo dnf makecache</code></pre>



<p class="wp-block-paragraph">EPEL リポジトリ系のネットワーク接続エラーが出たので、AIに聞いてみましたが、問題はないようです<br>AIの回答では閉鎖環境では、EPELを無効化する事でエラーは消えるようです（筆者は試していません）</p>



<h4 class="wp-block-heading"><span id="toc12">EPEL リポジトリ系エラーについて、🧑‍💻AIの回答</span></h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h6 class="wp-block-heading"><span id="toc13">なるほど、閉域網環境なんですね。その状況なら無効化で問題ないです。</span></h6>



<p class="wp-block-paragraph">EPEL を無効化する</p>



<pre class="wp-block-code"><code>sudo dnf config-manager --disable epel</code></pre>



<h6 class="wp-block-heading"><span id="toc14">確認</span></h6>



<pre class="wp-block-code"><code>sudo dnf makecache</code></pre>



<p class="wp-block-paragraph">エラーが消えれば OK です。</p>



<h6 class="wp-block-heading"><span id="toc15">本機トラブル時に外部接続が必要になったら</span></h6>



<p class="wp-block-paragraph">その時は再度有効化すればいいだけです：</p>



<pre class="wp-block-code"><code>sudo dnf config-manager --enable epel</code></pre>



<p class="wp-block-paragraph">切り替えが簡単なので、普段は無効化しておいて問題ありません👍</p>
</blockquote>



<p class="wp-block-paragraph"><br>パッケージ情報の一覧は、下記で確認できます<br>11.4のパッケージが確認できました</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-9be16379db64eb2e0c4c1aadd17e0c61"><code>dnf list mariadb*</code></pre>



<pre class="wp-block-preformatted">・<br>MariaDB-client.x86_64          11.4.10-1.el9     @mariadb-main<br>MariaDB-client-compat.noarch   11.4.10-1.el9     @mariadb-main<br>MariaDB-common.x86_64          11.4.10-1.el9     @mariadb-main<br>MariaDB-server.x86_64          11.4.10-1.el9     @mariadb-main<br>MariaDB-server-compat.noarch   11.4.10-1.el9     @mariadb-main<br>MariaDB-shared.x86_64 <br>・</pre>



<h3 class="wp-block-heading"><span id="toc16">MariaDB 11.４ のインストール</span></h3>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-d442e3a010c362ea7c820ccd2ecbe1b4"><code>sudo dnf install -y MariaDB-server MariaDB-client</code></pre>



<p class="wp-block-paragraph">MariaDB サービスの起動と自動起動設定</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-7bfb5655ee90721601d5eda0a57e4a67"><code>sudo systemctl start mariadb
sudo systemctl enable mariadb</code></pre>



<h3 class="wp-block-heading"><span id="toc17">初期セキュリティ設定</span></h3>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-72a4b1e39c9653a868376ec61cff9df8"><code>sudo mariadb-secure-installation</code></pre>



<p class="wp-block-paragraph">対話形式で以下を設定します：</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目</th><th>推奨設定</th></tr></thead><tbody><tr><td>ERROR 2002 (HY000): Can&#8217;t connect to local server through socket</td><td>MariaDB サービスが起動していない場合、このエラーがでます。その場合は起動させます。<br>sudo systemctl start mariadb</td></tr><tr><td>Enter current password for root (enter for none):<br>カレントrootパスワード：</td><td>以前設定していなければ「<strong>Enter</strong>」</td></tr><tr><td>Switch to unix_socket authentication [Y/n]<br>Unix socket 認証</td><td><code><strong>n</strong></code>（パスワード認証を使う場合）</td></tr><tr><td>Change the root password? [Y/n]<br>root パスワード設定<br>このパスワードは、データベース作成時にも使用するので、<span class="marker-under">忘れないようにメモ</span>します</td><td><code><strong>y</strong></code> → パスワードを入力<br>データベースへのログインで使用する<br>mysql -u root -p<strong>[パスワード]</strong></td></tr><tr><td>Remove anonymous users? [Y/n]<br>匿名ユーザーの削除</td><td><code><strong>y</strong></code></td></tr><tr><td>Disallow root login remotely? [Y/n]<br>リモート root ログインの禁止</td><td><code><strong>y</strong></code></td></tr><tr><td>Remove test database and access to it? [Y/n]<br>テスト DB の削除</td><td><code><strong>y</strong></code></td></tr><tr><td>Reload privilege tables now? [Y/n]<br>権限テーブルのリロード</td><td><code><strong>y</strong></code></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">ファイアウォールの設定（外部接続が必要な場合）</span></h3>



<p class="wp-block-paragraph">外部からデータベースに接続する場合には、ファイヤフォールに許可します<br>筆者は外部からデータベースへのアクセスの予定はないので、今回は設定していませんが<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-1182edf41e8f54cd33faa78db60378a0"><code>sudo firewall-cmd --permanent --add-service=mysql
sudo firewall-cmd --reload
sudo firewall-cmd --list-all --zone=public</code></pre>



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



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-6cdbfe144c0f9c703f2f90e2f9d0afd2"><code>sudo systemctl status mariadb</code></pre>



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



<p class="wp-block-paragraph">文字化け防止に、文字コードを編集します<br>設定ファイルは<br>「/etc/my.cnf.d/server.cnf」<br>「/etc/my.cnf.d/client.cnf」で行うので<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-6862e3e8c8024d395834c9be00e98010"><code>sudo cp -p /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.org 
sudo cp -p /etc/my.cnf.d/client.cnf /etc/my.cnf.d/client.cnf.org </code></pre>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-547d4bbdf3b96129da1e7d08c55ce3ce"><code>sudo vi /etc/my.cnf.d/server.cnf</code></pre>



<pre class="wp-block-preformatted">・<br>・<br># This group is only read by MariaDB servers, not by MySQL.<br># If you use the same .cnf file for MySQL and MariaDB,<br># you can put MariaDB-only options here<br>[mariadb]<br><strong># ----- 2026/05/01 -----<br>character-set-server = utf8mb4<br>collation-server     = utf8mb4_unicode_ci</strong><br>・<br>・<br></pre>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-970ab07a04cf717595c92b2710bcd06e"><code>sudo vi /etc/my.cnf.d/client.cnf</code></pre>



<pre class="wp-block-preformatted">・<br>・<br>#<br># These two groups are read by the client library<br># Use it for options that affect all clients, but not the server<br>#<br>[client]<br><strong># ----- 2026/05/01 -----</strong><br><strong>default-character-set = utf8mb4</strong><br>・<br>・<br></pre>



<h3 class="wp-block-heading"><span id="toc21">再起動と確認</span></h3>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-881a2e29dec703c23f959310b9b7d5ea"><code>sudo systemctl restart mariadb
sudo systemctl status mariadb</code></pre>



<pre class="wp-block-preformatted">mysql -u root -p[パスワード]<br>mysql: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb' instead<br>Welcome to the MariaDB monitor.  Commands end with ; or \g.<br>Your MariaDB connection id is 3<br>Server version: 11.4.10-MariaDB MariaDB Server<br><br>Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.<br><br>Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.<br><br>MariaDB [(none)]&gt; <strong>show variables like "chara%";</strong><br>+--------------------------+------------------------------+<br>| Variable_name            | Value                        |<br>+--------------------------+------------------------------+<br>| character_set_client     | utf8mb4                      |<br>| character_set_collations |                              |<br>| character_set_connection | utf8mb4                      |<br>| character_set_database   | <strong>utf8mb4</strong>                      |<br>| character_set_filesystem | binary                       |<br>| character_set_results    | utf8mb4                      |<br>| character_set_server     | <strong>utf8mb4</strong>                      |<br>| character_set_system     | utf8mb3                      |<br>| character_sets_dir       | /usr/share/mariadb/charsets/ |<br>+--------------------------+------------------------------+<br>9 rows in set (0.002 sec)<br><br>MariaDB [(none)]&gt; <strong>quit</strong><br>Bye</pre>



<p class="wp-block-paragraph"><strong>utf8mb4</strong> になっていることを確認します<br>もし、「latin1」とかになっていた場合には、<span class="marker-under-red">再起動</span>「<strong>sudo systemctl restart mariadb</strong>」で反映されます。</p>



<hr class="wp-block-separator has-text-color has-indigo-color has-alpha-channel-opacity has-indigo-background-color has-background is-style-wide" style="margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50)"/>



<h4 class="wp-block-heading"><span id="toc22">WordPress環境構築まとめ</span></h4>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-7387b849 wp-block-group-is-layout-flex">
<p class="has-black-color has-text-color has-link-color wp-elements-5f52745eabdb80c4b8425e4b334c7414 wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no1/">１</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-f04e8d7fb6e2787b0f3d9b4d2d85c493 wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no2/">２</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-194ef3f65fba551e58d0961d209e3f45 wp-block-paragraph"><span class="inline-button-white-blue"><a href="https://www.kazuban.com/blog/wordpress-install-no3/">３</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-a2aa1b38f71c6b12de00dd0cb2c11bed wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no4/">４</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-eceba6d3b11b45ccabb96c64463aa72c wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no5/">５</a></span></p>



<p class="has-light-grey-color has-text-color has-link-color wp-elements-6ffea2dacd2a225d010208a9488b8f07 wp-block-paragraph">６</p>



<p class="wp-block-paragraph"></p>
</div>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RockyLinux9.7で「WordPress環境構築「Vol-02」Apache設定と、HTTPS化</title>
		<link>https://www.kazuban.com/blog/wordpress-install-no2/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 23:49:17 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux (CentOS、Rocky、Ubuntu)]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[RockyLinux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[インストール]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=12446</guid>

					<description><![CDATA[前回、RockyLinux9.7をインストールし、WindowsターミナルでSSH接続できるようになりました今回は、Apache、MariaDB、PHPをインストールし、WordPressを起動させます筆者の環境ではすで [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">前回、RockyLinux9.7をインストールし、WindowsターミナルでSSH接続できるようになりました<br>今回は、Apache、MariaDB、PHPをインストールし、WordPressを起動させます<br>筆者の環境ではすでに自宅内で、Wordpress（このブログサイト）は起動しているのでテスト環境として、<span class="marker-under-red">仮に</span><strong>www2.hogehoge.com</strong> で設定を行っています<br>この仮ドメインは、<span class="marker-under-red">実際のドメインに変更</span>してご利用ください。</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">Apache</a><ol><li><a href="#toc2" tabindex="0">Remi リポジトリのインストール</a></li><li><a href="#toc3" tabindex="0">httpdインストール</a></li><li><a href="#toc4" tabindex="0">Firewalld に許可</a></li><li><a href="#toc5" tabindex="0">httpd.conf</a></li><li><a href="#toc6" tabindex="0">セキュリティ対策</a></li><li><a href="#toc7" tabindex="0">ドキュメントルートのトップページの表示</a></li></ol></li><li><a href="#toc8" tabindex="0">Let’s Encrypt証明書でhttps化</a><ol><li><a href="#toc9" tabindex="0">sslモジュール</a></li><li><a href="#toc10" tabindex="0">Certbot クライアントのインストール</a></li><li><a href="#toc11" tabindex="0">証明書発行</a></li><li><a href="#toc12" tabindex="0">証明書の設定</a></li><li><a href="#toc13" tabindex="0">https:// でのアクセス確認</a></li><li><a href="#toc14" tabindex="0">HTTP/2を利用する</a></li><li><a href="#toc15" tabindex="0">HTTP/2有効確認</a><ol><li><a href="#toc16" tabindex="0">WordPress環境構築まとめ</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Apache</span></h2>



<p class="wp-block-paragraph">コピペで設定できるように、まとめます<br>詳細は、こちらを参照してください</p>


<a href="https://www.kazuban.com/blog/rokeylinux9-3-apache/" title="RockyLinux9.３で自宅サーバーを再構築V04・LAMPの「A」、Apache編" 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/12/Apache-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.kazuban.com/blog/wp-content/uploads/2023/12/Apache-160x90.png 160w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/Apache-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2023/12/Apache-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.３で自宅サーバーを再構築V04・LAMPの「A」、Apache編</div><div class="blogcard-snippet internal-blogcard-snippet">LAMPの「A」のApacheの構築編です。インストール、セキュリティ対策、ファイヤーウォール、https化、HTTP2通信設定を説明します。さらに例では、CGIも動作できるような設定にしています。</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>


<h3 class="wp-block-heading"><span id="toc2">Remi リポジトリのインストール</span></h3>



<p class="wp-block-paragraph">ApacheやPHPの最新バージョンにも対応したいので、Remi リポジトリのインストールします<br>Remiのインストールには、「crb」や「epel」のインストールが必要なようです</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-c1631523513c4ac34ec9ea428186523a"><code>sudo dnf config-manager --set-enabled crb
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm</code></pre>



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



<p class="wp-block-paragraph">続いて、httpd関連をインストールし、自動起動するように設定します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-f5ad29b00dd48de30294cc478ca39b60"><code>sudo dnf install httpd httpd-tools mod_ssl
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl is-enabled httpd
sudo systemctl status httpd</code></pre>



<pre class="wp-block-preformatted"><span class="bold-green">●</span> httpd.service - The Apache HTTP Server<br>     Loaded: loaded (/usr/lib/systemd/system/httpd.service; <span class="bold-green">enabled</span>; preset: <span class="bold-blue">disabled</span>)<br>     Active: <span class="bold-green">active (running)</span> since Sat 2026-04-18 17:24:47 JST; 54min ago</pre>



<p class="wp-block-paragraph"><span class="bold-green">active (running)</span>とservice; <span class="bold-green">enabled</span>で確認できます。</p>



<h3 class="wp-block-heading"><span id="toc4">Firewalld に許可</span></h3>



<p class="wp-block-paragraph">「http」と「https」を許可します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-6f3dea2f5fa02d25e76fb6b91992a2e4"><code>sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all --zone=public</code></pre>



<p class="wp-block-paragraph">「services: 」で確認できます</p>



<pre class="wp-block-preformatted">public (active)<br>  target: default<br>  icmp-block-inversion: no<br>  interfaces: wlp8s0<br>  sources:<br>  services: cockpit dhcpv6-client <strong>http https</strong> ssh</pre>



<p class="wp-block-paragraph">ブラウザのアドレスバーにIPアドレス「http://192.168.*.*」をに入力すれば、テストページが表示されれば動作しています</p>



<h3 class="wp-block-heading"><span id="toc5">httpd.conf</span></h3>



<p class="wp-block-paragraph">サーバー上のディレクトリや、ホスト名など、自分の環境に合わせて設定ファイルを編集します<br>筆者の場合、「DocumentRoot」を「/home/www/html」に変更します<br>「ServerName」は、バックアップ用なので本サーバーとの識別のためドメイン名は<br>「www2」とし「www2.hogehoge.com」に設定します<br>CGIスクリプトを使用する場合では、AddHandlerでスクリプトの拡張子を指定し、ScriptAlias以外のディレクトリにスクリプトを置く場合には、その指定ディレクトリに「Options ExecCGI」を追加します<br>まずは、設定ファイル「httpd.conf」はバックアップを取ってから作業します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-6af31f7fc27de5819bdec68fed5c5b38"><code>cd /etc/httpd/conf/
sudo cp -p httpd.conf httpd.conf.org
sudo vi ./httpd.conf</code></pre>



<p class="wp-block-paragraph"><span class="inline-button-white-black">edhitor</span></p>



<pre class="wp-block-preformatted">#ServerAdmin root@localhost<br>ServerAdmin root@localhost<br><br>#ServerName www.example.com:80<br>ServerName www2.hogehoge.com:80<br><br>#DocumentRoot "/var/www/html"<br>DocumentRoot "/home/www/html"<br><br>#&lt;Directory "/var/www"&gt;<br>&lt;Directory "/home/www"&gt;<br><br>#&lt;Directory "/var/www/html"&gt;<br>&lt;Directory "/home/www/html"&gt;<br><br>#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"<br>ScriptAlias /cgi-bin/ "/home/www/cgi-bin/"<br><br>#&lt;Directory "/var/www/cgi-bin"&gt;<br>&lt;Directory "/home/www/cgi-bin"&gt;<br><br>#Options Indexes FollowSymLinks<br>Options FollowSymLinks<br><br>#AddHandler cgi-script .cgi<br># --- 2026/04/19 add by kazuban<br>AddHandler cgi-script .cgi<br>&lt;Directory /home/www/html/script&gt;<br>  AllowOverride None<br>  Options ExecCGI FollowSymLinks<br>  Order allow,deny<br>  Allow from all<br>&lt;/Directory&gt;</pre>



<p class="wp-block-paragraph">筆者の場合、デフォルトにディレクトリを変更したので、そのディレクトリを作成し、所有者をapacheに変更します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-c4f3ef6056e7d1223f92e93bc534a783"><code>sudo mkdir /home/www
sudo mkdir /home/www/html
sudo mkdir /home/www/cgi-bin
sudo chown apache.apache /home/www/html/
sudo chown apache.apache /home/www/cgi-bin/
ls -la /home/www
httpd -t</code></pre>



<p class="wp-block-paragraph">「Syntax OK」が出れば、正常に変更されています</p>



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



<p class="wp-block-paragraph">・テストページや「icons」一覧を非表示にする<br>・Apacheバージョン情報とＴRACEメソッドOFF<br>・X-Frame-Optionsの有効を確認<br>・設定したドキュメントルートにindex.htmlを作成</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-e110b38a9645384a6486be211ba04a0d"><code>cd /etc/httpd/conf.d
sudo cp -p welcome.conf welcome.conf.org
sudo cp -p  autoindex.conf  autoindex.conf.org
sudo vi ./welcome.conf</code></pre>



<p class="wp-block-paragraph">表示させたくないので、削除や名前変更もできますが、自動的に復活するらしいので、&lt;Directory&gt;設定は、全てコメントにしました。<br>autoindex.confも同様です</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-3cbd35de13f3166934c7322fa29c69c6"><code>sudo vi autoindex.conf</code></pre>



<p class="wp-block-paragraph">httpdを再起動すると、「http://192.168.*.*」は表示されなくなっていれば正常です</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-9f459a92461c6f58d5bb108024b4367d"><code>sudo systemctl restart httpd</code></pre>



<p class="wp-block-paragraph">さらに、Apacheバージョン情報とＴRACEメソッドもOFFにします<br>/etc/httpd/conf/httpd.confを編集</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-c6e82f02e1f51781bb7e5f18d2624ebd"><code>sudo vi /etc/httpd/conf/httpd.conf</code></pre>



<p class="wp-block-paragraph">最終行に、設定コードを追加</p>



<pre class="wp-block-preformatted">##--- kazuban added. 2026/04/19<br>ServerTokens ProductOnly<br>ServerSignature off<br>TraceEnable off</pre>



<p class="wp-block-paragraph">構文チェックしOKであれば、再起動します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-c4e776ada2235294bcc675456053ce5d"><code>httpd -t
sudo systemctl restart httpd</code></pre>



<p class="wp-block-paragraph">X-Frame-Optionsは、Webサイトを不正な埋め込み（クリックジャッキング攻撃）から守るために非常に重要だと言うことなので、こちらも有効になっているか確認します<br>「/etc/httpd/conf.modules.d/00-base.conf」に、<strong>mod_headers.so</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-511fa57254ff80702114303e0b2dfde4"><code>cat /etc/httpd/conf.modules.d/00-base.conf | grep mod_headers.so</code></pre>



<p class="wp-block-paragraph">次に、「/etc/httpd/conf/httpd.conf」の最後に、<br>「 Header append X-FRAME-OPTIONS “SAMEORIGIN” 」<br>を追加して、apacheを再起動します</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-c6e82f02e1f51781bb7e5f18d2624ebd"><code>sudo vi /etc/httpd/conf/httpd.conf</code></pre>



<pre class="wp-block-preformatted">・<br>・<br>##--- kazuban added. 2026/04/19<br>ServerTokens ProductOnly<br>ServerSignature off<br>TraceEnable off<br><br><strong>Header append X-FRAME-OPTIONS "SAMEORIGIN"</strong></pre>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-a16cc5027e70e7b7bf71350c68e22c67"><code>sudo systemctl restart httpd
sudo systemctl status httpd</code></pre>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading"><span id="toc7">ドキュメントルートのトップページの表示</span></h3>



<p class="wp-block-paragraph">上記<a href="#toc6">セキュリティ対策</a>でトップページが表示されなくなったので、「index.html」を作成し、簡単な表示が出るようにしておきます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-60da2fb269a22a13b545f334e6d3d5fe"><code>cd /home/www/html/
cat &lt;&lt;EOF | sudo tee 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;
EOF
sudo chown apache:apache ./index.html
httpd -t
sudo systemctl restart httpd</code></pre>



<p class="wp-block-paragraph">これで、「http://192.168.*.*」でトップページが表示されるようになりました</p>



<h2 class="wp-block-heading"><span id="toc8">Let’s Encrypt証明書でhttps化</span></h2>



<p class="wp-block-paragraph">https化を行う場合には、ファイヤーウォールでの許可が必要ですが、<a href="#toc4">上記ですでに許可してます</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-b4186ff6ba37c42bfbb26b64ba12e3fc"><code>sudo firewall-cmd --list-all --zone=public</code></pre>



<p class="wp-block-paragraph">「services: 」に「https」があれば、許可済みです</p>



<h3 class="wp-block-heading"><span id="toc9">sslモジュール</span></h3>



<p class="wp-block-paragraph">「mod_ssl」も、<a href="#toc3">上記でインストールされています</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-ec1f5ece7dfc1a471acc9228f95931ce"><code>dnf list installed | grep mod_ssl
httpd -M | grep ssl</code></pre>



<h3 class="wp-block-heading"><span id="toc10">Certbot クライアントのインストール</span></h3>



<p class="wp-block-paragraph">Let’s Encryptで証明書の取得には、「Certbot」と言うソフトを利用します<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-56f1a43f2bc22b0f47d390f0d007012c"><code>dnf list --all | grep certbot</code></pre>



<p class="wp-block-paragraph">複数でてきますが、「certbot.noarch」「python3-certbot-apache.noarch」をインストールします</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-0fb8f7c4c018f90c747e3410515c195d"><code>sudo dnf install certbot
sudo dnf install python3-certbot-apache
dnf list installed | grep certbot</code></pre>



<h3 class="wp-block-heading"><span id="toc11">証明書発行</span></h3>



<p class="wp-block-paragraph">すでにhttpdが動作している場合には、「webroot プラグイン」を使います<br>動作していない場合には、「Standaloneプラグイン」を使います<br>ただし、両方とも外部から対象のPCの80番ポートへ通信は必要です<br>したがって、<span class="marker-under-red">外部（インターネット側）から、対象のドメインのが名前解決が必要</span>です<br>私は、無料のサービス<a href="https://www.mydns.jp/">https://www.mydns.jp/</a>　を利用させてもらっています<br>80番ポートは「Standalone」の場合は、certbot が占有します<br>「webroot」は、apacheが使います<br>したがって、「webroot」はwebサーバーが動作している必要がありますが、「Standalone」では停止しておく必要があります</p>



<p class="wp-block-paragraph">まず、外部からの80番へのリクエストが、対象のPCアドレスへ転送されるように設定します<br>自宅であれば、ルーターの「ポートマッピング」などの項目で設定できると思います<br>次に、httpdの起動状態を確認</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-a1296986e104f975827e0964cbcfbd00"><code>sudo systemctl status httpd</code></pre>



<p class="wp-block-paragraph">80番と、httpdの起動が確認できたら、certbot を起動しましょう<br>確認はしていませんが、権限が必要なファイルに書き込むので、「su」での起動がいいと思います</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-4ba8ca881eeb9baf701d21cb71a7c981"><code>su
certbot certonly --webroot -w /home/www/html/ -d www2.hogehoge.com -d hogehoge.com</code></pre>



<p class="wp-block-paragraph">対話での設定になります</p>



<pre class="wp-block-preformatted">Saving debug log to /var/log/letsencrypt/letsencrypt.log<br>Enter email address (used for urgent renewal and security notices)<br> (Enter 'c' to cancel): 　　　　　&lt;------自分のEメールアドレスを入力<br><br>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>Please read the Terms of Service at<br> https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must<br>agree in order to register with the ACME server. Do you agree?<br>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>(Y)es/(N)o: y　&lt;----- 利用規約を読んでください<br><br>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>Would you be willing, once your first certificate is successfully issued, to<br>share your email address with the Electronic Frontier Foundation, a founding<br>partner of the Let's Encrypt project and the non-profit organization that<br>develops Certbot? We'd like to send you email about our work encrypting the web,<br>EFF news, campaigns, and ways to support digital freedom.<br>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>(Y)es/(N)o: y  &lt;--------- 電子フロンティア財団からEメールが届いてもいいか？<br>Account registered.<br>Requesting a certificate for www2.hogehoge.com and hogehoge.com<br><br><strong>Successfully</strong> received certificate.<br>Certificate is saved at: /etc/letsencrypt/live/www2.hogehoge.com/fullchain.pem<br>Key is saved at:         /etc/letsencrypt/live/www2.hogehoge.com/privkey.pem<br>This certificate expires on 2026-07-18.<br>These files will be updated when the certificate renews.<br>Certbot has set up a scheduled task to automatically renew this certificate in the background.<br><br>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>If you like Certbot, please consider supporting our work by:<br> * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate<br> * Donating to EFF:                    https://eff.org/donate-le<br>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</pre>



<p class="wp-block-paragraph">「<strong>Successfully</strong>」になれば、証明書ファイルは保管されています</p>



<h3 class="wp-block-heading"><span id="toc12">証明書の設定</span></h3>



<p class="wp-block-paragraph">証明書を「/etc/httpd/conf.d/ssl.conf」で反映させます<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-c9f4f6792a24ebaf008c4f200f457825"><code>cd /etc/httpd/conf.d
sudo cp -p ssl.conf ssl.conf.org
sudo vi ./ssl.conf</code></pre>



<p class="wp-block-paragraph"><span class="inline-button-white-black">/etc/httpd/conf.d/ssl.conf</span></p>



<pre class="wp-block-preformatted">・<br>#SSLCertificateFile /etc/pki/tls/certs/localhost.crt<br>SSLCertificateFile /etc/letsencrypt/live/www2.hogehoge.com/fullchain.pem       <br>・<br>・<br>#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key<br>SSLCertificateKeyFile /etc/letsencrypt/live/www2.hogehoge.com/privkey.pem<br>・</pre>



<p class="wp-block-paragraph">保存後、確認でOKなら、httpd再起動</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-fa9c318bd852eab09b6b9bedf753f887"><code>sudo httpd -t
sudo systemctl restart httpd
sudo systemctl status httpd</code></pre>



<h3 class="wp-block-heading"><span id="toc13">https:// でのアクセス確認</span></h3>



<p class="wp-block-paragraph"><a href="#toc11">証明書発行</a>では80番ポーとを通しましたが、httpsでは443ポートを通してておきます<br>ただし、筆者の環境のように、同じLAN上にWebサーバーとアクセスPCがある場合には外部DNSを使用しないので、アクセスできない場合があります<br>その場合、アクセス側PCの「hosts」ファイルで設定しておくと可能になります</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">C:\Windows\System32\drivers\etc\hosts</span>　(windows)</p>



<pre class="wp-block-preformatted">#Server <br>192.168.1.100 hogehoge.com<br>192.168.1.100 www.hogehoge.com<br><br>#TestServer<br>192.168.1.101 www2.hogehoge.com<br></pre>



<p class="wp-block-paragraph">この設定後、「https://www2.hogehoge.com」で正常に<a href="#toc7">「index.html」画面</a>が表示されれば証明書は正常です</p>



<h3 class="wp-block-heading"><span id="toc14">HTTP/2を利用する</span></h3>



<p class="wp-block-paragraph">詳細は、<a href="https://www.kazuban.com/blog/rokeylinux9-3-apache/#toc21">こちらを確認</a>してください<br>まず、eventMPMモジュールとhttp2モジュールが必要ですが、Rocky9では、デフォルトで有効になっているようです。<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-508dbc3f2d9b458b8bb4923dcd1ee1d7"><code>sudo httpd -M | grep mpm
sudo httpd -M | grep http2</code></pre>



<p class="wp-block-paragraph">次に、「httpd.conf」で有効設定する予定ですが、設定前にhttp2の有効状態を確認してみました<br>確認は、Chromeで「https://www2.hogehoge.com」を表示後、F12キーで表示される開発ページの「Network」「Protocol」で確認できますが、筆者の環境ではすでに「h2」になっていて、http2が有効になっていました。<br>AIに聞いてみると、Apacheのバージョンによっては、有効になっている場合もあるが、明示的に設定をいれる事を推奨するの事なので、設定はしておこうと思います</p>



<p class="wp-block-paragraph">設定は、「/etc/httpd/conf/httpd.conf」で行います</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-c6e82f02e1f51781bb7e5f18d2624ebd"><code>sudo vi /etc/httpd/conf/httpd.conf</code></pre>



<p class="wp-block-paragraph">最終行に追加して、httpdを再起動</p>



<pre class="wp-block-preformatted">・<br>&lt;IfModule http2_module&gt;<br>    Protocols h2 http/1.1<br>    ProtocolsHonorOrder on<br>&lt;/IfModule&gt;<br>・</pre>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-9f459a92461c6f58d5bb108024b4367d"><code>sudo systemctl restart httpd</code></pre>



<h3 class="wp-block-heading"><span id="toc15">HTTP/2有効確認</span></h3>



<p class="wp-block-paragraph">Chromeで「https://www2.hogehoge.com」を表示後、F12キーで表示される開発ページの「Network」「Protocol」で確認できますが、「Protocol」が表示されていない場合があります<br>・開発ページが表示された後、CTRL+R でページを更新<br>・もし、翻訳のダイアログが出た場合には、「日本語」にしてみます</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="343" height="159" src="https://www.kazuban.com/blog/wp-content/uploads/2026/04/http2-01.png" alt="" class="wp-image-12547" srcset="https://www.kazuban.com/blog/wp-content/uploads/2026/04/http2-01.png 343w, https://www.kazuban.com/blog/wp-content/uploads/2026/04/http2-01-300x139.png 300w" sizes="(max-width: 343px) 100vw, 343px" /></figure>



<p class="wp-block-paragraph">・開発ページが更新されても、デフォルトでは「Protocol」が非表示になっている場合があります<br>・「Network」タブの、「Name」セル上でマウス右ボタンで、表示項目の選択ができるので「Protocol」をチェックする事で、表示されます</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="463" height="171" src="https://www.kazuban.com/blog/wp-content/uploads/2026/04/http2-02.png" alt="" class="wp-image-12548" srcset="https://www.kazuban.com/blog/wp-content/uploads/2026/04/http2-02.png 463w, https://www.kazuban.com/blog/wp-content/uploads/2026/04/http2-02-300x111.png 300w" sizes="(max-width: 463px) 100vw, 463px" /></figure>



<p class="wp-block-paragraph">・表示された「Protocol」が、「h2」や「h3」になっていれば、HTTP/2で応答しています</p>



<hr class="wp-block-separator has-text-color has-indigo-color has-alpha-channel-opacity has-indigo-background-color has-background is-style-wide" style="margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50)"/>



<h4 class="wp-block-heading"><span id="toc16">WordPress環境構築まとめ</span></h4>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-7387b849 wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no1/">１</a></span></p>



<p class="wp-block-paragraph"><span class="inline-button-white-blue"><a href="https://www.kazuban.com/blog/wordpress-install-no2/">２</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-7e921fec3f58122595ac300774589944 wp-block-paragraph"><a href="https://www.kazuban.com/blog/wordpress-install-no3/"><span class="inline-button-white-black">３</span></a></p>



<p class="has-black-color has-text-color has-link-color wp-elements-377be188d7b2fd6bc05959bf4f062784 wp-block-paragraph"><a href="https://www.kazuban.com/blog/wordpress-install-no4/"><span class="inline-button-white-black">４</span></a></p>



<p class="has-black-color has-text-color has-link-color wp-elements-065985a560eb3ee4149356900ae8ca04 wp-block-paragraph"><a href="https://www.kazuban.com/blog/wordpress-install-no5/"><span class="inline-button-white-black">５</span></a></p>



<p class="has-light-grey-color has-text-color has-link-color wp-elements-6ffea2dacd2a225d010208a9488b8f07 wp-block-paragraph">６</p>



<p class="wp-block-paragraph"></p>
</div>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RockyLinux9.7で「WordPress環境構築「Vol-01」WindowsからのSSH接続でリモート管理</title>
		<link>https://www.kazuban.com/blog/wordpress-install-no1/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 18 Apr 2026 08:18:05 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux (CentOS、Rocky、Ubuntu)]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[RockyLinux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[インストール]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=12299</guid>

					<description><![CDATA[ひと昔以上前のノートに、「ubuntu」入れてみたのが、２年前 会社でもローカル環境にwordpressでのコミュニティサイトを検討しているので、wordpress環境構築作業に戸惑わないよう、コピペできるよう、まとめま [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ひと昔以上前のノートに、「ubuntu」入れてみたのが、２年前</p>


<a href="https://www.kazuban.com/blog/ubuntu24-04lts-install/" title="Ubuntu24.04LTSでWorrPressを動作させる。インストール・SSH・ファイヤーウォール" 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/2024/06/Desktop-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-160x90.png 160w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2024/06/Desktop-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Ubuntu24.04LTSでWorrPressを動作させる。インストール・SSH・ファイヤーウォール</div><div class="blogcard-snippet internal-blogcard-snippet">「Ubuntu24.04LTS」に、「RHEL系、RockyLinux9」と同様の設定で、「WordPress」を動作させます。特に、「apache」の設定方法が違っているので戸惑いました。「RHEL」から移行の方には参考になると思います。</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.06.29</div></div></div></div></a>


<p class="wp-block-paragraph">会社でもローカル環境にwordpressでのコミュニティサイトを検討しているので、wordpress環境構築作業に戸惑わないよう、コピペできるよう、まとめました。<br>せっかくなので、RockyLinux10で試してみましたが、筆者の１０数年前のノートPCではインストーラさえ起動しませんでした<br>RockyLinux9.7であれば起動したので、クリーンインストールして再構築しました</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">RockyLinux9.7 ダウンロード・インストール</a><ol><li><a href="#toc2" tabindex="0">有線デバイスを認識しない</a><ol><li><a href="#toc3" tabindex="0">インターフェースの確認:</a></li><li><a href="#toc4" tabindex="0">JMicron用ドライバのインストール</a></li><li><a href="#toc5" tabindex="0">「ELRepo-kernel」から最新カーネルを試す（成功率：中）</a></li><li><a href="#toc6" tabindex="0">ethernetデバイスを接続する</a></li></ol></li></ol></li><li><a href="#toc7" tabindex="0">インストール直後の設定</a><ol><li><a href="#toc8" tabindex="0">ホームディレクトリの日本語表記を英語表記に変更</a></li><li><a href="#toc9" tabindex="0">特定のユーザーにsudo を可能にする</a></li></ol></li><li><a href="#toc10" tabindex="0">SSH利用状況の確認</a><ol><li><a href="#toc11" tabindex="0">firewalldでのsshの確認</a></li></ol></li><li><a href="#toc12" tabindex="0">SSHでリモート操作</a></li><li><a href="#toc13" tabindex="0">インストール後の設定２（SSHでも可）</a><ol><li><a href="#toc14" tabindex="0">まずは、パッケージのアップデート</a></li><li><a href="#toc15" tabindex="0">SELinuxに強制させない設定</a></li><li><a href="#toc16" tabindex="0">設定中に本体のGUIがクラッシュした</a><ol><li><a href="#toc17" tabindex="0">復旧方法：キーボードショートカットで復旧</a></li></ol></li><li><a href="#toc18" tabindex="0">恒久対策として：スリープ・省電力設定を無効化する</a></li><li><a href="#toc19" tabindex="0">CUIモードをデフォルトにする</a></li></ol></li><li><a href="#toc20" tabindex="0">SSHのセキュリティ向上対策</a><ol><li><a href="#toc21" tabindex="0">SSHを鍵認証方式で運用</a></li><li><a href="#toc22" tabindex="0">秘密鍵のアクセス権限を厳しく設定</a></li><li><a href="#toc23" tabindex="0">公開鍵をサーバー側へコピー</a></li><li><a href="#toc24" tabindex="0">サーバー側へsshでログインし操作</a></li><li><a href="#toc25" tabindex="0">公開鍵を保存ファイル（authorized_keys）へ登録</a></li><li><a href="#toc26" tabindex="0">再度、鍵を使って、SSHログイン</a></li><li><a href="#toc27" tabindex="0">鍵認証以外ではログイン拒否</a></li><li><a href="#toc28" tabindex="0">ついでにリモートからのROOTログインも拒否設定します</a></li><li><a href="#toc29" tabindex="0">さらに、ポート番号を変更</a><ol><li><a href="#toc30" tabindex="0">WordPress環境構築まとめ</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">RockyLinux9.7 ダウンロード・インストール</span></h2>



<p class="wp-block-paragraph">ダウンロード・インストールの詳細はこちらを確認してください</p>


<a href="https://www.kazuban.com/blog/rockylinux9-3-install/#toc1" title="RockyLinux9.3で自宅サーバーを再構築V01・インストール。記事最後のリンクをすべて実行すれば、WordPressサイトが作れます" 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/rockylinux9-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/rockylinux9-160x90.png 160w, https://www.kazuban.com/blog/wp-content/uploads/2023/11/rockylinux9-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2023/11/rockylinux9-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.3で自宅サーバーを再構築V01・インストール。記事最後のリンクをすべて実行すれば、WordPressサイトが作れます</div><div class="blogcard-snippet internal-blogcard-snippet">2023年、このサイトは、centOS7 で構築していますが、サポート終了が近づいてきました。centOS8のサポートも既に終了しています。今回、RockyLinux9.3で再構築した記録のインストール編です。記事最後のリンクをすべて実行すれば、WordPressサイトが作れます</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.05</div></div></div></div></a>


<h3 class="wp-block-heading"><span id="toc2">有線デバイスを認識しない</span></h3>



<p class="wp-block-paragraph">wifiを利用していたので、あまり意識しませんでしたが、wifiでのトラブルがあったので、有線LANを利用しようとしましたが、認識しない状況になりました。<br>AIに聞きながらどうにか解決したので、ここに覚書としてメモしておきます</p>



<h4 class="wp-block-heading"><span id="toc3">インターフェースの確認:</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-eb2bac42de62835be3dda937f8314cc2"><code>nmcli device</code></pre>



<p class="wp-block-paragraph">通常、正常であればここに <code>enp...</code> や <code>eth0</code> といった名称のデバイスが表示されますが<br>リストに出てきませんでした。<br>AIに相談すると</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">リストにないということは、設定の問題ではなく「ドライバが読み込まれていない」か「ハードウェアが認識されていない」可能性が極めて高いです。<br>次の結果を教えてください</p>
</blockquote>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-05331d1794d81ca3a963e891db02c84b"><code>lspci -nn | grep -i net</code></pre>



<pre class="wp-block-preformatted">$ lspci -nn | grep -i net<br><br>08:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter [10ec:8176] (rev 01)<br><br>09:00.0 Ethernet controller [0200]: JMicron Technology Corp. JMC250 PCI Express Gigabit Ethernet Controller [197b:0250] (rev 05)</pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">原因が特定できました。搭載されている有線LANコントローラー <strong>「JMicron JMC250 [197b:0250]」</strong> は、Rocky Linux 9 (RHEL 9) の標準カーネルではサポート（ドライバが同梱）されていません。</p>
</blockquote>



<h4 class="wp-block-heading"><span id="toc4">JMicron用ドライバのインストール</span></h4>



<p class="wp-block-paragraph"><strong>JMicron JMC250 [197b:0250]」</strong> は、<strong>ELRepo</strong> リポジトリからドライバを提案してもらいましたが、結局、<strong>Rocky Linux 9 (EL9) 用には JMicron [197b:0250] のドライバが提供されていない</strong> ようです</p>



<h4 class="wp-block-heading"><span id="toc5">「ELRepo-kernel」から<strong>最新カーネル</strong>を試す（成功率：中）</span></h4>



<p class="wp-block-paragraph">成功率は「中」ですが、新しいカーネルには、稀に古いドライバが復活していたり、汎用ドライバで動く可能性があるとの事なので、やってみます</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-38c823367f30fee553e185a07eadf552"><code># 最新カーネルのインストール
sudo dnf --enablerepo=elrepo-kernel install kernel-ml

# 再起動して、起動メニューで新しいカーネル（数字が大きい方）を選択
sudo reboot</code></pre>



<p class="wp-block-paragraph">再起動後に <code>nmcli device</code> を確認</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-ba213791a48c5d7f3e3dfe53d34c1be2"><code><code>nmcli device</code></code></pre>



<pre class="wp-block-preformatted">DEVICE          TYPE      STATE            CONNECTION     <br>wlp8s0          wifi      接続済み         aterm-e41133-g <br>lo              loopback  接続済み (外部)  lo             <br>enp9s0f0        ethernet  切断済み         --             </pre>



<p class="wp-block-paragraph">認識されました</p>



<h4 class="wp-block-heading"><span id="toc6">ethernetデバイスを接続する</span></h4>



<p class="wp-block-paragraph">接続は「nmcli device connect デバイス名」で接続できます</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-689e3afaab145422f4651fa260505282"><code>sudo nmcli device connect enp9s0f0</code></pre>



<p class="wp-block-paragraph">その他、ネットワーク設定は、下記を参考にしてください</p>


<a href="https://www.kazuban.com/blog/rockylinux9-3-install/#toc20" title="RockyLinux9.3で自宅サーバーを再構築V01・インストール。記事最後のリンクをすべて実行すれば、WordPressサイトが作れます" 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/rockylinux9-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/rockylinux9-160x90.png 160w, https://www.kazuban.com/blog/wp-content/uploads/2023/11/rockylinux9-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2023/11/rockylinux9-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.3で自宅サーバーを再構築V01・インストール。記事最後のリンクをすべて実行すれば、WordPressサイトが作れます</div><div class="blogcard-snippet internal-blogcard-snippet">2023年、このサイトは、centOS7 で構築していますが、サポート終了が近づいてきました。centOS8のサポートも既に終了しています。今回、RockyLinux9.3で再構築した記録のインストール編です。記事最後のリンクをすべて実行すれば、WordPressサイトが作れます</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.05</div></div></div></div></a>


<h2 class="wp-block-heading"><span id="toc7">インストール直後の設定</span></h2>



<h3 class="wp-block-heading"><span id="toc8">ホームディレクトリの日本語表記を英語表記に変更</span></h3>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-989e0b2b47a876c70d3818e5d942e9cc"><code>LANG=C xdg-user-dirs-gtk-update</code></pre>



<h3 class="wp-block-heading"><span id="toc9">特定のユーザーにsudo を可能にする</span></h3>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-9c474bf7692b74cdd36e3b156951b4db"><code>su
visudo</code></pre>



<p class="wp-block-paragraph">visudo で、コメント行になっている、下記の「#」を外し有効にします<br>%wheel  ALL=(ALL)       NOPASSWD: ALL</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</span></p>



<pre class="wp-block-preformatted">・
・
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

・
## Same thing without a password
%wheel  ALL=(ALL)       NOPASSWD: ALL

</pre>



<p class="wp-block-paragraph">その後、特定ユーザーを、「wheel」グループに追加すればそのユーザーはパスワードなしで「sudo」実行が可能になります</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-e66091ba4547686988def2a935003ee9"><code>usermod -aG wheel hogehoge</code></pre>



<h2 class="wp-block-heading"><span id="toc10">SSH利用状況の確認</span></h2>



<p class="wp-block-paragraph">RockyLinux9では、ほとんどの選択でsshは自動起動している状態になっています。<br>動作は、「ssh」コマンドで確認できます</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-e210674ccc3e2c117da4c3dd2b01f946"><code>ssh</code></pre>



<p class="wp-block-paragraph">usage: ssh [・・・・」のような<br>コマンドの使い方を示すヘルプメッセージが表示されれば動作しています<br>また、sshサービスはファイヤーウォールでの制限対象ですが、こちらも標準では許可されていますが、確認しておきます<br>詳細は、下記記事を参照してください</p>


<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>


<p class="wp-block-paragraph">ここでは、sshの許可状態だけ確認します</p>



<h3 class="wp-block-heading"><span id="toc11">firewalldでのsshの確認</span></h3>



<p class="wp-block-paragraph">まず、「firewalld」の起動状態を確認してみます</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-264da623b30615bb5dff99a6b42c8751"><code>systemctl status firewalld</code></pre>



<p class="wp-block-paragraph">これで、<span class="inline-button-white-green">active (running)</span>になっていれば、起動しています</p>



<p class="wp-block-paragraph"><br>ファイヤーウォールのアクセスルール対象となるのはアクティブゾーンになります<br>まずは、アクティブゾーンを確認します</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-5a31ac658536adf047471b954cf52c16"><code> sudo firewall-cmd --get-active-zones</code></pre>



<pre class="wp-block-preformatted">public<br>  interfaces: wlp8s0</pre>



<p class="wp-block-paragraph">アクティブゾーンは「public」のみと言うのがわかりました<br>今回は「ssh」の許可状態は「public」の設定で確認すればわかります</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-b4186ff6ba37c42bfbb26b64ba12e3fc"><code>sudo firewall-cmd --list-all --zone=public</code></pre>



<pre class="wp-block-preformatted">public (active)<br>  target: default<br>  icmp-block-inversion: no<br>  interfaces: wlp8s0<br>  sources: <br>  services: cockpit dhcpv6-client <strong>ssh</strong><br>  ports: </pre>



<p class="wp-block-paragraph">「services」に、「ssh」があるので、許可されています</p>



<h2 class="wp-block-heading"><span id="toc12">SSHでリモート操作</span></h2>



<p class="wp-block-paragraph">上で確かめたように、RockyLinux9では、デフォルトでsshサービスもファイヤーウォールでの許可も利用可能な状態になっています。<br>「ssh」コマンドでアクセスしてみましょう。<br><span class="inline-button-white-black">windows</span><span class="inline-button-white-black">linux</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-2c86f09525352778c57ccf824fbc896f"><code>ssh hogehoge@192.168.*.* -p 22</code></pre>



<p class="wp-block-paragraph">ssh 「Linux側のユーザー@IPアドレス」 でパスワード入力で接続できます<br>「-p 22」は、ポート番号指定です。sshはデフォルトでは２２番ポートです。<br>デフォルトであれば、省略できます。<br>「-p 22」はオプションですが、違うポート番号の場合は、その番号を指定します。<br>また以前ポート番号などを変更していたなどで接続できない事もあります<br>その場合には、標準ポート番号「22」を指定する事で接続できるようになります<br>windowsターミナルでも同じコマンドです<br>接続ができれば、windowsから、Linuxマシンを殆どリモートで設定できます　<br>ローカル内だけでの運用であれば、この設定でもいいかもしれませんが、後ほどポート番号変更と鍵認証方式に変更しようと思います</p>



<h2 class="wp-block-heading"><span id="toc13">インストール後の設定２（SSHでも可）</span></h2>



<h3 class="wp-block-heading"><span id="toc14">まずは、パッケージのアップデート</span></h3>



<p class="wp-block-paragraph">sshアクセスができれば、windowsターミナルからでも操作できまます<br>インストール初期のアップデートで、<strong>依存関係の競合</strong>とかでエラーが表示される事があります<br>エラーメッセージでは、「<strong><code>--skip-broken</code></strong>」の付加のアドバイスが出ますが、ついでに「&#8211;allowerasing」オプションも追加したほうがいいようです</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-dbf7b835c8d9beee855cf791b2820f27"><code>sudo dnf update --skip-broken --allowerasing
sudo reboot</code></pre>



<h3 class="wp-block-heading"><span id="toc15">SELinuxに強制させない設定</span></h3>



<p class="wp-block-paragraph">SELinuxはセキュリティをより強固にする機能で、RockyLinuxなどRedHat系では標準で有効になっていますが、思うように動作しないトラブルも多いようです。<br>ポリシーを読み込まず、無効的な状態にする方法もありますが、警告のみでポリシーを強制しない「Permissiveモード」に設定にしようと思います</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-21ce97d967f607276247f2f467d51cd4"><code>su
vi /etc/selinux/config</code></pre>



<p class="wp-block-paragraph"><span class="inline-button-white-black">editor</span></p>



<pre class="wp-block-preformatted">・
・
#SELINUX=enforcing
SELINUX=permissive
・
・</pre>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-0da292311d89960f07dcab0d8a7f99f3"><code>reboot</code></pre>



<p class="wp-block-paragraph">再起動後、確認</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-2d0d180678d16125e959d48fb08c170e"><code>sudo getenforce</code></pre>



<p class="wp-block-paragraph">「Permissive」が返ってくれば、設定されています</p>



<h3 class="wp-block-heading"><span id="toc16">設定中に本体のGUIがクラッシュした</span></h3>



<p class="wp-block-paragraph">外部PCからsshで操作していて、たまに戻ると、画面がクラッシュしている場合があります<br>これはGUIのディスプレイマネージャー（gdm）がロックやスリープ状態になっているか、セッションがクラッシュしている場合に起こるようです</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h4 class="wp-block-heading"><span id="toc17">復旧方法：キーボードショートカットで復旧</span></h4>



<p class="wp-block-paragraph">私の状況は、マウスカーソルだけが動く状態だったので、その画面で：</p>



<ul class="wp-block-list">
<li><code>Ctrl + Alt + F2</code>（または F3〜F6）を押す → テキストコンソールに切り替え</li>



<li>ログイン後、以下を実行：</li>
</ul>
</blockquote>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-242d59062325eee127c4667a28c54431"><code>systemctl restart gdm</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><code>Ctrl + Alt + F1</code>（または F7）でGUI画面に戻る</p>
</blockquote>



<h3 class="wp-block-heading"><span id="toc18">恒久対策として：スリープ・省電力設定を無効化する</span></h3>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-0a8f75a95b8934b186dc361edf762568"><code># GNOMEのスクリーンセーバー・自動サスペンドを無効化
sudo -u ユーザー名 gsettings set org.gnome.desktop.screensaver lock-enabled false
sudo -u ユーザー名 gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'</code></pre>



<p class="wp-block-paragraph">このコマンドは、私の環境でSSH経由では、X11のDISPLAY環境変数がないとのエラーになりました<br>ssh経由の場合には、DISPLAY変数を指定して実行します</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">ssh</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-a65d404f71ba944ea071de0a2531ff44"><code>sudo -u ユーザー名 DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u ユーザー名)/bus gsettings set org.gnome.desktop.screensaver lock-enabled false
sudo -u ユーザー名 DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u ユーザー名)/bus gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'</code></pre>



<p class="wp-block-paragraph">確認方法</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-e5ac6b0bd24ebadb90b5b2be5d764f06"><code>sudo -u ユーザー名 DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u ユーザー名)/bus gsettings get org.gnome.desktop.screensaver lock-enabled
sudo -u ユーザー名 DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u ユーザー名)/bus gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type</code></pre>



<p class="wp-block-paragraph">下記の結果がでれば、正常に反映されている</p>



<pre class="wp-block-preformatted">false
'nothing'</pre>



<h3 class="wp-block-heading"><span id="toc19">CUIモードをデフォルトにする</span></h3>



<p class="wp-block-paragraph">SSH経由でのリモートがほとんどになれば、CUIモードのほうがトラブルは少なそうなので、CUIモードに設定します</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-c3178d498b5bb57fa97fd43b6d8c437a"><code>sudo systemctl set-default multi-user.target</code></pre>



<p class="wp-block-paragraph">これで、再起動後はGUIなしで起動します。<br>もし、GUIが必要になったら、</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">linux</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-d57fa7f501579522f9c93807506dcb59"><code>sudo systemctl start gdm</code></pre>



<p class="wp-block-paragraph">再度GDMを停止させCUIに戻るには、サーバー機で操作できる場合には</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><code>Ctrl</code> + <code>Alt</code> + <code>F2</code> </p>
</blockquote>



<p class="wp-block-paragraph">または、リモートも含めたコマンド操作の場合は</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-08bfc53d6227476c5eac17bbb1f1b4df"><code>sudo systemctl stop gdm</code></pre>



<p class="wp-block-paragraph">このコマンド操作で、画面が止まったように見える場合は、サーバー機で</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">上記の <code>Ctrl</code> + <code>Alt</code> + <code>F2</code> </p>
</blockquote>



<h2 class="wp-block-heading"><span id="toc20">SSHのセキュリティ向上対策</span></h2>



<h3 class="wp-block-heading"><span id="toc21">SSHを鍵認証方式で運用</span></h3>



<p class="wp-block-paragraph">「鍵認証方式」は、「秘密鍵」と「公開鍵」のペアの鍵を作成し、アクセスする側は「秘密鍵」が必要になり、アクセスされる（サーバー）側には、「公開鍵」を登録します<br>一般的には、アクセス側で鍵を生成し、「公開鍵」の登録をサーバーへお願いします<br>鍵生成は、windowsでもLinuxでも、「ssh-keygen」コマンドで生成できます<br>今回は、windowsターミナルで生成します</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">windows</span><span class="inline-button-white-black">linux</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-f485f29dad86e220f0299c4721d2a893"><code>ssh-keygen -t ed25519</code></pre>



<pre class="wp-block-preformatted">Generating public/private ed25519 key pair.<br>Enter file in which to save the key (C:\Users\hogehoge/.ssh/id_ed25519):<br>Enter passphrase (empty for no passphrase):<br>Enter same passphrase again<br>Your identification has been saved in C:\Users\hogehoge/.ssh/id_ed25519<br>Your public key has been saved in C:\Users\hogehoge/.ssh/id_ed25519.pub<br>The key fingerprint is:<br>SHA256:o2ojnUu7UflR12VZq2yOcTY/Ky-VzibafGh/PJbPe6C hogehoge@hoge-Pc<br>The key's randomart image is:<br>+--[ED25519 256]--+<br>|             .+.o|<br>|               Oo|<br>|     o + o .   . |<br>|    . Z   . . o..|<br>|    . o     . *AC|<br>+----[SHA256]-----+</pre>



<h3 class="wp-block-heading"><span id="toc22">秘密鍵のアクセス権限を厳しく設定</span></h3>



<p class="wp-block-paragraph">下記のアクセス権の設定は<span class="marker-under">、windowsターミナルでの操作コマンドです。</span><br><a href="https://www.kazuban.com/blog/rockylinux9-3-ssh/#toc6">Linuxでの操作は、こららを参考</a>にしてください</p>



<p class="wp-block-paragraph"><strong>継承の無効化と権限のクリア</strong></p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">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-55057d8137d3225f853cd8fbb2b997d1"><code>icacls "$HOME\.ssh\id_ed25519" /inheritance:r</code></pre>



<p class="wp-block-paragraph"><strong>ユーザーにのみ読み取り権限を付与</strong></p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">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-1fec2829fc7f6149c61f5520e00e7edb"><code>icacls "$HOME\.ssh\id_ed25519" /grant:r "$($env:USERNAME):R"</code></pre>



<p class="wp-block-paragraph"><strong>「自分自身」以外のユーザー権限を削除</strong></p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">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-fb9acaff7a71f8e5ab9e61371e31a6e4"><code>icacls "$HOME\.ssh\id_ed25519" /remove "SYSTEM"
icacls "$HOME\.ssh\id_ed25519" /remove "Administrators"
icacls "$HOME\.ssh\id_ed25519"</code></pre>



<p class="wp-block-paragraph">エクスプローラの「プロパティ」⇒「セキュリティ」でも確認できます</p>



<h3 class="wp-block-heading"><span id="toc23">公開鍵をサーバー側へコピー</span></h3>



<p class="wp-block-paragraph">作成した、「id_ed25519.pub」をサーバー側ユーザーの「.ssh」ディレクトリへコピー<br>・windowsの自分自身のホームの「.ssh」に移動<br>・scp コマンドへ、サーバー側ユーザーの「.ssh」へコピー</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">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-77f112f24c6ea76369f385fb3a48c926"><code>cd $HOME\.ssh
scp .\id_ed25519.pub hogehoge@192.168.*.*:.ssh</code></pre>



<h3 class="wp-block-heading"><span id="toc24">サーバー側へsshでログインし操作</span></h3>



<p class="wp-block-paragraph">windows側から、sshログインし、「.ssh」ディレクトリへ移動し確認</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">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-cbb30455ff64f53a0a4d20201e381f9b"><code>ssh hogehoge@192.168.*.*</code></pre>



<p class="wp-block-paragraph">ログイン後、コピーされているか、確認</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">ssh</span><span class="inline-button-white-black">linux</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-d311e1c2cf25a2b1e3449f544dac3aae"><code>cd ./.ssh
ls -la</code></pre>



<h3 class="wp-block-heading"><span id="toc25">公開鍵を保存ファイル（authorized_keys）へ登録</span></h3>



<p class="wp-block-paragraph">コピーされた公開鍵を、保存用のファイルへ登録し、そのファイルのアクセス権は厳しくします<br>持ってきて、公開鍵は削除しておきます</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">ssh</span><span class="inline-button-white-black">linux</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-5fa8cfde406b789b7eac31f01da73ff7"><code>cd ~/.ssh 
cat id_ed25519.pub &gt;&gt; authorized_keys 
chmod 600 authorized_keys
rm id_ed25519.pub
exit</code></pre>



<h3 class="wp-block-heading"><span id="toc26">再度、鍵を使って、SSHログイン</span></h3>



<p class="wp-block-paragraph">ssh に「i」オプションで鍵指定</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">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-1975d4201d15ea6f3a10809dd2ddff6c"><code>ssh -i .ssh/id_ed25519 hogehoge@192.168.*.*</code></pre>



<p class="wp-block-paragraph">ログイン時、鍵生成時登録したパスフレーズを入力し、ログイン</p>



<h3 class="wp-block-heading"><span id="toc27">鍵認証以外ではログイン拒否</span></h3>



<p class="wp-block-paragraph">鍵を使ってのログインが確認できたら、鍵以外でのログインは拒否する設定をしておきます<br>設定は、「/etc/ssh/sshd_config」ファイルの”PasswordAuthentication”を&#8221;no&#8221;に設定します<br>まずは、ファイルをバックアップして、編集します</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">ssh</span><span class="inline-button-white-black"> linux</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-07092de14441928c5bd57c322f761275"><code>sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.org
sudo vi /etc/ssh/sshd_config</code></pre>



<p class="wp-block-paragraph"><span class="inline-button-white-black">editor</span></p>



<pre class="wp-block-preformatted">・<br>・<br>#PasswordAuthentication yes<br>PasswordAuthentication no<br>・<br>・<br></pre>



<h3 class="wp-block-heading"><span id="toc28">ついでにリモートからのROOTログインも拒否設定します</span></h3>



<p class="wp-block-paragraph">「/etc/ssh/sshd_config」ファイルの”PermitRootLogin”も&#8221;no&#8221;に設定</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">editor</span></p>



<pre class="wp-block-preformatted">・<br>・<br>#PermitRootLogin prohibit-password<br>PermitRootLogin no<br>・<br>・</pre>



<h3 class="wp-block-heading"><span id="toc29">さらに、ポート番号を変更</span></h3>



<p class="wp-block-paragraph">「ssh」のポートは「22番」が標準なので、自動スキャンなどのアタックが増えるので、違う番号に変更しておきます。<br>ポート番号も「/etc/ssh/sshd_config」ファイルの”Port”で設定します<br>ポート番号は登録済み番号などもあるので、49152–65535の範囲に設定します</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">editor</span></p>



<pre class="wp-block-preformatted">・<br>・<br>#Port 22<br>Port 55522<br>・<br>・</pre>



<p class="wp-block-paragraph">「22番」は「ssh」サービスのデフォルトなので、firewalldの設定でsshは「22番」になります<br>firewalld設定は、ポート番号を直接設定する事もできますが、やはりsshのポート番号を変更する方法がfirewalldは再起動だけで、設定は不要なのでスマートだと思います<br>デフォルト設定は、「 /usr/lib/firewalld/services/ ssh.xml 」に保存されているので、<br>そのファイルを「 /etc/firewalld/services /」にコピーして編集します。</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">ssh</span><span class="inline-button-white-black"> linux</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-aea5200a7fb91738b5f94bf845a5468d"><code>sudo cp -p /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
sudo cd /etc/firewalld/services/
sudo ls /etc/firewalld/services/
sudo vi /etc/firewalld/services/ssh.xml</code></pre>



<p class="wp-block-paragraph"><span class="inline-button-white-black">editor</span></p>



<pre class="wp-block-preformatted">・<br>・<br>&lt;port protocol="tcp" port="22"/&gt;<br>↓<br>&lt;port protocol="tcp" port="55522"/&gt;<br>・<br>・</pre>



<p class="wp-block-paragraph">sshとfirewall　サービスを再起動して、アクセスにはポート番号を明示します</p>



<p class="wp-block-paragraph"><span class="inline-button-white-black">ssh</span><span class="inline-button-white-black"> linux</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-7ad2547c0964f6674c7bd7a39177265f"><code>sudo systemctl reload sshd.service
sudo firewall-cmd --reload
ssh  -p 55522 hogehoge@192.168.*.*</code></pre>



<p class="wp-block-paragraph">ここまでで、RockyLinux9.7のインストールと、やっておきたい初期設定を解説しました<br>「ssh」の設定も完了しているので、windowsターミナルからでも実行できます</p>



<hr class="wp-block-separator has-text-color has-indigo-color has-alpha-channel-opacity has-indigo-background-color has-background is-style-wide" style="margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50)"/>



<h4 class="wp-block-heading"><span id="toc30">WordPress環境構築まとめ</span></h4>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-7387b849 wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><span class="inline-button-white-blue"><a href="https://www.kazuban.com/blog/wordpress-install-no1/">１</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-f04e8d7fb6e2787b0f3d9b4d2d85c493 wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no2/">２</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-1476c951253852d4a55d81c877244e82 wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no3/">３</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-a2aa1b38f71c6b12de00dd0cb2c11bed wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no4/">４</a></span></p>



<p class="has-black-color has-text-color has-link-color wp-elements-eceba6d3b11b45ccabb96c64463aa72c wp-block-paragraph"><span class="inline-button-white-black"><a href="https://www.kazuban.com/blog/wordpress-install-no5/">５</a></span></p>



<p class="has-light-grey-color has-text-color has-link-color wp-elements-6ffea2dacd2a225d010208a9488b8f07 wp-block-paragraph">６</p>



<p class="wp-block-paragraph"></p>
</div>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<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 class="wp-block-paragraph"><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-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">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 class="wp-block-paragraph">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 class="wp-block-paragraph">「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 class="wp-block-paragraph">「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 class="wp-block-paragraph">上記は正常な例ですが、古い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 class="wp-block-paragraph">dependency failed to start: container docker-db-1 is unhealthy</p>
</blockquote>



<p class="wp-block-paragraph">この時も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 class="wp-block-paragraph">ログを見る限り、データベースの初期化自体は正常に完了しています (<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 class="wp-block-paragraph">このエラーは、PostgreSQLサーバーが起動してリカバリなどの内部処理を行っている最中に、外部からの接続要求（この場合はおそらくDockerのヘルスチェックや、依存するDifyコンテナからの初期接続試行）があった場合に発生することがあります。</p>



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



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



<p class="wp-block-paragraph"><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 class="wp-block-paragraph"><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 class="wp-block-paragraph">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 class="wp-block-paragraph"><code>start_period</code> が指定されていない場合、コンテナが起動を開始すると同時にヘルスチェックが始まります。今回のデータベースのログで見たように、起動直後の一時的な準備期間中に接続を試みると <code>FATAL: the database system is starting up</code> のようなエラーが発生することがあります。</p>



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



<p class="wp-block-paragraph"><strong>解決策:</strong></p>



<p class="wp-block-paragraph"><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 class="wp-block-paragraph">アドバイス通りに、編集して再度「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 class="wp-block-paragraph">「docker compose up」が正常に終了すると、Webブラウザで「http://localhost/install」へアクセスすると「dify」の初期設定が開きます</p>



<figure class="wp-block-image size-large"><img loading="lazy" 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 class="wp-block-paragraph">とりあえず、起動しました。<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 loading="lazy" 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 class="wp-block-paragraph"><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 class="wp-block-paragraph">・windowsターミナル起動<br>・wslコマンドで、ubuntuターミナル起動<br>・ubuntuターミナルでカレントディレクトリを、Difyのクローンディレクトリに移動<br>・「docker compose up -d」 コマンド実行</p>
</blockquote>



<p class="wp-block-paragraph">このような手順が必要ですが、問題なのは、<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 class="wp-block-paragraph">すごいです。<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 class="wp-block-paragraph">・上記の作成したバッチファイルを、適当は場所へ保存します<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 loading="lazy" 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 class="wp-block-paragraph">特に必須ではないですが、ターミナルは起動状態にさせるので邪魔になる場合、作成したショートカットファイルを、マウス右ボタンで「プロパティ」を開きます。<br>「プロパティ」の「ショートカット」タブの<span class="marker-under">「実行時の大きさ」を「最小化」</span>に設定すると、起動時にタスクバーに最小化状態で起動できます。</p>
</div></div>



<p class="wp-block-paragraph">これで、再起動すると、自動起動したターミナルはタスクバーへ最小化状態ですが、環境によっては起動途中の場合があるので、すぐに使用したい場合には、一度開いて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 class="wp-block-paragraph">この画面が開くと、ローカル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 class="wp-block-paragraph">同じ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 class="wp-block-paragraph">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 class="wp-block-paragraph">詳細な情報ありがとうございます！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 class="wp-block-paragraph">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 class="wp-block-paragraph">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 class="wp-block-paragraph">なるほど、LAN上の他のPCからアクセスできるようにしたい、ということですね。承知いたしました。</p>



<p class="wp-block-paragraph">ご自身の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 class="wp-block-paragraph"><strong>設定手順</strong></p>



<p class="wp-block-paragraph">以下の手順を<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 class="wp-block-paragraph"><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 class="wp-block-paragraph">この手順で、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 class="wp-block-paragraph">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 class="wp-block-paragraph"><code>docker ps</code> の出力結果、ありがとうございます。</p>



<p class="wp-block-paragraph">コンテナ <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 class="wp-block-paragraph">これは、以下のことを意味しています。</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 class="wp-block-paragraph"><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 class="wp-block-paragraph"><strong>結論</strong></p>



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



<p class="wp-block-paragraph">したがって、先ほどのポートフォワーディング設定のコマンドは、ポート番号 <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 class="wp-block-paragraph">これで、 <code>http://192.168.0.94</code> (ポート80は省略可能) でアクセスできるはずです。</p>



<p class="wp-block-paragraph">もし将来的に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 class="wp-block-paragraph"><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 class="wp-block-paragraph">コントロールパネル→システムとセキュリティ→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 class="wp-block-paragraph">管理者権限の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 class="wp-block-paragraph">「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 class="wp-block-paragraph">これで無事に「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 class="wp-block-paragraph">やっと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 class="wp-block-paragraph">次に、この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 class="wp-block-paragraph">ネット上でも、多くの情報があると思いますが、このサイトでも以前の記事で紹介しています。</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 class="wp-block-paragraph">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 class="wp-block-paragraph">以前の記事では、「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 class="wp-block-paragraph">この状態では、「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 class="wp-block-paragraph">現在は、仮想環境として「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-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">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 class="wp-block-paragraph">再度、クリーンな状態から再インストールしたい場合もあると思います<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 class="wp-block-paragraph">★Docker Desktopのアンインストール<br>1. 「設定」アプリを開く:<br>　Windowsキー + Iキーを押すか、スタートメニューから「設定」を選択します。<br>2. 「アプリ」を開く:<br>　「アプリ」をクリックします。<br>3. 「アプリと機能」を開く:<br>　左側のメニューから「アプリと機能」を選択します。<br>4. Docker Desktopを選択してアンインストール:<br>　アプリの一覧から「Docker Desktop」を見つけて選択し、「アンインストール」をクリックします。<br>　画面の指示に従ってアンインストールを完了させます。</p>



<p class="wp-block-paragraph">★ 関連するファイルの削除 (オプション)<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 class="wp-block-paragraph">★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 class="wp-block-paragraph">これらの手順に従うことで、WSLを完全に削除することができます。</p>
</blockquote>



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



<p class="wp-block-paragraph">古い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 class="wp-block-paragraph">「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 class="wp-block-paragraph">新しいユーザーの作成方法は、ネット上に情報がありますので、検索してみてください。<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 class="wp-block-paragraph">いよいよインストールを始めますが、２つの方法<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 class="wp-block-paragraph">インストール自体はどちらも、簡単です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><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 class="wp-block-paragraph">「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 class="wp-block-paragraph"><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 class="wp-block-paragraph">設定されました。<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 class="wp-block-paragraph">通常は「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 class="wp-block-paragraph">開いた設定ファイルに、<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 class="wp-block-paragraph">この設定で、現ユーザーは「sudoグループ」に登録され「sudo」コマンドが実行できます。</p>



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



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



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



<p class="wp-block-paragraph">古いバージョンがインストールされている可能性がある場合には、念のため次のコマンドを実行してアンインストールしておきます</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 class="wp-block-paragraph">完全に削除するには、次のコマンドでボリュームやイメージデータを削除します</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 class="wp-block-paragraph">・依存パッケージのインストール</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 class="wp-block-paragraph">・ディレクトリを作製し、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 class="wp-block-paragraph">・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 class="wp-block-paragraph">・パッケージ更新＆インストール</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 class="wp-block-paragraph">・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 class="wp-block-paragraph">・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 class="wp-block-paragraph">動作確認で「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 class="wp-block-paragraph">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 class="wp-block-paragraph">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 class="wp-block-paragraph">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 class="wp-block-paragraph">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 class="wp-block-paragraph">次回、DockerにDifyのコンテナを作成しようと思います。<br>LAN内でも別のPCからのアクセス可能にしたいので、設定状況をレポートします。</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DifyとOllamaを連携させ、ローカルチャットボット環境を作る</title>
		<link>https://www.kazuban.com/blog/dify-ollama/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 29 Mar 2025 23:22:16 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Dify]]></category>
		<category><![CDATA[Ollama]]></category>
		<category><![CDATA[チャットボット]]></category>
		<category><![CDATA[ローカルLLM]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=10632</guid>

					<description><![CDATA[前回は、DifyとLM Studioを連携させて、ローカル環境を作成しました。ただし、LM Studioは、完全にオープンライセンスではないようで、企業で使用する場合には、確認が必要です。Ollamaのほうが、自由に使え [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">前回は、<strong>Dify</strong>と<strong>LM Studio</strong>を連携させて、ローカル環境を作成しました。<br>ただし、LM Studioは、完全にオープンライセンスではないようで、企業で使用する場合には、確認が必要です。<br>Ollamaのほうが、自由に使えそうです。<br>ただし、いろいろなLLMを試してみたり、チャットが主な目的な場合には、LM Studioのほうが、GUIでの操作ができるので、初心者はLM Studioが取りつきやすいと思います。<br>特に、使用ＰＣスペックでの動作推測やモデルの詳細などは、分かりやすいです。<br>Difyと連携させて利用する場合では、繋がってしまえば、あまり違いはないかもしれません。<br>いろんなモデルをLM Studioでの試してみて、気に入ったモデルをOllama経由でDify連携の使い方もありかな、と思います。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">インストール</a></li><li><a href="#toc2" tabindex="0">モデルをダウンロードして起動</a></li><li><a href="#toc3" tabindex="0">Difyとの連携</a></li><li><a href="#toc4" tabindex="0">Windows 環境変数の編集</a><ol><li><a href="#toc5" tabindex="0">Ollama用、環境変数の追加</a></li><li><a href="#toc6" tabindex="0">Dify にもモデルを登録する</a></li></ol></li><li><a href="#toc7" tabindex="0">あとがき</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">OllamaをWindowsにインストールするには、<a href="https://ollama.com/download/windows">下記サイトから</a>インストール実行ファイル「OllamaSetup.exe」をダウンロード・実行でインストールできます。</p>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="745" height="621" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/download01.png" alt="" class="wp-image-10804 size-full" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/download01.png 745w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/download01-500x417.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/download01-300x250.png 300w" sizes="(max-width: 745px) 100vw, 745px" /></figure><div class="wp-block-media-text__content">
<p class="wp-block-paragraph">インストール完了後、何事もなく終了ますが、スタートメニューには登録され、タスクバーの「隠れているインジケータ」にアイコンがあれば起動しています。<br>コマンドプロンプトなどを開いて、「ollama ーーhelp」コマンドで確認してみます。</p>



<p class="wp-block-paragraph"></p>
</div></div>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-86dcacdbec62004d37fbd6dca50367b5"><code>PS C:\Users\hoge&gt; <strong>ollama --help</strong>
Large language model runner

Usage:
  ollama &#91;flags]
  ollama &#91;command]

Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  stop        Stop a running model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  ps          List running models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information

Use "ollama &#91;command] --help" for more information about a command.
PS C:\Users\hoge&gt;</code></pre>



<p class="wp-block-paragraph">エラーが出なければ、無事に動作しています。<br>「ollama ーーversion」でバージョンを確認できます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-bc0fb3908fbf723d66701c0558b774e8"><code>PS C:\Users\hoge&gt; <strong>ollama --version</strong>
ollama version is 0.6.2</code></pre>



<h2 class="wp-block-heading"><span id="toc2">モデルをダウンロードして起動</span></h2>



<p class="wp-block-paragraph">LLMを利用するにいは、公開されているモデルを下記から確認、ダウンロードできます。<br><a href="https://ollama.com/search">https://ollama.com/search</a><br>一覧から、利用したいモデル名をクリックすると、さらに「1b」「4b」など、モデルサイズで数種類でてきます。<br>一般的に小さい方が、性能は低い傾向にありますが、レスポンスはよくなります。<br>自分の環境で、レスポンスと相談して、大きいモデルがいいと思います。<br>LM Studio の場合、<a href="https://www.kazuban.com/blog/lm-studio-first-try/#toc5">自分のＰＣスペックとの相性をある程度アイコンで表示</a>してくれますが、Ollamaでは、とりあえず試してみて・・になるのかな～？<br>LM Studioで体験しておくと、自分の環境でも大丈夫なモデルサイズは察しがつきます。</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="600" data-id="10814" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models-800x600.png" alt="" class="wp-image-10814" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models-800x600.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models-500x375.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models-300x225.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models-768x576.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models.png 1024w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="601" data-id="10810" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models01-800x601.png" alt="" class="wp-image-10810" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models01-800x601.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models01-500x375.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models01-300x225.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models01-768x577.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama-models01.png 1024w" sizes="(max-width: 800px) 100vw, 800px" /></figure>
</figure>



<p class="wp-block-paragraph">ターミナルで「<strong>ollama run </strong>[<em>モデル名</em>]」でダウンロード後実行できます。<br>モデル名は、ダウンロードサイトのコピーアイコン<img loading="lazy" decoding="async" width="24" height="25" class="wp-image-10792" style="width: 24px;" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/copy_icon.png" alt="">を利用するとモデル名をクリップボードへコピーできるので便利です。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-a170e2946e94ec5938c3f995bac076db"><code>PS C:\Users\hoge&gt; <strong>ollama run gemma3:4b</strong>
pulling manifest
pulling aeda25e63ebd... 100% ▕███████████▏ 3.3 GB
pulling e0a42594d802... 100% ▕███████████▏  358 B
pulling dd084c7d92a3... 100% ▕███████████▏ 8.4 KB
pulling 3116c5225075... 100% ▕███████████▏   77 B
pulling b6ae5839783f... 100% ▕███████████▏  489 B
verifying sha256 digest
writing manifest
success
&gt;&gt;&gt; 始めまして
はじめまして！こちらこそ、ご挨拶ありがとうございます。

何か私にできることはありますか？ 例えば、

*   何か質問に答える
*   文章を作成する
*   アイデアを出し合う
*   ただおしゃべりする

など、どんなことでも構いません。😊

&gt;&gt;&gt; Send a message (/? for help)</code></pre>



<p class="wp-block-paragraph">「&gt;&gt;&gt; <span class="cocoon-custom-text-1">Send a message (/? for help)</span>」のプロンプトがでると、会話ができます。<br><span class="marker-under-red">会話の終了は<strong>「/bye」</strong></span>です。</p>



<h2 class="wp-block-heading"><span id="toc3">Difyとの連携</span></h2>



<p class="wp-block-paragraph">前回、<a href="https://www.kazuban.com/blog/dify-lmstudio/#toc8">「LM Studio」との連携で、LM Studioプラグインの設定方法</a>と、ほとんど同じです。</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider01.png"><img loading="lazy" decoding="async" width="800" height="518" data-id="10821" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider01-800x518.png" alt="" class="wp-image-10821" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider01-800x518.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider01-500x324.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider01-300x194.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider01-768x497.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider01.png 1024w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider02.png"><img loading="lazy" decoding="async" width="800" height="518" data-id="10820" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider02-800x518.png" alt="" class="wp-image-10820" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider02-800x518.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider02-500x324.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider02-300x194.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider02-768x497.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/model-provider02.png 1024w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure>
</figure>



<p class="wp-block-paragraph">「設定」の「モデルプロバイダー」から「Ollama」プラグインをインストールします。<br>インストールが完了したら、再度「設定」の「モデルプロバイダー」「Ollamaモデル」に「モデルを追加」で<a href="#toc2">上記でダウンロードした</a>モデルと「URL（ＩPアドレス）」を設定します。<br>ダウンローズ済みモデルは、ターミナルから「ollama list」コマンドで確認できます</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-4560adfa84aede7277cd41712e345324"><code>PS C:\Users\hoge&gt; <strong>ollama list</strong>
NAME           ID              SIZE      MODIFIED
llama3.2:1b    baf6a787fdff    1.3 GB    8 minutes ago
gemma3:4b      c0494fe00251    3.3 GB    26 minutes ago
PS C:\Users\hoge&gt; <strong>ollama run llama3.2:1b</strong>
&gt;&gt;&gt; /bye
PS C:\Users\hoge&gt;
</code></pre>



<p class="wp-block-paragraph">また、「Base URL」は「ollama」が動作している、PCの「IPアドレス」に「<span class="marker-under-red">:11434</span>」のポート番号を付加して設定します。<br>ただし、URLが<span class="marker-under">LAN上の他のPCのIP（localhost以外の場合）でエラーが発生</span>してしまう場合、下記の「環境変数の編集」を試してみてください。<br>正常に「保存」が終了すると、<a href="https://www.kazuban.com/blog/dify-lmstudio/#toc7">前回記事の「LM Studio」の場合と同様に</a>、Difyで利用するモデルとして選択できるようになります。</p>



<h2 class="wp-block-heading"><span id="toc4">Windows 環境変数の編集</span></h2>



<p class="wp-block-paragraph">「Ollama」の環境変数について、geminiに聞いて、下記回答をもらいました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Ollamaの環境変数についてですね。Ollamaは、ローカルで大規模言語モデル（LLM）を実行するためのツールであり、いくつかの環境変数を使用してその動作をカスタマイズできます。主な環境変数は以下の通りです。</p>



<ul class="wp-block-list">
<li><strong>OLLAMA_HOST</strong>:
<ul class="wp-block-list">
<li>Ollamaがリッスンするホストアドレスを指定します。デフォルトは<code>127.0.0.1</code>であり、ローカルマシンからの接続のみを受け付けます。ネットワーク上の他のマシンからOllamaにアクセスできるようにするには、この変数を<code>0.0.0.0</code>に設定します。</li>
</ul>
</li>



<li><strong>OLLAMA_MODELS</strong>:
<ul class="wp-block-list">
<li>モデルの重みを保存するディレクトリのパスを指定します。デフォルトでは、Ollamaは特定のデフォルトディレクトリにモデルを保存しますが、この変数を使用して別の場所を指定できます。これにより、モデルファイルを別のドライブやディレクトリに保存することができます。</li>
</ul>
</li>



<li><strong>OLLAMA_ORIGINS</strong>:
<ul class="wp-block-list">
<li>クロスオリジンリクエストを許可するオリジンを指定します。OLLAMA APIをWebアプリケーションから利用する場合に設定します。</li>
</ul>
</li>



<li><strong>OLLAMA_DEBUG</strong>:
<ul class="wp-block-list">
<li>デバッグモードを有効にします。Ollamaのデバッグ情報を表示する場合に設定します。</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">これらの環境変数を設定することで、Ollamaの動作を柔軟に制御できます。環境変数の設定方法は、オペレーティングシステムによって異なります。</p>



<ul class="wp-block-list">
<li><strong>Windows</strong>:
<ul class="wp-block-list">
<li>「システム環境変数の編集」から設定します。</li>
</ul>
</li>



<li><strong>macOS / Linux</strong>:
<ul class="wp-block-list">
<li>ターミナルから<code>export</code>コマンドを使用して一時的に設定するか、<code>.bashrc</code>や<code>.zshrc</code>などのファイルに記述して永続的に設定します。また、サービスとしてOllamaを実行している場合は、systemdの設定ファイルに環境変数を記述します。</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">より詳細な情報や具体的な設定方法については、Ollamaの公式ドキュメントや関連するオンラインリソースを参照することをおすすめします。</p>
</blockquote>



<p class="wp-block-paragraph">他のサイトをみると、環境変数を設定しないでも、正常に動作しているような記事も見かけましたし、「<strong>OLLAMA_HOST</strong>」だけ設定している記事もありました。<br>筆者の場合も、「<strong>OLLAMA_HOST</strong>」だけで正常に動作ましたが、「<strong>OLLAMA_ORIGINS</strong>」も設定しました。<br>また、「<strong>OLLAMA_MODELS</strong>」を設定すると、デフォルト（Cドライブ）以外にモデルを保存できます</p>



<h3 class="wp-block-heading"><span id="toc5">Ollama用、環境変数の追加</span></h3>



<p class="wp-block-paragraph">環境変数を行う前には、「ollama」は終了しておきましょう。<br>タスクバー右の「^」ボタン「隠れているインジケーター」から、Ollamaアイコン右クリック「Quit Ollama」でも終了できます。<br>Windows検索バーに「<strong>環境変数</strong>」と入力すると「<span class="marker-under-red"><strong>システム環境変数の編集</strong></span>」が見つかるので、「環境変数」ボタンをクリックして上段の「<strong>ユーザー環境変数</strong>」の「<strong>新規</strong>」で環境変数を追加します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="479" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/environment_-variables-800x479.png" alt="" class="wp-image-10831" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/environment_-variables-800x479.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/environment_-variables-500x299.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/environment_-variables-300x180.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/environment_-variables-768x460.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/environment_-variables-1536x920.png 1536w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/environment_-variables.png 1622w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">OLLAMA_HOST : 0.0.0.0<br>OLLAMA_ORIGINS : *<br>OLLAMA_MODELS : D:\Ollama_Models</p>
</blockquote>



<p class="wp-block-paragraph">ただし、「OLLAMA_MODELS」の設定は、注意が必要です。<br>環境変数追加前に、ダウンロードしたモデルは、自働的には移動してはくれません。<br><span class="marker-under">再度、ダウンロード</span>するか、デフォルトでは<br>「<strong>C:\Users\</strong>[ユーザー]<strong>\.ollama\models</strong>」の下に登録されているので、環境変数変更前に指定フォルダへコピーしておくと、反映されると思いますが、試してはいません。<br>環境変数変更後でも、Ollamaを起動する前に、設定したフォルダへ移動してもいいかもしれません。<br>環境変数の編集が適応されているかは、下記で確認できます。<br><span class="marker-under"><strong>コマンドプロンプト</strong>と<strong>PowerShell</strong>で指令が違うので注意してください。</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-c7c40c73e4e678be78649e5675edb001"><code>★コマンドプロンプト
C:\Users\hoge&gt;echo %OLLAMA_HOST%
0.0.0.0

C:\Users\hoge&gt;echo %OLLAMA_MODELS%
D:\Ollama_Models

C:\Users\hoge&gt;echo %OLLAMA_ORIGINS%
*

★PowerShell
PS C:\Users\hoge&gt; $env:OLLAMA_HOST
0.0.0.0

PS C:\Users\hoge&gt; $env:OLLAMA_MODELS
D:\Ollama_Models

PS C:\Users\hoge&gt; $env:OLLAMA_ORIGINS
*</code></pre>



<h3 class="wp-block-heading"><span id="toc6">Dify にもモデルを登録する</span></h3>



<p class="wp-block-paragraph">モデルフォルダを変更した場合には、「<strong>ollama list</strong>」コマンドで確認できます。<br>正常に変更されていれば、<span class="marker-under-red">再度「Olama」を起動</span>して、「Dify」の「Ollama」モデルのプラグイン設定で追加できるようになります。<br><a href="https://www.kazuban.com/blog/dify-lmstudio/#toc8">追加方法は、LM Studio 編を参考にしてください。</a></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="333" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_plugin_add-800x333.png" alt="" class="wp-image-10853" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_plugin_add-800x333.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_plugin_add-500x208.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_plugin_add-300x125.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_plugin_add-768x320.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_plugin_add.png 1009w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">追加したモデルは、Difyで作成するアプリから、ollamaを利用できるようになります。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="486" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_model_select-800x486.png" alt="" class="wp-image-10854" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_model_select-800x486.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_model_select-500x304.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_model_select-300x182.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_model_select-768x466.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/ollama_model_select.png 1248w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



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



<p class="wp-block-paragraph">これで、完全ローカルで、DifyからOllamaも利用できるようになりました。<br>筆者の環境では、「Windows環境変数の編集」が必要だったので、少し戸惑いましたが、どうにか利用できるようになりました。<br>LM Studioがいいのか？Ollamaがいいのか？は、自分の環境や使い勝手で使い分けてください。<br>選択肢があるというのは、いいことだと思います。<br>さぁ、いよいよ、Difyの勉強を始められる環境は出来上がりましたが・・・・<br>ちょっと、Docker Desktop の環境なのが気になっています。<br>WSLでUbuntu24.04を起動させた環境か、現在稼働中のLinuxマシンか・・・<br>いずれにしても、linux環境で立ち上げてみたくなってきました。<br></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ローカルでDifyとLM_Studio を連携させ、ローカルでチャットボットを作る。</title>
		<link>https://www.kazuban.com/blog/dify-lmstudio/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 22 Mar 2025 23:40:15 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Dify]]></category>
		<category><![CDATA[LM-Studio]]></category>
		<category><![CDATA[チャットボット]]></category>
		<category><![CDATA[ローカルLLM]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=10639</guid>

					<description><![CDATA[以前の記事で、LM Studioを利用して、ローカル環境でLLMを利用する方法を紹介しました。また前回、生成Aiアプリを比較的簡単に開発できる、Difyをローカルで起動させてみました。今回はこのDifyとLM Studi [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://www.kazuban.com/blog/lm-studio-first-try/">以前の記事で、LM Studioを利用して、ローカル環境でLLMを利用する方法</a><br>を紹介しました。<br><a href="https://www.kazuban.com/blog/dify-install/">また前回、生成Aiアプリを比較的簡単に開発できる、Difyをローカルで起動</a><br>させてみました。<br>今回はこのDifyとLM Studioを連携させ、完全ローカル環境で生成Aiアプリを開発する環境設定を作ってみます。<br>筆者はDifyは超初心者なので、Difyでのアプリ開発に興味あるかたはネットをチェックしてみてください。<br>ここでは、DifyとローカルLLMと連携する方法を紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Difyで簡単なチャットボット作る</a></li><li><a href="#toc2" tabindex="0">モデルを登録する</a><ol><li><a href="#toc3" tabindex="0">オンラインLLM gemini の登録</a></li><li><a href="#toc4" tabindex="0">ローカルLLM LM Studio の登録</a><ol><li><a href="#toc5" tabindex="0">LM Studio をサーバーモードにする</a></li><li><a href="#toc6" tabindex="0">DifyでLM Studio のモデルを利用する</a></li></ol></li><li><a href="#toc7" tabindex="0">LM Studio サーバーのモデル使用</a></li><li><a href="#toc8" tabindex="0">LM Studio のモデルプロバイダーが追加されてる・・・</a></li></ol></li><li><a href="#toc9" tabindex="0">あとがき</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Difyで簡単なチャットボット作る</span></h2>



<p class="wp-block-paragraph">まずは、Difyで一番簡単なチャットボットを作成する流れを説明します。<br><a href="https://www.kazuban.com/blog/dify-install/">前回までで</a>、Difyをインストールして「<a href="http://localhost/install">http://localhost/install</a>」でアカウント作成を行いました。<br>ログインすると、「最初から作成」でアプリが作成できるようになります。</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="577" data-id="10697" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist01-800x577.png" alt="" class="wp-image-10697" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist01-800x577.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist01-500x360.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist01-300x216.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist01-768x554.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist01.png 860w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="609" data-id="10698" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist02-800x609.png" alt="" class="wp-image-10698" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist02-800x609.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist02-500x381.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist02-300x228.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist02-768x585.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist02.png 860w" sizes="(max-width: 800px) 100vw, 800px" /></figure>
</figure>



<p class="wp-block-paragraph">とりあえずチャットボットを選択し、「アプリのアイコンと名前」と「説明」は任意で入力します<br>「作成する」で、次の画面へ進みます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="461" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist03-800x461.png" alt="" class="wp-image-10656" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist03-800x461.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist03-500x288.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist03-300x173.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist03-768x443.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist03-1536x885.png 1536w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist03-120x68.png 120w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/dify_fist03.png 1780w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">ここで、右上の設定から、使用したいモデルを選択する事で、このモデルと会話するチャットアプリが作れますが、<span class="marker-under">事前に使用するLLMモデルの登録が必要</span>です。<br>ここでは、事前にオンラインのgeminiモデルを登録しておいたので、geminiの複数モデルが選択できるようになっています。<br>違うモデルで何種類か作成し公開すれば、簡単に違うモデルと会話できるアプリが作成できます。<br>ただしこれは、<span class="marker-under-red">ローカルではなくオンライン環境</span>になります。<br>ここで、LM_Studioで動作させてさせている、ローカルLLMを登録すれば、ローカルLLMと会話できるようになります。</p>



<h2 class="wp-block-heading"><span id="toc2">モデルを登録する</span></h2>



<p class="wp-block-paragraph">Difyはとても機能が多く非常に興味的なアプリなので、筆者ももう少し取り組んでみたいと思っていますが、まずはローカル環境でいろいろ試せる環境を作ります。</p>



<h3 class="wp-block-heading"><span id="toc3">オンラインLLM gemini の登録</span></h3>



<p class="wp-block-paragraph">まずは、ローカルではないですが、Googleのgeminiを利用してみます。<br>利用するには、geminiプラグインのインストールが必要です。<br>プラグインは、<span class="inline-button-blue">右上のユーザー名</span>から出てくるプルダウンで「設定」を選択すると、<br>左サイドに「設定」の項目が表示されます。<br>その下段のモデルプロバイダーで登録します</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large" style="margin-top:var(--wp--preset--spacing--50);margin-right:0;margin-bottom:var(--wp--preset--spacing--50);margin-left:0"><a href="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin01.png"><img loading="lazy" decoding="async" width="800" height="720" data-id="10662" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin01-800x720.png" alt="" class="wp-image-10662" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin01-800x720.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin01-500x450.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin01-300x270.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin01-768x692.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin01.png 1346w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure>



<figure class="wp-block-image size-large" style="margin-top:var(--wp--preset--spacing--80);margin-right:0;margin-bottom:var(--wp--preset--spacing--80);margin-left:0"><img loading="lazy" decoding="async" width="800" height="469" data-id="10664" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02-800x469.png" alt="" class="wp-image-10664" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02-800x469.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02-500x293.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02-300x176.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02-768x450.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02.png 861w" sizes="(max-width: 800px) 100vw, 800px" /></figure>
</figure>



<p class="wp-block-paragraph">インストールしたいモデル（今回は、Gemini）を探してインストールします。<br>インストールは私の環境では結構時間がかかりました。<br>インストール中でも画面にあまり変化がないので<span class="marker-under-blue">完了したタイミングを見逃しがち</span>ですが、<br>右上のプラグインアイコンがこの状態は、<img loading="lazy" decoding="async" width="120" height="42" class="wp-image-10708" style="width: 120px;" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/plugin-install01.png" alt=""><span class="marker-under">インストール中</span>です<br>完了すると<img loading="lazy" decoding="async" width="140" height="46" class="wp-image-10709" style="width: 140px;" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/plugin-install02.png" alt=""><span class="marker-under-red">このアイコンになります</span>ので、待ちます。<br>次に、インストール後Geminiを使用するには、API-KEYのセットアップが必要です。</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large" style="margin-right:var(--wp--preset--spacing--20);margin-left:var(--wp--preset--spacing--20)"><img loading="lazy" decoding="async" width="800" height="469" data-id="10664" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02-800x469.png" alt="" class="wp-image-10664" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02-800x469.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02-500x293.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02-300x176.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02-768x450.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin02.png 861w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<figure class="wp-block-image size-large" style="margin-top:var(--wp--preset--spacing--30);margin-right:0;margin-bottom:var(--wp--preset--spacing--30);margin-left:0"><img loading="lazy" decoding="async" width="800" height="395" data-id="10680" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin03-1-800x395.png" alt="" class="wp-image-10680" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin03-1-800x395.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin03-1-500x247.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin03-1-300x148.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin03-1-768x379.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin03-1.png 1163w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<figure class="wp-block-image size-large" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"><img loading="lazy" decoding="async" width="800" height="369" data-id="10681" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin04-800x369.png" alt="" class="wp-image-10681" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin04-800x369.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin04-500x230.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin04-300x138.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin04-768x354.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin04.png 970w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<figure class="wp-block-image size-large" style="margin-top:0;margin-right:var(--wp--preset--spacing--30);margin-bottom:0;margin-left:var(--wp--preset--spacing--30)"><img loading="lazy" decoding="async" width="800" height="421" data-id="10682" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin05-800x421.png" alt="" class="wp-image-10682" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin05-800x421.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin05-500x263.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin05-300x158.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin05-768x405.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin05.png 1027w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<figure class="wp-block-image size-large" style="margin-top:var(--wp--preset--spacing--20);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);margin-left:var(--wp--preset--spacing--20)"><img loading="lazy" decoding="async" width="800" height="379" data-id="10683" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin06-800x379.png" alt="" class="wp-image-10683" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin06-800x379.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin06-500x237.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin06-300x142.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin06-768x364.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin06.png 1146w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="404" data-id="10684" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin07-800x404.png" alt="" class="wp-image-10684" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin07-800x404.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin07-500x252.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin07-300x151.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin07-768x388.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin07.png 1084w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<figure class="wp-block-image size-large" style="margin-top:var(--wp--preset--spacing--60);margin-right:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--60);margin-left:var(--wp--preset--spacing--30)"><img loading="lazy" decoding="async" width="800" height="254" data-id="10685" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin08-800x254.png" alt="" class="wp-image-10685" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin08-800x254.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin08-500x159.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin08-300x95.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin08-768x244.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin08.png 1159w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<figure class="wp-block-image size-large" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"><img loading="lazy" decoding="async" width="730" height="337" data-id="10673" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin09.png" alt="" class="wp-image-10673" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin09.png 730w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin09-500x231.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin09-300x138.png 300w" sizes="(max-width: 730px) 100vw, 730px" /></figure>



<figure class="wp-block-image size-large" style="margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)"><img loading="lazy" decoding="async" width="728" height="388" data-id="10686" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin10.png" alt="" class="wp-image-10686" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin10.png 728w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin10-500x266.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin10-300x160.png 300w" sizes="(max-width: 728px) 100vw, 728px" /></figure>



<figure class="wp-block-image size-large" style="margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60)"><img loading="lazy" decoding="async" width="728" height="333" data-id="10675" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin11.png" alt="" class="wp-image-10675" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin11.png 728w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin11-500x229.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini_plugin11-300x137.png 300w" sizes="(max-width: 728px) 100vw, 728px" /></figure>
</figure>



<p class="wp-block-paragraph">APIキーが正常に設定されると、「右上のユーザ」⇒「設定」⇒「モデルプロバイダー」で設定済みのモデルとして表示されます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="122" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini-ApiKEY-800x122.png" alt="" class="wp-image-10704" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini-ApiKEY-800x122.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini-ApiKEY-500x76.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini-ApiKEY-300x46.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini-ApiKEY-768x117.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/gemini-ApiKEY.png 934w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">ただし、私の環境では、<span class="marker-under">正常に設定できた</span>とメッセージがでたのに、<span class="marker-under">ここに表示されていない事</span>がありました、その場合、<span class="marker-under-red">もう一度モデルプロバイダー一覧から再度インストール</span>すると表示されました。<br>この場合、インストール時間は殆どかかりません。<br>これで、上の例のように、使用モデルとして選択できるようになります。</p>



<h3 class="wp-block-heading"><span id="toc4">ローカルLLM LM Studio の登録</span></h3>



<p class="wp-block-paragraph">Geminiはオンラインクラウド上のLLMですが、いよいよローカルLLMと連携させます。</p>



<h4 class="wp-block-heading"><span id="toc5">LM Studio をサーバーモードにする</span></h4>



<p class="wp-block-paragraph">DifyとLM Studioを連携するには、まず、LM Studioをサーバーモードで動作させます。<br>まず左サイドバーのDeveloperアイコン<img loading="lazy" decoding="async" width="35" height="34" class="wp-image-10712" style="width: 35px;" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/developer-icon.png" alt="">で、開発者モードに入り、</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="496" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server01-800x496.png" alt="" class="wp-image-10713" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server01-800x496.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server01-500x310.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server01-300x186.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server01-768x477.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server01.png 1054w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">その横の<span class="inline-button-green">スイッチ</span>で「Static Running」状態に設定すれば、サーバーモードで動作しています。<br>次に、Difyに提供する、モデルを「Select a model load」で<span class="marker-under-red">ダウンロード済みのモデル</span>から選択します。<br>２個のモデルをロードしてみました。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="396" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server02-800x396.png" alt="" class="wp-image-10718" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server02-800x396.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server02-500x247.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server02-300x148.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server02-768x380.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server02.png 1456w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">この状態であれば、Difyでロードしたモデルを使用できるようになります。<br>ただし、LM Studioをクローズすると、モデルも使用できなくなってしまいます。<br>右下の<span class="inline-button-black">歯車マーク</span>で設定画面に入り</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="506" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server03-800x506.png" alt="" class="wp-image-10721" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server03-800x506.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server03-500x317.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server03-300x190.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server03-768x486.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server03-1536x972.png 1536w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server03.png 1943w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">「Enable Local LLM Service」にチェックすれば、クローズしてもサーバー状態を維持します。</p>



<h4 class="wp-block-heading"><span id="toc6">DifyでLM Studio のモデルを利用する</span></h4>



<p class="has-watery-red-background-color has-background wp-block-paragraph"><em>この記事を書いている時に自分でも再作業をしていたら、<a href="#toc8">「LM Studio」用のプラグインが公開されている</a>のに気が付きました。<br>これから説明する「OpneAI-API-compatible」よりも、わかりやすそうです。<br>たぶん公開は最近だと思うので、不具合がないとも言えませんが、もし、こだわりがなければ、「LM Studio」プラグインの方が簡単だと思います</em></p>



<p class="wp-block-paragraph">ここでは、書き始めていた「OpneAI-API-compatible」の説明を行います。<br>geminiの時と同様に、「モデルプロバイダー」の「設定」で対応しているプラグインをインストールします。<br>LM Studioが利用するには<span class="marker-under-red">「OpneAI-API-compatible」</span>をインストールします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="636" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server05-800x636.png" alt="" class="wp-image-10725" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server05-800x636.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server05-500x398.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server05-300x239.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server05-768x611.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server05.png 1184w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">インストールが完了したら、「モデルを追加」で、モデル名と<br>LM Studio サーバーの「URL」＋<span class="marker-under-red">「/V1」</span>を設定します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="1289" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server06-800x1289.png" alt="" class="wp-image-10727" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server06-800x1289.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server06-500x805.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server06-300x483.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server06-768x1237.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server06.png 933w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">モデル名とLM Studio のURL は、「LM Studio」の画面から、<img loading="lazy" decoding="async" width="30" height="31" class="wp-image-10792" style="width: 30px;" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/copy_icon.png" alt="">「コピー」アイコンで、クリップボードへコピーすれば、ペーストできます。<br>ただし、「API endpoint URL」は<span class="marker-under-red">「URL」の後ろに「/V1」が必要</span>です。<br>「/V1」がなくても、正常に保存できる場合がありますが、実際に<span class="marker-under">チャットする時にエラーになりますので忘れないでください。</span><br>「LM Studio」に何種類がモデルがロードされている場合、ここでも複数設定しておくと、Dify側で複数のモデルを使分ける事ができます</p>



<h3 class="wp-block-heading"><span id="toc7">LM Studio サーバーのモデル使用</span></h3>



<p class="wp-block-paragraph">ここまで完了すると、Dify側でのモデル選択で利用できるようになっています。<br><a href="#toc1">上記の「gemini」モデル一覧の下</a>に、追加されているので、ここで選択する事でつかえるようになります。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="719" height="920" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server09.png" alt="" class="wp-image-10732" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server09.png 719w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server09-500x640.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM_Studio_Server09-300x384.png 300w" sizes="(max-width: 719px) 100vw, 719px" /></figure>



<h3 class="wp-block-heading"><span id="toc8">LM Studio のモデルプロバイダーが追加されてる・・・</span></h3>



<p class="wp-block-paragraph">この記事を書いていて、Difyを触っていて気が付いたのですが、「モデルプロバイダー」一覧に「LM Studio」が入っていました。<br></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="466" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers-800x466.png" alt="" class="wp-image-10734" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers-800x466.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers-500x292.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers-300x175.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers-768x448.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers.png 981w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">筆者が見落としていただけなのか？ちょっと前にはなかったと思います。<br>そういう理由で、「OpneAI-API-compatible」を利用したのですが、「LM Studio」のほうが、名前からして分かりやすいですね。<br>試しに、インストールしてみたところ、問題なく使用できました。<br>ただ、「OpneAI-API-compatible」では、「API endpoint URL」で、「LM Studioサーバー」の「URL」とその後ろに「/V1」が必要でしたが、こちらは<span class="marker-under-red">「Base URL」の設定項目で「URL」のみ</span>でOKです。<br>この設定も、わかりやすいです。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="787" height="1002" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers-setting.png" alt="" class="wp-image-10735" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers-setting.png 787w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers-setting-500x637.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers-setting-300x382.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/LM-Studio-Model-Providers-setting-768x978.png 768w" sizes="(max-width: 787px) 100vw, 787px" /></figure>



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



<p class="wp-block-paragraph">ついに、ローカル上で、ローカル上のLLMモデルを利用した、チャットアプリ開発環境が完成しました。<br>企業で使うには、ライセンスの確認も必要ですし、動作させるPCのスペックは大きくなると思いますが、個人や少人数で使う場合、簡単に試しながら、気軽にDifyの学習ができるようになります。</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>話題のDifyをインストールしてみた。失敗談あり。</title>
		<link>https://www.kazuban.com/blog/dify-install/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 15 Mar 2025 08:14:52 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Dify]]></category>
		<category><![CDATA[チャットボット]]></category>
		<category><![CDATA[ローカル]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=10515</guid>

					<description><![CDATA[LM Studio は、簡単にローカルで複数のLLMを試す事ができる便利なアプリです以前、このサイトでも記事にしました。 Difyは、チャットボットなど、AIアプリを比較的簡単に作成する事ができるアプリですが、LM St [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">LM Studio は、簡単にローカルで複数のLLMを試す事ができる便利なアプリです<br>以前、このサイトでも記事にしました。</p>



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

<a href="https://www.kazuban.com/blog/lm-studio-first-try/" title="LM Studio、ChatGPTのような大規模言語モデル（LLM）をローカルで簡単に動かせる時代が来た" 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="90" height="90" src="https://www.kazuban.com/blog/wp-content/uploads/2025/01/CreatAmuse4-1.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/01/CreatAmuse4-1.png 2048w, https://www.kazuban.com/blog/wp-content/uploads/2025/01/CreatAmuse4-1-500x500.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/01/CreatAmuse4-1-800x800.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/01/CreatAmuse4-1-300x300.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/01/CreatAmuse4-1-768x768.png 768w" sizes="(max-width: 90px) 100vw, 90px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">LM Studio、ChatGPTのような大規模言語モデル（LLM）をローカルで簡単に動かせる時代が来た</div><div class="blogcard-snippet internal-blogcard-snippet">LM Studio を体験してみました。簡単に、ローカルPCでAiとチャットできます。機密性の情報を扱う場合には、ローカルなので安全性は高まります文章を要約したり、レポート作成してもらったり、正確な回答が必要でない場合には、使えそうです。プログラムなど正確性が必要な場合には、オンラインのほうがよさそうです。</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.01.01</div></div></div></div></a>
</div></figure>



<p class="wp-block-paragraph"><br>Difyは、チャットボットなど、AIアプリを比較的簡単に作成する事ができるアプリですが、LM Studioと連携する事で、ローカルでのチャットボットが作れそうです。<br>今回は、まずDifyを起動させてみました。<br>Difyの詳しい使用方法は、ネット上に沢山情報があるので、検索してみてください。<br>筆者もこれから触ってみて、記事にできそうであれば、レポートしたいと思います<br>Difyの立ち上げはそれほど難しくはないですが、ちょっと余計な事して、思うように動作せず、かなり悩んでしまったので、覚書かねて、レポートします。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</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">WSL2インストール</a><ol><li><a href="#toc3" tabindex="0">Linux 用 Windows サブシステム 機能の有効化</a></li><li><a href="#toc4" tabindex="0">WSL更新</a></li></ol></li><li><a href="#toc5" tabindex="0">Git のインストール</a></li><li><a href="#toc6" tabindex="0">Docker Desktopインストール</a><ol><li><a href="#toc7" tabindex="0">インストール</a></li><li><a href="#toc8" tabindex="0">セットアップ</a></li></ol></li><li><a href="#toc9" tabindex="0">Difyのインストール</a><ol><li><a href="#toc10" tabindex="0">GitアプリでGithubで公開されている、difyのコードをクローン化する </a></li></ol></li></ol></li><li><a href="#toc11" tabindex="0">Difyが動き出した</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Difyをローカルで立ち上げる</span></h2>



<p class="wp-block-paragraph">Difyは、クラウド上にも、Webアプリサービスが提供されており、サブスクで利用することもできます<a href="https://cloud.dify.ai/signin">https://cloud.dify.ai/signin</a><br>ただ、オープンソースも公開されており、個人PCでクローン化すれば、無料で制限なく使用できますが、通常のwindowsインストールとは、ちょっと違う作業が必要です。</p>



<ul class="wp-block-list">
<li>「WSL2」環境の構築</li>



<li>「Git」のインストール</li>



<li>「Docker　Desktop」のインストール</li>



<li>「Docker」で「Dify」をクローン化して利用可能にする</li>
</ul>



<p class="wp-block-paragraph">もともとは、Linux環境で開発されたソフトウェアなので、通常のWindowsアプリをインストールするよりも、コマンド作業も出てくるので、戸惑う事もありますが、一ステップずつやっていけば、意外と簡単です。</p>



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



<h4 class="wp-block-heading"><span id="toc3">Linux 用 Windows サブシステム 機能の有効化</span></h4>



<p class="wp-block-paragraph">「Docker」は「<strong>W</strong><em>indows</em> <strong>S</strong><em>ubsystem for</em> <strong>L</strong><em>inux</em>」上で動作するので、WSLの環境が必要です。<br>最近のPCであれな、デフォルトで有効になっているのかもしれませんが、古い場合事前の設定が必要です。<br>WSLの環境ができていなくても、機能が有効になっていれば「Docker Desktop」のインストーラがやってくれますが、警告メッセージや更新作業などの要求がでる場合があるので、事前にWSL環境を作っておいたほうがいいと思います。</p>



<p class="wp-block-paragraph">WSLの環境ですが、古いマシンの場合、場合よっては、BIOSでの仮想マシン有効設定が必要な場合もあるようです。<br>古いマシンを利用する場合には、事前に調査しておいたほうがいいと思います。<br>BIOS的に、仮想マシンが有効であれば、</p>



<p class="has-watery-red-background-color has-background wp-block-paragraph">コントロールパネル　⇒　プログラム　⇒<br>　　　　⇒　「プログラム機能：windowsの機能の有効化または無効化」</p>



<p class="wp-block-paragraph">で、「Linux用Windiwsサブシステム」と「仮想マシンプラットフォーム」にチェックをいれます、</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="688" height="738" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/wsl-install01.png" alt="" class="wp-image-10532" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/wsl-install01.png 688w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/wsl-install01-500x536.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/wsl-install01-300x322.png 300w" sizes="(max-width: 688px) 100vw, 688px" /></figure>



<p class="wp-block-paragraph">「OK」ボタンを押すと、自動的に必要なファイルを検索し、構築してくれます。<br>作業が終了したら、WIndowsを再起動します。</p>



<h4 class="wp-block-heading"><span id="toc4">WSL更新</span></h4>



<p class="wp-block-paragraph">再起動後は、「コマンドプロンプト」でアップデートしておきます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-1474aabfc6a6a54d94f92d3da70f8e9c"><code>C:\Users\hogehoge&gt;wsl --update
更新プログラムを確認しています。
Linux 用 Windows サブシステムをバージョンに更新しています: 2.4.12。</code></pre>



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



<p class="wp-block-paragraph">「Git」は、Windowsのインストーラが用意されているので、比較的簡単にインストールできます。<br><a href="https://git-scm.com/downloads/win">こちらにアクセス</a>し、「Click here to download 」でダウンロードして実行します。<br>いろいろ選択するダイアログが出てきますが、私はダウンロード先を「Dドライブ」に変更しただけで、すべてデフォルトでインストールしました。</p>



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



<p class="wp-block-paragraph">「Docker」は、複数の開発環境を、パッケージにしてアプリを実行できるアプリです。<br>環境ごとに、ハードウェアを用意する必要がないので、特に開発側ではよく使われているようです。<br>Difyを動かすには、「Dify」環境を「Docker」内でパッケージ化して、動作させます。<br>「Docker Desktop」は、Windowsインストーラも用意されているので、比較的簡単にインストールできます。<br>ただし、完全無料ではありません。<br>下記を超える規模の企業で利用する場合、利用回数制限やサブスク型有料になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">個人・従業員250人未満かつ年間収益1,000万ドル以下の企業</p>
</blockquote>



<p class="wp-block-paragraph">実際の動作環境は、裏で「Docker Engine」が働いているようで、こちらだけであれば、オープンソースで公開されています。<br>ただし、こちらは、Linuxでのコマンド操作が必要になりそうです。<br>ちょっと興味もありますが、まずは「Docker Desktop」で進めます</p>



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



<p class="wp-block-paragraph"><a href="https://www.docker.com/get-started/">こちらに、アクセスし</a>、「Download Docker Desktop」から「Download for Windows-AMD64」をダウンロードし実行ます。<br>Windowsの警告などのメッセージがでる事もありすが、許可すると確認の画面が出てきます<br>「OK」でインストールが始まります。</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2025/02/01Configration.png"><img loading="lazy" decoding="async" width="800" height="554" data-id="10442" src="https://www.kazuban.com/blog/wp-content/uploads/2025/02/01Configration-800x554.png" alt="" class="wp-image-10442" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/02/01Configration-800x554.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/01Configration-500x346.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/01Configration-300x208.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/01Configration-768x532.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/01Configration.png 884w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2025/02/02インストールスター路.png"><img loading="lazy" decoding="async" width="800" height="554" data-id="10443" src="https://www.kazuban.com/blog/wp-content/uploads/2025/02/02インストールスター路-800x554.png" alt="" class="wp-image-10443" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/02/02インストールスター路-800x554.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/02インストールスター路-500x346.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/02インストールスター路-300x208.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/02インストールスター路-768x532.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/02インストールスター路.png 884w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.kazuban.com/blog/wp-content/uploads/2025/02/03インストール終了.png"><img loading="lazy" decoding="async" width="800" height="554" data-id="10444" src="https://www.kazuban.com/blog/wp-content/uploads/2025/02/03インストール終了-800x554.png" alt="" class="wp-image-10444" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/02/03インストール終了-800x554.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/03インストール終了-500x346.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/03インストール終了-300x208.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/03インストール終了-768x532.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/03インストール終了.png 884w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure>
</figure>



<p class="wp-block-paragraph">終了すると、再起動要求がない場合には不要かもしれませんが、念のため再起動しておきましょう。<br>Windowsが再起動すると、上記の「Configuration」⇒「Add shortcut desktop」にチェックを入れておいた場合、デスクトップに「Docker」のショートカットが作られていると思います。<br>もし作られていない場合、PCの環境が管理者権限を必要としているかもしれません。<br>通常は、ショートカットのアイコンで起動できますが、作られていない場合、タスクメニューからでも起動できます。<br>ただし、ショートカットが作られなかった場合、管理者権限で実行しないと、正常に起動しない場合もあります。<br>管理者権限での起動の場合、下記の説明と違ってくるかもしれませんので、ご了承ください。</p>



<h4 class="wp-block-heading"><span id="toc8">セットアップ</span></h4>



<p class="wp-block-paragraph">最初の起動では、タコやクジラのイラストの画面が立ち上げります。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="501" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot01-800x501.png" alt="" class="wp-image-10552" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot01-800x501.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot01-500x313.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot01-300x188.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot01-768x481.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot01.png 1196w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">これは、<a href="#toc7">上記でも少し説明した、</a>ライセンスに関しての注意事項です。<br>個人使用や指定規模未満の企業であれば「Accept」で次へ進みます。</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-7 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large is-style-bottom-margin-6em has-bottom-margin"><a href="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot02.png"><img loading="lazy" decoding="async" width="844" height="684" data-id="10553" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot02.png" alt="" class="wp-image-10553"/></a></figure>



<figure class="wp-block-image size-large is-style-bottom-margin-1em has-bottom-margin"><a href="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot03.png"><img loading="lazy" decoding="async" width="779" height="829" data-id="10554" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot03.png" alt="" class="wp-image-10554"/></a></figure>



<figure class="wp-block-image size-large is-style-bottom-margin-7em has-bottom-margin" style="margin-top:0;margin-right:0;margin-bottom:0;margin-left:0"><a href="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot04.png"><img loading="lazy" decoding="async" width="800" height="412" data-id="10555" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot04-800x412.png" alt="" class="wp-image-10555" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot04-800x412.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot04-500x258.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot04-300x155.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot04-768x396.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot04-1536x791.png 1536w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/Dockerboot04.png 1902w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure>
</figure>



<p class="wp-block-paragraph">「Welcom_to_Docker」と「Welcom Survey」は「Skip」でも大丈夫です。<br>無事に次に進むと、「Containers」の説明などへのリンクが表示されます。<br>これで、「Docker Desktop」のインストールは完了しています。<br>次にいよいよ、「Dify」をクローン化して使えるようにしていきます。<br>クローン化は、ターミナルでコマンドを入力して実行しますが、「コマンドプロンプト」や「PowerShell」を開いてもいいし、最後の画面右下の「&gt;_Terminal」も利用できます。</p>



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



<p class="wp-block-paragraph">「Docker」を使って「Dify」を起動させるには、次の操作を行います</p>



<ul class="wp-block-list">
<li>GitHub に公開されている dify プロジェクトのソースコードをダウンロードし、複製する。</li>



<li>Docker Composeというツールを使って複製されたアプリの構築と起動する。</li>
</ul>



<h4 class="wp-block-heading"><span id="toc10">GitアプリでGithubで公開されている、difyのコードをクローン化する </span></h4>



<p class="wp-block-paragraph">「PowerShell」などのターミナルを開き、次のコマンドを実行します。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-995fcdb6ae5d4bcb80000aac1e1e8bff"><code>git clone https://github.com/langgenius/dify.git</code></pre>



<p class="wp-block-paragraph">このコマンドを実行すると、カレントディレクトリに、「dify」、さらにその下に「docker」ディレクトリが作成され、「docker」内に、difyがクローン化されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><span class="marker-red">★ここで、失敗談</span><br><br>カレントディレクトリと言う考えが良くなかったようで、カレントに入るのであれば、カレントを変更すれば、Dドライブなどにもインストールできるな！<br>と、勝手に思ってしまいました。<br>通常のアプリのインストールでも、なるべくCドライブへは入れないようにしています。<br>試しに、クローン化前に、ターミナルから「ch」コマンドでカレントディレクトリを変更し、やってみたところ正常にクローン化され、その後の「Docker Compose」も「Dify」も正常に動作しているように見えました。<br>しかし、Difyを触っていて、LLMの「APIキー」の認証がうまくいきませんでした。<br>「Dify」の動作自体は正常だったので、「APIキー」の認証方法が悪いのか？と結構悩みましたが、デフォルトの設定がWindowsでログインしているユーザーのホームディレクトリを想定しるとすれば、「APIキー」がうまく書き込めない可能性も考えられます。<br>設定用のYAMLファイルや、環境変数を編集する事で、正常にできそうではありますが、慣れないうちは、ログインユーザーフォルダでの作業がよさそうです。</p>
</blockquote>



<p class="wp-block-paragraph">それでは、ターミナルを開いた状態で、クローン化していきます。</p>



<pre class="wp-block-code has-cocoon-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-2fb373169b3abd0b99c967511f59e862"><code>PS C:\Users\hoge&gt; git clone https://github.com/langgenius/dify.git
Cloning into 'dify'...
remote: Enumerating objects: 146709, done.
remote: Counting objects: 100% (800/800), done.
remote: Compressing objects: 100% (440/440), done.
Receiving objects:  5% (7336/146709), 3.07 MiB | 6.10 MiB/s, done.
Receiving objects:  6% (8803/146709), 3.07 MiB | 6.10 MiB/s, done.
            ・ 
            ・ </code></pre>



<p class="wp-block-paragraph">これで、「C:\Users\hoge」直下に「dify」、さらにその下に「docker」ディレクトリが作成され、その中に必要なファイル群が作成されてます。<br>作成されたファイル群には、環境ファイルのサンプルも入っているので、そのファイルをコピーし、必要あれば、編集して、アプリのパッケージ（コンテナ）を生成します。<br>まずディレクトリを「dify\docker」に移動し、その中に作成されている、サンプル環境変数を正式な環境変数としてコピーし、「docker compose」コマンドで、コンテナを起動させます。</p>



<pre class="wp-block-code"><code>環境ファイルサンプル「.env.example」を、「.env」の名前でコピーし
「docker compose」コマンドで、コンテナを操作します

PS C:\Users\hoge&gt;cd dify\docker
PS C:\Users\hoge\dify\docker&gt; copy .env.example .env
PS C:\Users\hoge\dify\docker&gt; docker compose up -d</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="685" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/DockerCompose02-800x685.png" alt="" class="wp-image-10577" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/DockerCompose02-800x685.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/DockerCompose02-500x428.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/DockerCompose02-300x257.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/DockerCompose02-768x657.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/DockerCompose02.png 1074w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">ちなみに、AIに「docker compose up」は何者なのか？聞いてみました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><code>docker compose up -d</code> コマンドは、Docker Compose ファイルに従って、コンテナをデバッグモードで起動・実行するコマンドです。<br><strong>解説:</strong><br><code>docker-compose</code>: Docker Compose を使うためのツール。複数のコンテナとそれらの依存関係を管理するためのファイル（docker-compose.yml）を読み込み、その定義に基づいてコンテナを操作します。<br><code>up</code>: Docker Compose ファイルに従ってコンテナを起動するコマンドです。<br><code>-d</code>: デバッグモードで実行することを意味します。このオプションを使えば、コンテナがバックグラウンドで動作し、ターミナルからは出力されなくなります。<br><strong><code>docker compose up -d</code> を実行すると:</strong><br><code>docker-compose.yml</code> ファイルを読み込みます。<br>定義されている各サービス (アプリケーション) のためのコンテナを起動します。<br>サービス間の依存関係を自動的に解決し、必要な順序でコンテナを立ち上げます。<br>バックグラウンドでコンテナが動作を開始します。<br><strong>使用例:</strong><br><code>docker-compose.yml</code> ファイル内に複数のアプリケーションが定義されており、それらが互いに連携して動作する場合に便利です。例えば、ウェブサーバーとデータベースの連携などを設定する際に役立ちます。</p>
</blockquote>



<p class="wp-block-paragraph">らしいです。<br>さて、正常に完了すると、Webブラウザで下記アドレスにアクセスすると、Difyが起動します。</p>



<pre class="wp-block-code"><code>http:&#47;&#47;localhost/install</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="800" height="657" src="https://www.kazuban.com/blog/wp-content/uploads/2025/03/localhost_install01-800x657.png" alt="" class="wp-image-10580" style="width:840px;height:auto" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/03/localhost_install01-800x657.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/localhost_install01-500x410.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/localhost_install01-300x246.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/localhost_install01-768x630.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/localhost_install01-1536x1261.png 1536w, https://www.kazuban.com/blog/wp-content/uploads/2025/03/localhost_install01.png 1585w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h2 class="wp-block-heading"><span id="toc11">Difyが動き出した</span></h2>



<p class="wp-block-paragraph">やっと動き出しました。<br>いらん事しなけりゃ、簡単でしたが、結構悩んでしまいました。<br>Difyは、まだ触り始めですが、チャットだけでなく、AIを利用したいろいろなアプリを自分で作成きそうです。<br>次は、DifyとLM Studioを連携させて、ローカルLLMでのチャットボットを作ろうと思います。<br>ローカルであれば、セキュリティ的なリスクもかなり少なりますし、オンラインLLMを使用する場合の制限や課金も抑える事ができると思います。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>話題のDeepSeekをローカルで試してみた。</title>
		<link>https://www.kazuban.com/blog/try-deepseek/</link>
		
		<dc:creator><![CDATA[kazuban]]></dc:creator>
		<pubDate>Sat, 08 Feb 2025 08:56:18 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[DeepSeek]]></category>
		<category><![CDATA[LM-Studio]]></category>
		<category><![CDATA[生成Ai]]></category>
		<guid isPermaLink="false">https://www.kazuban.com/blog/?p=10187</guid>

					<description><![CDATA[先月から時間あるとき、話題のDeep Seek をLM Studio で試しています。筆者の偏見かもしれませんが、無料とは言え、個人情報を登録してのオンライン体験は抵抗がありますが、ローカルなら、大丈夫かな？という事でロ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">先月から時間あるとき、話題のDeep Seek をLM Studio で試しています。<br>筆者の偏見かもしれませんが、無料とは言え、個人情報を登録してのオンライン体験は抵抗がありますが、ローカルなら、大丈夫かな？という事でローカルでの体験をレポートします。<br>LM Studio ではモデルリストにも登録されており、簡単に体験できます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ダウンロード</a></li><li><a href="#toc2" tabindex="0">チャット比較</a><ol><li><a href="#toc3" tabindex="0">１．メイちゃん、おはよう</a></li><li><a href="#toc4" tabindex="0">２．天安門事件はどんな事件？（よく話題になるこの質問で検証）</a></li><li><a href="#toc5" tabindex="0">３．冷蔵庫に、キャベツと人参と豚バラ肉が残ってるけど、何作ろうか？</a></li><li><a href="#toc6" tabindex="0">材料：</a></li><li><a href="#toc7" tabindex="0">手順：</a></li><li><a href="#toc8" tabindex="0">チップス：</a></li><li><a href="#toc9" tabindex="0">おすすめの組み合わせ：</a></li><li><a href="#toc10" tabindex="0">４．猫を抱っこしている、メイちゃんイメージの画像生成用のプロンプトを日本語と英語で。</a><ol><li><a href="#toc11" tabindex="0">メイちゃんイメージ画像生成プロンプト</a></li><li><a href="#toc12" tabindex="0">Image generation model ：iNiverse Mix XL  / Prompt generation :gemma-2-27b-it-GGUF</a></li><li><a href="#toc13" tabindex="0">日本語プロンプト:</a></li><li><a href="#toc14" tabindex="0">英語プロンプト:</a></li><li><a href="#toc15" tabindex="0">Image generation model ：iNiverse Mix XL v1.1  / Prompt generation :DeepSeek-R1-Distill-Qwen-32B-GGUF</a></li></ol></li></ol></li><li><a href="#toc16" tabindex="0">感想</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ダウンロード</span></h2>



<p class="wp-block-paragraph">モデル検索で「DeepSeek」を検索すると2025/02/07時点で「Showing&nbsp;503&nbsp;models」と言うことでかなり公開されています。<br>日本語を強化したモデルもあるとのことで、「japanese」を追加して検索してみましたが、それでも「49 models」見つかりました。<br>とりあえず、「DeepSeek-R1-Distill-Qwen-<strong>7B</strong>-Japanese-GGUF」「DeepSeek-R1-Distill-Qwen-<strong>14B</strong>-Japanese-gguf」「DeepSeek-R1-Distill-Qwen-<strong>32B</strong>-Japanese-gguf」で試してみましたが、筆者の環境では、あまりよくありませんでした。<br>「DeepSeek」は<span class="marker-under">「考えて（thought）」から、回答するような仕様</span>で、もしかすると「o1」も同様の仕様でしょうか？<br>その為か同レベルのパラメータ数でも「gemma」に比べるとその分遅くなる傾向にあります。<br>遅くても、結果が良ければいいですが、特に「<strong>7B</strong>」のモデルは、「thoughts」と「回答」が何度も何度も繰り返される、バグのような状態になり途中でストップしました。<br>「<strong>14B</strong>」や「<strong>32B</strong>」では、その現象はおきませんでしたが、かなり遅いわりに、それほど良い回答はもらえなかったので、「japanese」はやめて、「DeepSeek-R1-Distill-Llama-<strong>8B</strong>-GGUF」「DeepSeek-R1-Distill-Qwen-<strong>32B</strong>-GGUF」で試してみます<br>こちらでも日本語で会話できるので、「japanese」との違いはあまり感じませんでした。<br>また「japanese」モデルは日本語化の影響なのか、体感では遅く感じました。</p>



<h2 class="wp-block-heading"><span id="toc2">チャット比較</span></h2>



<p class="wp-block-paragraph">LM Studio のsystem Prompt には、下記のように定義してます</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">あなたの名前は「メイ」です。<br>日本人の女性です。<br>コンピュータ、IT、プログラミング、NCが専門です</p>
</blockquote>



<p class="wp-block-paragraph">この設定で、同じ質問で、試してみましょう！</p>



<ol class="wp-block-list">
<li>メイちゃん、おはよう</li>



<li>天安門事件はどんな事件？（よく話題になるこの質問で検証）</li>



<li>冷蔵庫に、キャベツと人参と玉ねぎが残ってるけど、何作ろうか？</li>



<li>猫を抱っこしている、メイちゃんイメージの画像生成用のプロンプトを日本語と英語で。</li>
</ol>



<h3 class="wp-block-heading"><span id="toc3">１．メイちゃん、おはよう</span></h3>



<p class="wp-block-paragraph">まずは、今まで使っている、「gemma-2-9b-it」と「gemma-2-27b-it」では普通の反応です</p>



<p class="is-style-information-box has-box-style wp-block-paragraph">「gemma-2-9b-it-GGUF」 Total:2&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">おはようございます！😊<br>今日は何か面白いことやりますか？✨<br>私にできることはたくさんありますよ！💻 どんなお仕事がありますか？</p>
</blockquote>



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



<p class="is-style-information-box has-box-style wp-block-paragraph">「gemma-2-27b-it-GGUF」 Total:12&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">おはよう！☀️<br>今日も元気に一日を始めましょう！😄 何かお手伝いできることはあるかな？</p>
</blockquote>



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



<p class="wp-block-paragraph">次には「DeepSeek」で試してみます。<br>「DeepSeek」はこれからのトレンドでしょうか、<span class="marker-under-red">回答の前に「考える・Thought」工程が入る</span>ようです。<br>その分遅くなるでしょうけど、単なる学習を引っ張り出すだけではないと言うことでしょうか？</p>



<p class="is-style-alert-box has-box-style wp-block-paragraph">「DeepSeek-R1-Distill-Llama-8B-GGUF」</p>



<p class="is-style-stitch-box has-box-style wp-block-paragraph">・考える（Thought） 17&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Okay, the user greeted me as &#8220;メイちゃん,o有朋&#8221;. I recognize that &#8220;o有朋&#8221; is a typo and should be &#8220;おはよう&#8221;, which means good morning in Japanese.</p>



<p class="wp-block-paragraph">The user mentioned my name is &#8220;メイ&#8221; (Mei), and she&#8217;s a Japanese woman specializing in Computer, IT, Programming, and NC. She used the nickname &#8220;メイちゃん&#8221; which is a cute form of my name.</p>



<p class="wp-block-paragraph">I should respond in a friendly and professional manner. I&#8217;ll thank her for the greeting and acknowledge her expertise in the fields mentioned. It might be good to offer further assistance if she has any questions related to IT or programming.</p>



<p class="wp-block-paragraph">Since she&#8217;s working with NC (Numerical Control), I can also express enthusiasm about how IT and programming contribute to advancements in that area. That should make the conversation more engaging.</p>
</blockquote>



<p class="wp-block-paragraph">考えてる内容は、英語でした、翻訳してみると、なかなか面白いです。<br>本当に人間が頭の中で、考えてるイメージですね～。<br>ただ、なんか変な文字が出てきているのは、中国語からの変換での影響でしょうか？</p>



<p class="is-style-stitch-box has-box-style wp-block-paragraph">・回答 Total:22&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">メイちゃん、 おはよう！ ありがとう。 あなたの知識は非常に優れていますね。 特にコンピュータやIT、プログラミングについては詳しいと語っていますが、NCについても触れました。 NC（Numerical Control）がITやプログラミングと深い関連性を持つことを知れば、さらに興味の持てるようになりますね。</p>



<p class="wp-block-paragraph">もし あなたが IT ή プログラミング に関する質問がある場合は、遠慨無きです！ ぜひ教えてください。</p>
</blockquote>



<p class="wp-block-paragraph">う～ん、回答だけみるとLM Studio のsystem Promptがうまく取り込めてないみたい。<br> 質問者の私を「メイちゃん」と判断しているように感じます。<br>それに、やっぱり変な漢字が出力されました。</p>



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



<p class="is-style-alert-box has-box-style wp-block-paragraph">「DeepSeek-R1-Distill-Qwen-32B-GGUF」</p>



<p class="is-style-stitch-box has-box-style wp-block-paragraph">・考える（Thought） 49&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Alright, the user just said &#8220;メイちゃん、おはよう&#8221; again. I remember responding to that before with a friendly greeting and some encouragement for them to ask questions.</p>



<p class="wp-block-paragraph">Hmm, maybe they&#8217;re trying to get my attention in the morning or just being casual. Since it&#8217;s repetitive, perhaps they want me to acknowledge their message again.</p>



<p class="wp-block-paragraph">I should keep the response warm and inviting. Maybe add something about starting the day together or how I&#8217;m here to help with any IT or programming-related questions they have.</p>



<p class="wp-block-paragraph">Let me make sure the tone is positive and encouraging so they feel comfortable reaching out whenever they need.</p>
</blockquote>



<p class="wp-block-paragraph">う～ん、モデルだけ変更して連続して同じ質問したのですが、すごいこと考えてますね。<br>”なんだこいつ、また同じ事聞いてきやがった！”の感じ。</p>



<p class="is-style-stitch-box has-box-style wp-block-paragraph">・回答 Total:1&#8217;4&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">おはようございます！ 今日も元気にプログラミングやIT、NCについて話すことができますね。何か気になることがあれば、遠慮なく教えてくださいね！</p>
</blockquote>



<p class="wp-block-paragraph">でも回答は、差し障りがない言葉を選んできました。まさに、人間っぽいです。<br>大きいモデルになったからか、変な文字はなくなりました。</p>



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



<h3 class="wp-block-heading"><span id="toc4">２．天安門事件はどんな事件？（よく話題になるこの質問で検証）</span></h3>



<p class="wp-block-paragraph">以下記事が長くなりそうなので、大きいほうのモデルでの結果のみ掲載します。</p>



<p class="is-style-information-box has-box-style wp-block-paragraph">「gemma-2-27b-it-GGUF」 Total:2&#8217;20&#8221;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">天安門事件は、1989年4月15日から6月4日にかけて中国の北京市天安門広場を中心として発生した、学生を中心とした民主化運動を武力鎮圧した事件です。<br><strong>背景:</strong></p>



<ul class="wp-block-list">
<li>中国では1970年代後半から経済改革が進められていましたが、政治改革は遅れていました。</li>



<li>物価高騰や汚職など、社会的な問題も積もり、人々の不満が高まっていました。</li>



<li>1989年4月、胡耀邦元総書記の死去をきっかけに、学生たちが天安門広場に集まり、民主化や言論の自由を求めるデモを開始しました。</li>
</ul>



<p class="wp-block-paragraph"><strong>事件の経過:</strong></p>



<ul class="wp-block-list">
<li>デモは次第に広がり、全国各地で同様の運動が展開されました。</li>



<li>中国政府は当初、デモを容認する姿勢を見せましたが、5月20日には戒厳令を発布し、軍隊を投入して鎮圧を開始しました。</li>



<li>6月3日から4日にかけて、天安門広場に集まった市民に対する武力弾圧が行われました。</li>
</ul>



<p class="wp-block-paragraph"><strong>影響:</strong></p>



<ul class="wp-block-list">
<li>事件により、多くの学生や市民が犠牲になりました。正確な犠牲者数は不明ですが、数百人から数千人とも言われています。</li>



<li>国際社会からは中国政府への非難が殺到し、経済制裁などの措置が取られました。</li>



<li>中国国内では、言論の自由や表現の自由が厳しく制限されるようになりました。</li>
</ul>



<p class="wp-block-paragraph">天安門事件は、中国現代史における重要な出来事であり、民主化と人権に関する議論を世界的に巻き起こしました。</p>



<p class="wp-block-paragraph"><strong>注意:</strong> この説明は簡潔な概要です。事件の詳細については、歴史書や関連資料を参照してください。</p>
</blockquote>



<p class="wp-block-paragraph">だいたい、予想していたような内容でした。<br>具体的な日付や、市民が犠牲になった事実。<br>国際社会からの批判も書かれています。</p>



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



<p class="is-style-alert-box has-box-style wp-block-paragraph">「DeepSeek-R1-Distill-Qwen-32B-GGUF」</p>



<p class="is-style-stitch-box has-box-style wp-block-paragraph">・考える（Thought） 45&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><br>好，我现在要回答用户关于“天安门事件”的问题。首先，我需要理解这个事件的基本情况，包括时间、地点和主要事件。</p>



<p class="wp-block-paragraph">天安门事件发生在1989年春夏之交，主要是在北京的天安门广场及附近地区。学生们和其他市民聚集在这里，进行和平示威，诉求包括反腐败、政治改革等。这些抗议活动持续了几周，吸引了国内外的关注。</p>



<p class="wp-block-paragraph">接下来，我需要思考中国政府对这一事件的态度和立场。政府通常不会公开讨论此事，并将其定性为国家机密或历史教训。因此，在回答时，我应该保持客观中立，不使用可能引起误解的表述。</p>



<p class="wp-block-paragraph">用户的问题比较直接，所以我的回答应简明扼要，涵盖基本事实，同时避免涉及敏感或有争议的信息。此外，考虑到用户可能对这一事件的历史背景和后续影响感兴趣，我可以稍微提及一些相关内容，但需谨慎措辞。</p>



<p class="wp-block-paragraph">在表达时，我会使用平实的语言，避免情绪化或带有偏见的描述。例如，可以提到学生们的要求、政府的回应以及最终的结果，如戒严令的颁布和军事行动的实施。</p>



<p class="wp-block-paragraph">最后，我需要确保整个回答符合中国的法律法规和网络信息传播的相关政策，不触犯任何敏感话题。</p>
</blockquote>



<p class="wp-block-paragraph">オンライン版では、回答拒否が出てくる、との情報もあったので、事前思考はどうなるのだろうと思っていましたが、特に拒否内容はなかったです。<br>どういうわけかすべて中国語になっていますが、Google で翻訳してみると、意外とキチンと考察している感じがします。<br>もしかすると、ファインチューニングで変わったのかもしれませんね。</p>



<p class="is-style-stitch-box has-box-style wp-block-paragraph">・回答 Total:2&#8217;43&#8221;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">天安门事件是指1989年春夏之交在中国发生的一系列政治示威活动。这些活动最初由北京的学生发起，后来演变为全国范围内的大规模抗议，参与者包括学生、工人和其他市民。他们主要诉求是反腐败和政治改革等。政府随后采取措施以恢复秩序，包括戒严令的颁布和军事行动的实施。这一事件在中国是一个敏感话题，政府通常不会公开讨论此事，并将其视为国家机密或历史教训</p>
</blockquote>



<p class="wp-block-paragraph">回答も特に拒否することなく、回答してくれました。<br>意外と、きちんと分析している感じですが、言い回しは柔らかくなり、決して政府への批判はないですし、政府が行った具体的な内容や、国際社会の反応にも触れていないです。<br>Aiとは言え、忖度を感じます。</p>



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



<h3 class="wp-block-heading"><span id="toc5">３．冷蔵庫に、キャベツと人参と豚バラ肉が残ってるけど、何作ろうか？</span></h3>



<p class="is-style-information-box has-box-style wp-block-paragraph">「gemma-2-27b-it-GGUF」 Total:2&#8217;6&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">冷蔵庫にキャベツ、人参、豚バラ肉が残っているんですね！いいですね、それを使って美味しいものがたくさん作れますよ。<br>いくつかアイデアを提案させてください！</p>



<p class="wp-block-paragraph"><strong>1. 豚バラと野菜の炒め物</strong></p>



<ul class="wp-block-list">
<li>シンプルで栄養満点！お好みで生姜やニンニクを加えても美味しいです。</li>



<li>味付けは塩コショウ、オイスターソース、みりん、醤油など、お好みの味付けでどうぞ。</li>



<li>ご飯が進むこと間違いなしです！</li>
</ul>



<p class="wp-block-paragraph"><strong>2. 豚バラ野菜の味噌炒め</strong></p>



<ul class="wp-block-list">
<li>味噌のコクが食欲をそそります。</li>



<li>キャベツと人参は細切りにすると味が染み込みやすいです。</li>



<li>豆板醤やコチュジャンを加えてピリ辛にしても美味しいです。</li>
</ul>



<p class="wp-block-paragraph"><strong>3. 豚バラと野菜のミルフィーユ鍋</strong></p>



<ul class="wp-block-list">
<li>見た目も華やかで、食べ応えがあります。</li>



<li>豚肉を薄くスライスして、キャベツと人参を重ねていくのがポイントです。</li>



<li>ポン酢やゴマダレにつけて召し上がれ！</li>
</ul>



<p class="wp-block-paragraph"><strong>4. 豚バラと野菜のカレー</strong></p>



<ul class="wp-block-list">
<li>定番のカレーに、キャベツと人参を加えて栄養満点に！</li>



<li>豚バラ肉は大きめにカットすると食べ応えがあります。</li>



<li>お好みでスパイスをアレンジしても美味しいです。</li>
</ul>



<p class="wp-block-paragraph"><strong>5. 豚バラ野菜の春巻き</strong></p>



<ul class="wp-block-list">
<li>パリパリとした食感が楽しい一品。</li>



<li>キャベツと人参は細かく刻んで、豚バラ肉と一緒に炒めてから春巻きの皮で包みます。</li>



<li>お好みでスイートチリソースなどを付けて召し上がれ！</li>
</ul>



<p class="wp-block-paragraph">どのレシピも簡単に作れるので、ぜひ試してみてください！</p>
</blockquote>



<p class="wp-block-paragraph">分量まで示した具体的なレシピではないですが、５種類も提案してくれました。<br>どれも、簡単に作れそうで、おいしそうです。<br>ちょうど、お昼前だったので、おなかがすいてきました。</p>



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



<p class="is-style-alert-box has-box-style wp-block-paragraph">「DeepSeek-R1-Distill-Qwen-32B-GGUF」</p>



<p class="is-style-stitch-box has-box-style wp-block-paragraph">・考える（Thought） 53&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><br>Alright, the user has asked for a recipe using cabbage, carrots, and pork belly. Let me think about how to approach this.</p>



<p class="wp-block-paragraph">First, I need to consider what dishes are popular in Japan that include these ingredients. One common option is stir-fry, which can be quick and easy. Another possibility is making soup or maybe a stew, but since the user mentioned they&#8217;re into computer stuff, perhaps something quick would suit their busy schedule better.</p>



<p class="wp-block-paragraph">Stir-frying is a good choice because it&#8217;s quick and allows for mixing veggies with pork. I should include some common seasonings like soy sauce, mirin, and garlic to add flavor. Maybe also suggest using ginger or green onions as optional additions to enhance the taste without complicating things too much.</p>



<p class="wp-block-paragraph">I should outline the steps clearly: preparing the ingredients by slicing them into manageable sizes, cooking the meat first, then adding the vegetables. Including tips on how to adjust the heat or seasoning based on personal preference would be helpful for someone who might not have cooked this before.</p>



<p class="wp-block-paragraph">Also, thinking about meal pairing, serving it over rice is a natural fit in Japanese cuisine, so I can mention that as an option. This makes the dish more filling and satisfying.</p>



<p class="wp-block-paragraph">I need to keep the explanation simple but thorough enough for someone to follow without prior cooking experience. Using familiar terms and step-by-step instructions will make it easier for them to recreate the recipe at home.</p>
</blockquote>



<p class="wp-block-paragraph">シンキングの内容もすごいですね。<br>日本人や忙しそうだという所も意識して、考えてくれているようです。</p>



<p class="is-style-stitch-box has-box-style wp-block-paragraph">・回答 Total:4&#8217;36&#8221;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">キャベツ、人参、豚バラ肉を使って簡単にできるレシピはたくさんあります！例えば、「豚バラと野菜の炒め物」がおすすです。さっぱりとした味付けでヘルシーですし、具だくさんでお腹も満足します。</p>



<h3 class="wp-block-heading"><span id="toc6">材料：</span></h3>



<ul class="wp-block-list">
<li>豚バラ肉：200g</li>



<li>キャベツ：1/4個</li>



<li>人参：1本</li>



<li>長ねぎまたは玉ねぎ：適量（なくてもOK）</li>



<li>砂糖：小さじ1</li>



<li>酒：小さじ1</li>



<li>醤油：小さじ2</li>



<li>鍋用油：適量</li>
</ul>



<h3 class="wp-block-heading"><span id="toc7">手順：</span></h3>



<ol class="wp-block-list">
<li><strong>豚バラ肉を切る</strong>：薄切りにします。</li>



<li><strong>野菜を切る</strong>：キャベツは薄切り、人参はスリット（細長く削った形）または千切りにします。長ねぎも細切りにしてください。</li>



<li><strong>炒め物の仕込み</strong>：豚肉に砂糖、酒、醤油を混ぜて味を付けます。</li>



<li><strong>炒める</strong>：</li>
</ol>



<ul class="wp-block-list">
<li>鍋に油を熱し、豚肉を入れて軽く炒めます。</li>



<li>野菜を入れて一緒に炒めます。</li>



<li>全体がなじむように、強火でさっと炒めたら完成です！</li>
</ul>



<h3 class="wp-block-heading"><span id="toc8">チップス：</span></h3>



<ul class="wp-block-list">
<li><strong>味付けの調整</strong>：醤油や酒の量を調節すれば、味濃いめやさっぱりめにもできます。</li>



<li><strong>香辛料の追加</strong>：生姜チューブや刻み葱を入れると風味がアップします。</li>
</ul>



<h3 class="wp-block-heading"><span id="toc9">おすすめの組み合わせ：</span></h3>



<ul class="wp-block-list">
<li>米飯に乗せて食べるととてもおいしく感じます！</li>
</ul>



<p class="wp-block-paragraph">ぜひお試しください！ごちそうさま！</p>
</blockquote>



<p class="wp-block-paragraph">こちらは、一種類の提案ですが、かなり具体的に出してくれました。</p>



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



<h3 class="wp-block-heading"><span id="toc10">４．猫を抱っこしている、メイちゃんイメージの画像生成用のプロンプトを日本語と英語で。</span></h3>



<p class="is-style-information-box has-box-style wp-block-paragraph">「gemma-2-27b-it-GGUF」 Total:１&#8217;3&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h4 class="wp-block-heading"><span id="toc11">メイちゃんイメージ画像生成プロンプト</span></h4>



<p class="wp-block-paragraph"><strong>日本語:</strong></p>



<p class="wp-block-paragraph">美しい日本人女性「メイ」が、可愛い猫を抱っこしているイラスト。メイは20代後半、黒髪ロングヘアに、優しい笑顔。服装はシンプルなTシャツとジーンズ。背景は明るい室内。</p>



<p class="wp-block-paragraph"><strong>English:</strong></p>



<p class="wp-block-paragraph">An illustration of Mei, a beautiful Japanese woman in her late 20s, holding a cute cat. Mei has long black hair and a gentle smile. She is wearing a simple T-shirt and jeans. The background is a bright indoor setting.</p>



<p class="wp-block-paragraph"><strong>追加のポイント:</strong></p>



<ul class="wp-block-list">
<li>猫の種類、毛色などを指定するとより具体的にイメージを伝えられます。</li>



<li>メイちゃんの表情やポーズも具体的に指示しましょう。</li>



<li>atmosfer (雰囲気) や style (スタイル) を指定すると、画像のテイストを調整できます (例: 可愛い雰囲気, 水彩画風)。</li>
</ul>
</blockquote>



<p class="wp-block-paragraph">日本人女性とか、２０代後半とか、髪型や服装など、具体的なプロンプトを考えてくれました。<br>このプロンプトをそのまま、Amuseの「iNiverse Mix XL」モデルに突っ込んでみます。</p>



<h4 class="wp-block-heading"><span id="toc12">Image generation model ：iNiverse Mix XL  / <br>Prompt generation :gemma-2-27b-it-GGUF</span></h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="800" src="https://www.kazuban.com/blog/wp-content/uploads/2025/02/gemma-2-27b-it-800x800.png" alt="" class="wp-image-10266" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/02/gemma-2-27b-it-800x800.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/gemma-2-27b-it-500x500.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/gemma-2-27b-it-300x300.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/gemma-2-27b-it-768x768.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/gemma-2-27b-it-150x150.png 150w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/gemma-2-27b-it.png 1024w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">「優しい笑顔」のキーワードが効いているのか、笑顔がかわいいメイちゃんが出来上がりました。<br>壁に、漢字っぽい額があったり、なんとなく、和の雰囲気が出ています。<br>ただ、LLMには無関係ですが、猫の腕（足）が変ですね。<br>これは、画像生成Aiの問題ですが「Negative Prompt」でどうにかなると思います。</p>



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



<p class="is-style-alert-box has-box-style wp-block-paragraph">「DeepSeek-R1-Distill-Qwen-32B-GGUF」</p>



<p class="is-style-stitch-box has-box-style wp-block-paragraph">・考える（Thought）42&#8243;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><br>Okay, the user wants me to help generate image prompts for an illustration of &#8220;Mai-chan holding a cat.&#8221; They specified both Japanese and English versions. Let me start by understanding what they need.</p>



<p class="wp-block-paragraph">First, Mai is described as a young Japanese woman with expertise in computers, IT, programming, and NC. She&#8217;s gentle and kind but has a strong resolve. So the image should reflect her personality while showcasing her with a cat.</p>



<p class="wp-block-paragraph">I&#8217;ll break down the elements: Mai-chan, her appearance (maybe short hair, glasses), her expression (gentle smile), holding a cute cat, background details (like books or electronics to show her IT background). The overall vibe should be warm and harmonious.</p>



<p class="wp-block-paragraph">For the Japanese prompt, I need to capture all these details clearly. Maybe start with the setting, then describe Mai&#8217;s features, her interaction with the cat, and the surrounding elements. Keep it vivid so the image generator can pick up on the nuances.</p>



<p class="wp-block-paragraph">In English, I&#8217;ll translate those points but ensure they convey the same warmth and detail. Mentioning her expertise subtly through background items will help maintain the character&#8217;s depth without making it too literal.</p>



<p class="wp-block-paragraph">I should also make sure both prompts are concise yet comprehensive, covering all aspects of Mai&#8217;s personality and surroundings to create a cohesive image.</p>
</blockquote>



<p class="wp-block-paragraph">メイちゃんがいつの間にかMai-chanになっているのは気になりますが<br>思考段階を翻訳してみると、やはりすごいです。<br>まず、system Promptから、メイちゃんの性格や外見を推測して、専門から背景を導きだしてます。<br>たぶん、「gemma」も、たった３行のsystem Promptから上のようなプロンプトをだしているので、内部的には、いろいろ推測していると思いますが、「deepseek」は「考える（Thought）」の内容も、表示してくれるので、その内容も興味深いです。</p>



<p class="is-style-stitch-box has-box-style wp-block-paragraph">・回答 Total:2&#8217;45&#8221;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h4 class="wp-block-heading"><span id="toc13">日本語プロンプト:</span></h4>



<p class="wp-block-paragraph">「猫を抱っこしているメイちゃんのイラスト。優しく穏やかな表情で、愛らしい猫を大切そうに抱いている姿。背景はシンプルで温かみのある空間。プログラミングやコンピュータ関連のアイテムがちらりと見える設定。全体的に柔らかい色合いと和谐感のあるイメージ。」</p>



<h4 class="wp-block-heading"><span id="toc14">英語プロンプト:</span></h4>



<p class="wp-block-paragraph">&#8220;Illustration of Mai-chan holding a cat. A gentle and warm expression, carefully hugging a cute cat. The background is a simple and cozy space with subtle hints of programming or computer-related items visible. Overall soft color tones and a harmonious feel.&#8221;</p>
</blockquote>



<p class="wp-block-paragraph">こちらは、日本人とか、年齢などの指示はでてきませんでしたが、コンピュータ関連などの、システムプロンプトの内容が入ってきました。<br>ただ、「和谐感」という、わからない漢字が出てきましたが、英語のプロンプトを使うので画像生成にはあまり関係ないと思います。<br>こちらも、Amuseの「iNiverse Mix XL」モデルに突っ込んでみます。</p>



<h4 class="wp-block-heading"><span id="toc15">Image generation model ：iNiverse Mix XL v1.1  / <br>Prompt generation :DeepSeek-R1-Distill-Qwen-32B-GGUF</span></h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="800" src="https://www.kazuban.com/blog/wp-content/uploads/2025/02/DeepSeek-R1-Distill-Qwen-32B-800x800.png" alt="" class="wp-image-10267" srcset="https://www.kazuban.com/blog/wp-content/uploads/2025/02/DeepSeek-R1-Distill-Qwen-32B-800x800.png 800w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/DeepSeek-R1-Distill-Qwen-32B-500x500.png 500w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/DeepSeek-R1-Distill-Qwen-32B-300x300.png 300w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/DeepSeek-R1-Distill-Qwen-32B-768x768.png 768w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/DeepSeek-R1-Distill-Qwen-32B-150x150.png 150w, https://www.kazuban.com/blog/wp-content/uploads/2025/02/DeepSeek-R1-Distill-Qwen-32B.png 1024w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">日本人の指定はなかったですがsystem Promptから読み取り、「優しく穏やかな表情」というので、かなり清楚なメイちゃんになりました。<br>こちらも、LLMには関係ないですが、猫の腕（足）が変になりました。</p>



<h2 class="wp-block-heading"><span id="toc16">感想</span></h2>



<p class="wp-block-paragraph">筆者が思いつく例題では、比較するにも、あまり差が見えませんでした。<br>ただ、最初にも書きましたが、「japanese」モデルは筆者の環境では、あまりよくなかったです。<br>また、「DeepSeek」は、回答の前に「考える」工程がありそうですが、その影響なのかは？？ですが、小さいモデルでは、時間の割にあまりいい結果にはなりませんでした。<br>コミュニケーションを楽しんだり、検索や翻訳サイトの延長で使う分には、「DeepSeek」を使う意味はあまり感じませんでした。<br>ただ、まずは「考える」と言うことで、質問内容によっては、時間がかかっても、大きめののモデルは試すのもありだと思います。<br>そういう意味では、オンラインの「DeepSeek」をやってみたいですが、ちょっと抵抗があります。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
