<?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>複数ネットショップの商品管理専門 簡単出品王子 &#187; web技術</title>
	<atom:link href="https://www.s-oj.com/category/ec-business/web%E6%8A%80%E8%A1%93/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.s-oj.com</link>
	<description>楽天、ヤフー、amazon等 多モール展開の最強ツール</description>
	<lastBuildDate>Tue, 03 Mar 2026 11:25:12 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8.14</generator>
	<item>
		<title>WSLでTensorFlow with Keras をインストール</title>
		<link>https://www.s-oj.com/ec-business/system/wsl%e3%81%a7tensorflow-with-keras-%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/</link>
		<comments>https://www.s-oj.com/ec-business/system/wsl%e3%81%a7tensorflow-with-keras-%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/#comments</comments>
		<pubDate>Fri, 23 Oct 2020 07:24:06 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[web技術]]></category>
		<category><![CDATA[システム]]></category>

		<guid isPermaLink="false">https://www.s-oj.com/?p=4797</guid>
		<description><![CDATA[WSLにTensorFlowをインストール まずは必要なソフトウェアをインストールしていきます pyenv p [&#8230;]]]></description>
				<content:encoded><![CDATA[<!-- _CONTENTS_ST_ --><div class="hatena">
<h3 id="hs_e9ee70f64d0e4fdc9442a157ffb398ee_header_0">WSLにTensorFlowをインストール</h3>

<p>まずは必要なソフトウェアをインストールしていきます</p>


<h4 id="hs_e9ee70f64d0e4fdc9442a157ffb398ee_header_1">pyenv</h4>
<p>pyenvはpythonのバージョンを管理してくれたりするツールです、2系とか3系とかも簡単に切り替えられたりします。</p>


<p>以下のコマンドでpyenvをインストール</p>

<pre class=" highlight">git clone https://github.com/yyuu/pyenv ~/.pyenv</pre>

<p>以下のコマンドを実行してパスを通します</p>

<pre class=" highlight">echo 'export PYENV_ROOT=&quot;$HOME/.pyenv&quot;' &gt;&gt; ~/.bashrc
echo 'export PATH=&quot;$PYENV_ROOT/bin:$PATH&quot;' &gt;&gt; ~/.bashrc
echo 'eval &quot;$<span class="br0">&#40;</span>pyenv init -<span class="br0">&#41;</span>&quot;' &gt;&gt; ~/.bashrc
source ~/.bashrc</pre>

<p>バージョンが表示されれば成功！</p>

<pre class=" highlight">pyenv --version</pre>

<h4 id="hs_e9ee70f64d0e4fdc9442a157ffb398ee_header_2">anaconda</h4>
<p>Anacondaはザックリ言うとPythonとかそれに関連するソフトを一発でインストールして環境構築などメンドクサイことを全部やってくれるソフトです。</p>

<p>こういうソフトを「ディストリビューション」と言ったりします。</p>


<p>以下からパッケージの一覧を表示</p>

<pre class=" highlight">pyenv install --list</pre>

<p>anaconda3-5.3.1をインストールしましょう</p>

<pre class=" highlight">pyenv install anaconda3-5.3.1</pre>

<p>anaconda3-5.3.1であれば成功</p>

<pre class=" highlight">pyenv versions</pre>

<p>anacondaを使うように修正</p>

<pre class=" highlight">pyenv global anaconda3-5.3.1
pyenv rehash</pre>

<h4 id="hs_e9ee70f64d0e4fdc9442a157ffb398ee_header_3">仮想環境を作成</h4>

<p>仮想環境を生成</p>

<pre class=" highlight">conda create -n keras</pre>

<p>仮想環境に入る、プロンプトの先頭に「(keras)」と表示されれば成功！</p>

<pre class=" highlight">source $PYENV_ROOT/versions/anaconda3-5.3.1/bin/activate keras</pre>
<br />

<h4 id="hs_e9ee70f64d0e4fdc9442a157ffb398ee_header_4">Jupyter Notebook</h4>
<p>Jupyter Notebookはプログラムの履歴を記録することができます</p>

<p>データ解析などでは必須級のソフトです</p>


<pre class=" highlight">conda install jupyter
ipython kernel install --user</pre>

<h4 id="hs_e9ee70f64d0e4fdc9442a157ffb398ee_header_5">TensorFlow with Keras</h4>

<p>TensorFlowをインストール</p>

<p>KerasはTensorFlowをインストールすれば一緒にインストールされます</p>

<pre class=" highlight">conda install tensorflow</pre>

<h4 id="hs_e9ee70f64d0e4fdc9442a157ffb398ee_header_6">それでは使ってみよう</h4>
<pre class=" highlight">jupyter notebook</pre>
</div><!-- hatena --><!-- _CONTENTS_EN_ -->]]></content:encoded>
			<wfw:commentRss>https://www.s-oj.com/ec-business/system/wsl%e3%81%a7tensorflow-with-keras-%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPでpuppeteerを動かせるPuPHPeteerのよくある記述方法一覧</title>
		<link>https://www.s-oj.com/ec-business/system/php-puppeteer-puphpeteer/</link>
		<comments>https://www.s-oj.com/ec-business/system/php-puppeteer-puphpeteer/#comments</comments>
		<pubDate>Wed, 12 Jun 2019 08:52:17 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[web技術]]></category>
		<category><![CDATA[システム]]></category>

		<guid isPermaLink="false">https://www.s-oj.com/?p=4656</guid>
		<description><![CDATA[PHPでpuppeteerを動かせるPuPHPeteer https://github.com/nesk/pu [&#8230;]]]></description>
				<content:encoded><![CDATA[<!-- _CONTENTS_ST_ --><div class="hatena">
<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_0">PHPでpuppeteerを動かせるPuPHPeteer</h3>
<p>https://github.com/nesk/puphpeteer</p>

<p>プログラムに関してはこちら、詳細に関しては説明しているサイトがたくさんあるので割愛</p>


<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_1">以下のようなエラーになる</h3>
<pre class=" highlight">Fatal error: Uncaught NeskRialtoExceptionsNodeFatalException: Failed to launch chrome! 
<span class="br0">&#91;</span>FATAL:zygote_host_impl_linux.cc<span class="br0">&#40;</span><span class="nu0">116</span><span class="br0">&#41;</span><span class="br0">&#93;</span> No usable sandbox! Update your kernel or see 

https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md

for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox. </pre>

<p>サンドボックスを切ればエラーは解消されます</p>

<pre class=" highlight">$browser = $puppeteer-&gt;launch<span class="br0">&#40;</span><span class="br0">&#41;</span>;</pre>
<p>↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓</p>

<pre class=" highlight">$browser = $puppeteer-&gt;launch<span class="br0">&#40;</span><span class="br0">&#91;</span> 'args' =&gt; <span class="br0">&#91;</span>'--no-sandbox', '--disable-setuid-sandbox'<span class="br0">&#93;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</pre>

<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_2">ベーシック認証をパスしたい</h3>
<pre class=" highlight">$user = '<span class="br0">&#91;</span>ベーシック認証のユーザー<span class="br0">&#93;</span>';
$pass = '<span class="br0">&#91;</span>ベーシック認証のパスワード<span class="br0">&#93;</span>';
$page = $browser-&gt;newPage<span class="br0">&#40;</span><span class="br0">&#41;</span>;
$page-&gt;setExtraHTTPHeaders<span class="br0">&#40;</span>array<span class="br0">&#40;</span>
	'Authorization' =&gt; 'Basic '.base64_encode<span class="br0">&#40;</span>$user.':'.$pass<span class="br0">&#41;</span>,
<span class="br0">&#41;</span><span class="br0">&#41;</span>;
$page-&gt;goto<span class="br0">&#40;</span>'<span class="br0">&#91;</span>ベーシック認証のページ<span class="br0">&#93;</span>'<span class="br0">&#41;</span>;</pre>
<br />

<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_3">ページのbodyを取得したい</h3>
<pre class=" highlight">$pagebody = $page-&gt;evaluate<span class="br0">&#40;</span>JsFunction::createWithBody<span class="br0">&#40;</span>&quot;return document.body.innerHTML;&quot;<span class="br0">&#41;</span><span class="br0">&#41;</span>;</pre>

</div><!-- hatena --><!-- _CONTENTS_EN_ -->]]></content:encoded>
			<wfw:commentRss>https://www.s-oj.com/ec-business/system/php-puppeteer-puphpeteer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>windows10上のUBUNTUでgoogle chromeをプログラム制御自動化してみる</title>
		<link>https://www.s-oj.com/ec-business/system/windows10%e4%b8%8a%e3%81%aeubuntu%e3%81%a7google-chrome%e3%82%92%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e5%88%b6%e5%be%a1%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/</link>
		<comments>https://www.s-oj.com/ec-business/system/windows10%e4%b8%8a%e3%81%aeubuntu%e3%81%a7google-chrome%e3%82%92%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e5%88%b6%e5%be%a1%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Wed, 13 Jun 2018 02:25:50 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[web技術]]></category>
		<category><![CDATA[システム]]></category>

		<guid isPermaLink="false">https://www.s-oj.com/?p=4634</guid>
		<description><![CDATA[windows10上のUBUNTUでgoogle chromeをプログラム制御してみる Windows 10  [&#8230;]]]></description>
				<content:encoded><![CDATA[<!-- _CONTENTS_ST_ --><div class="hatena">
<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_0">windows10上のUBUNTUでgoogle chromeをプログラム制御してみる</h3>
<p><a href="https://www.s-oj.com/wp-content/uploads/2018/06/wslchromerun.gif"><img src="https://www.s-oj.com/wp-content/uploads/2018/06/wslchromerun.gif" alt="wslchromerun" width="480" height="256" class="aligncenter size-full wp-image-4638" /></a></p>

<p>Windows 10 バージョン1709（Windows 10 Fall Creators Update、ビルド16299）以降Windows10でLinuxを実行することができるWSL（Windows Subsystem for Linux）が利用できるようになり、WindowsでもXAMPPやHyper-Vを使わずにPHPが編集・プレビュー可能になりました！開発者にとっては嬉しいニュースですね。WSLの立ち位置としてはXAMPPよりLINUXに近く、Hyper-Vよりメモリ効率がよいといった所が長所になるでしょうか。</p>

<br />

<p>このWSL機能を使ってgoogle chrome（正確にはヘッドレスクローム）をプログラム制御するまでの手順を記録しておきます。ヘッドレスブラウザの利点としては最近増えて来たJavaScriptを多用したようなサイトのスクレイピングが出来るようになったりします。curlではできなかったことが出来るようになりますね。</p>

<br />

<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_1">JavaScriptパッケージマネージャー「Yarn」をインストール</h3>
<pre class=" highlight"># curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
# echo &quot;deb https://dl.yarnpkg.com/debian/ stable main&quot; | sudo tee /etc/apt/sources.list.d/yarn.list
# sudo apt-get update &amp;&amp; sudo apt-get install yarn</pre>

<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_2">「Node.js」をインストール</h3>
<pre class=" highlight"># curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
# sudo apt-get install -y nodejs</pre>

<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_3">ヘッドレスクロームを走らせるフォルダを制作</h3>
<pre class=" highlight"># cd /mnt/c/html
# mkdir less
# cd less</pre>
<br />

<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_4">yarnでヘッドレスクロームを設置</h3>
<pre class=" highlight"># yarn init
# yarn add chromeless</pre>

<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_5">簡単なテストプログラムを書いてみます</h3>
<pre class=" highlight"># vi example.js</pre>

<pre class=" highlight">const <span class="br0">&#123;</span> Chromeless <span class="br0">&#125;</span> = require<span class="br0">&#40;</span>'chromeless'<span class="br0">&#41;</span>
&nbsp;
async function run<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
  const chromeless = new Chromeless<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
  await chromeless
    .setUserAgent<span class="br0">&#40;</span>'Mozilla/<span class="nu0">5.0</span> <span class="br0">&#40;</span>Windows NT <span class="nu0">6.1</span><span class="br0">&#41;</span> AppleWebKit/<span class="nu0">537.36</span> <span class="br0">&#40;</span>KHTML, like Gecko<span class="br0">&#41;</span> Chrome/28.0.1500.63 Safari/<span class="nu0">537.36</span>'<span class="br0">&#41;</span>
    .goto<span class="br0">&#40;</span>'https://www.yahoo.co.jp/'<span class="br0">&#41;</span>
    .type<span class="br0">&#40;</span>'hello','#srchtxt'<span class="br0">&#41;</span>
    .click<span class="br0">&#40;</span>'#srchbtn'<span class="br0">&#41;</span>
&nbsp;
    const screenshot = await chromeless.screenshot<span class="br0">&#40;</span><span class="br0">&#123;</span>filePath:'/mnt/c/html/hello.png'<span class="br0">&#125;</span><span class="br0">&#41;</span>
    console.log<span class="br0">&#40;</span>screenshot<span class="br0">&#41;</span>
<span class="br0">&#125;</span>
&nbsp;
run<span class="br0">&#40;</span><span class="br0">&#41;</span>.catch<span class="br0">&#40;</span>console.error.bind<span class="br0">&#40;</span>console<span class="br0">&#41;</span><span class="br0">&#41;</span></pre>

<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_6">起動するとgoogleChromeがひとりでに動き出します</h3>
<p>ログインしたりスクリーンショットをとったりスクレイピングしたり</p>

<p>いろいろなことが出来ますよ</p>


<pre class=" highlight"># node hello.js</pre>

<p><iframe width="560" height="315" src="https://www.youtube.com/embed/uhyDcExWCho" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></p>

</div><!-- hatena --><!-- _CONTENTS_EN_ -->]]></content:encoded>
			<wfw:commentRss>https://www.s-oj.com/ec-business/system/windows10%e4%b8%8a%e3%81%aeubuntu%e3%81%a7google-chrome%e3%82%92%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e5%88%b6%e5%be%a1%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>windows10のWSLでApache2のmod_rewriteを有効にするやり方</title>
		<link>https://www.s-oj.com/ec-business/system/wsl-apache2_mod_rewrite/</link>
		<comments>https://www.s-oj.com/ec-business/system/wsl-apache2_mod_rewrite/#comments</comments>
		<pubDate>Thu, 24 May 2018 09:50:45 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[web技術]]></category>
		<category><![CDATA[システム]]></category>

		<guid isPermaLink="false">https://www.s-oj.com/?p=4625</guid>
		<description><![CDATA[windows10のWSL Apache2のmod_rewriteを有効にするやり方 .htaccessを設定 [&#8230;]]]></description>
				<content:encoded><![CDATA[<!-- _CONTENTS_ST_ --><div class="hatena">
<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_0">windows10のWSL Apache2のmod_rewriteを有効にするやり方</h3>
<p><a href="https://www.s-oj.com/wp-content/uploads/2017/12/919d1604801bd41dec71a060cc53bed3_m.jpg"><img src="https://www.s-oj.com/wp-content/uploads/2017/12/919d1604801bd41dec71a060cc53bed3_m.jpg" alt="919d1604801bd41dec71a060cc53bed3_m" width="500" height="335" class="aligncenter size-full wp-image-4595" /></a></p>

<p>.htaccessを設定してもURLの書き換えが出来ない場合モッズリライトが有効になっていない可能性があります（2018/05/24時点では有効ではありませんでした）</p>


<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_1">mod_rewrite.soモジュールが有効か確認</h3>
<p>$ apache2ctl -M</p>

<p>コンパイル時に読み込まれたモジュールは (static)と表示され</p>

<p>apache実行時に読み込んだもの（DSO：Dynamic Shared Object）は(shared)と表示されます</p>

<p>有効ではないですね</p>

<pre class=" highlight">Loaded Modules:
 core_module <span class="br0">&#40;</span>static<span class="br0">&#41;</span>
 so_module <span class="br0">&#40;</span>static<span class="br0">&#41;</span>
 watchdog_module <span class="br0">&#40;</span>static<span class="br0">&#41;</span>
 http_module <span class="br0">&#40;</span>static<span class="br0">&#41;</span>
 log_config_module <span class="br0">&#40;</span>static<span class="br0">&#41;</span>
 logio_module <span class="br0">&#40;</span>static<span class="br0">&#41;</span>
 version_module <span class="br0">&#40;</span>static<span class="br0">&#41;</span>
 unixd_module <span class="br0">&#40;</span>static<span class="br0">&#41;</span>
 access_compat_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 alias_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 auth_basic_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 authn_core_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 authn_file_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 authz_core_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 authz_host_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 authz_user_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 autoindex_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 deflate_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 dir_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 env_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 filter_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 mime_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 mpm_prefork_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 negotiation_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 php7_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 setenvif_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span>
 status_module <span class="br0">&#40;</span>shared<span class="br0">&#41;</span></pre>
<br />

<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_2">a2enmodコマンドを使ってmod_rewrite.soモジュールを有効化します</h3>
<p>$ sudo /usr/sbin/a2enmod rewrite</p>

<br />

<p>a2enmodはモジュールを有効化、逆にa2dismodで無効化します</p>


<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_3">apache2の設定ファイルを修正してhtaccessを有効にします</h3>
<p>$ sudo vi /etc/apache2/apache2.conf</p>

<pre class=" highlight">&lt;Directory /var/www/&gt;
        Options Indexes FollowSymLinks
        #AllowOverride None
        AllowOverride All
        Require all granted
&lt;/Directory&gt;</pre>
<br />

<h3 id="hs_b2c8ef3fde488120751b8235e6d73d3b_header_4">apacheの再起動</h3>
<p>$ sudo service apache2 restart</p>

<br />

</div><!-- hatena --><!-- _CONTENTS_EN_ -->]]></content:encoded>
			<wfw:commentRss>https://www.s-oj.com/ec-business/system/wsl-apache2_mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>windows10のWSL機能を使ってCドライブ直下のPHPをプレビューできるようにする</title>
		<link>https://www.s-oj.com/ec-business/system/windows-subsystem-for-linux/</link>
		<comments>https://www.s-oj.com/ec-business/system/windows-subsystem-for-linux/#comments</comments>
		<pubDate>Thu, 24 May 2018 09:05:27 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[web技術]]></category>
		<category><![CDATA[システム]]></category>

		<guid isPermaLink="false">https://www.s-oj.com/?p=4615</guid>
		<description><![CDATA[windows10標準機能でPHPをプレビューしよう Windows 10 バージョン1709（Windows [&#8230;]]]></description>
				<content:encoded><![CDATA[<!-- _CONTENTS_ST_ --><div class="hatena">
<h3 id="hs_e1f77278c40b35b4c313b3a9de27fccf_header_0">windows10標準機能でPHPをプレビューしよう</h3>
<p><a href="https://www.s-oj.com/wp-content/uploads/2017/12/919d1604801bd41dec71a060cc53bed3_m.jpg"><img src="https://www.s-oj.com/wp-content/uploads/2017/12/919d1604801bd41dec71a060cc53bed3_m.jpg" alt="919d1604801bd41dec71a060cc53bed3_m" width="500" height="335" class="aligncenter size-full wp-image-4595" /></a></p>

<p>Windows 10 バージョン1709（Windows 10 Fall Creators Update、ビルド16299）以降Windows10でLinuxを実行することができるWSL（Windows Subsystem for Linux）が利用できるようになり、WindowsでもXAMPPやHyper-Vを使わずにPHPが編集・プレビュー可能になりました！開発者にとっては嬉しいニュースですね。WSLの立ち位置としてはXAMPPよりLINUXに近く、Hyper-Vよりメモリ効率がよいといった所が長所になるでしょうか。</p>

<br />

<p>該当の機能を使ってUBUNTU（Ubuntu 16.04.3 LTS）をインストールし</p>

<p>Cドライブ直下のPHPを表示するまでの記録です</p>

<br />

<p>WSL（Windows Subsystem for Linux）を有効にして</p>

<p>UBUNTUをインストールするまでは説明しているサイトが沢山あると思うのでググってください</p>

<br />

<h3 id="hs_e1f77278c40b35b4c313b3a9de27fccf_header_1">UBUNTUにapacheとPHPを導入する</h3>
<p>#まずはインストールに使うapt-getを最新にしておきます</p>

<p>sudo apt-get update</p>

<br />

<p>#Apache2をインストールします</p>

<p>sudo apt-get install apache2 -y</p>

<br />

<p>#PHPをインストールします</p>

<p>sudo apt-get install php php-mysql libapache2-mod-php php-gd php-mbstring php-pear php-imap php-xml php-pgsql php-mcrypt -y</p>

<br />

<h3 id="hs_e1f77278c40b35b4c313b3a9de27fccf_header_2">ドキュメントルートをCドライブ直下に</h3>
<p>apache2の設定ファイル「/etc/apache2/apache2.conf」を編集し</p>

<p>DocumentRootを「/mnt/c/」に変更するやりかただと</p>

<p>「403 Forbidden Permission denied」となりうまく表示できなかったため</p>

<p>シンボリックリンクを設定するやり方で実現します</p>

<br />

<p>#Cドライブ直下にフォルダ制作</p>

<p>windowsのエクスプローラでCドライブ直下にhtmlフォルダを新規製作します</p>

<br />

<p>#WEBのドキュメントルートフォルダを削除します(細心の注意をrm -rfの意味が分からない人は調べてから実行してください)</p>

<p>sudo rm -rf /var/www/html</p>

<br />

<p>#Cドライブ直下をドキュメントルートに変更</p>

<p>cd /var/www</p>

<p>sudo ln -s /mnt/c/html</p>

<br />

<p>#phpファイルを制作</p>

<p>vi /mnt/c/html/index.php</p>

<pre class=" highlight">&lt;?php
    phpinfo<span class="br0">&#40;</span><span class="br0">&#41;</span>;
?&gt;</pre>
<br />

<p>#Apache2を起動します</p>

<p>sudo service apache2 start</p>

<br />

<p>#確認</p>

<p>ブラウザを起動しURLに「localhost」と入れてPHPの情報が出てきたら成功です</p>


</div><!-- hatena --><!-- _CONTENTS_EN_ -->]]></content:encoded>
			<wfw:commentRss>https://www.s-oj.com/ec-business/system/windows-subsystem-for-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MYSQLのインデックスとレコード数と挿入速度の関係</title>
		<link>https://www.s-oj.com/ec-business/system/mysql-insert-speed-index/</link>
		<comments>https://www.s-oj.com/ec-business/system/mysql-insert-speed-index/#comments</comments>
		<pubDate>Fri, 11 Aug 2017 03:00:48 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[web技術]]></category>
		<category><![CDATA[システム]]></category>

		<guid isPermaLink="false">https://www.s-oj.com/?p=4553</guid>
		<description><![CDATA[インデックスとレコード数と挿入速度の関係 インデックスとインサートの速度の関係 MYSQLの検索が遅い場合はイ [&#8230;]]]></description>
				<content:encoded><![CDATA[<!-- _CONTENTS_ST_ --><div class="hatena">
<h3 id="hs_962f8719a4398049d85680cf5998ec0b_header_0">インデックスとレコード数と挿入速度の関係</h3>
<p>インデックスとインサートの速度の関係</p>

<p><strong>MYSQLの検索が遅い場合はインデックスを張ることで速くなります</strong></p>

<p>しかし、教科書には<strong>やたらとインデックスを張るな</strong>と出てきます</p>


<p>理由としては</p>

<br />

<p>(1)<strong>インサートが遅くなるから</strong></p>

<p>(2)余分なディスクを使うから</p>

<br />

<p>２に関しては今のご時世気にすることは少なくなってきたかと思いますが</p>

<p>それでは、実際にMYSQLにインデックスをはってインサートすると</p>

<p>速度はどのように変化していくのか検証してみました。</p>

<br />

<h4 id="hs_962f8719a4398049d85680cf5998ec0b_header_1">検証環境</h4>
<pre>
OS:CentOS6.7 64bit
ソフトウェア: MySQL
ソフトウェアバージョン: 5.1.73 - Source distribution
CPU：ATOM</pre>

<h4 id="hs_962f8719a4398049d85680cf5998ec0b_header_2">１．フルテキストインデックスを最大数まで張った場合</h4>
<table>
<tr>
<th>インデックスの種類</th>
<th>型</th>
<th>数</th>
</tr>
<tr>
<td>インデックス</td>
<td>INT</td>
<td>1</td>
</tr>
<tr>
<td>フルテキストインデックス</td>
<td>TEXT</td>
<td>63</td>
</tr>
</table>
<p><a href="https://www.s-oj.com/wp-content/uploads/2017/08/fig001.jpg"><img src="https://www.s-oj.com/wp-content/uploads/2017/08/fig001.jpg" alt="fig001" width="939" height="562" class="aligncenter size-full wp-image-4556" /></a></p>

<p>マシンのパワーにもよると思いますが、80万行目あたりから急激に遅くなって120万行目あたりから１インサートに0.7秒かかっています。</p>


<h4 id="hs_962f8719a4398049d85680cf5998ec0b_header_3">２．インデックスを最大数まで張った場合</h4>
<table>
<tr>
<th>インデックスの種類</th>
<th>型</th>
<th>数</th>
</tr>
<tr>
<td>インデックス</td>
<td>INT</td>
<td>1</td>
</tr>
<tr>
<td>インデックス</td>
<td>VARCHAR(255)</td>
<td>63</td>
</tr>
</table>
<p><a href="https://www.s-oj.com/wp-content/uploads/2017/08/fig002.jpg"><img src="https://www.s-oj.com/wp-content/uploads/2017/08/fig002.jpg" alt="fig002" width="937" height="558" class="aligncenter size-full wp-image-4569" /></a></p>

<p>マシンのパワーにもよると思いますが、100万行目あたりから急激に遅くなっています、やはりフルテキストインデックスよりかは通常のインデックスのほうが若干遅くなりにくいようですね。</p>


<h4 id="hs_962f8719a4398049d85680cf5998ec0b_header_4">３．インデックスを張らない場合</h4>
<table>
<tr>
<th>インデックスの種類</th>
<th>型</th>
<th>数</th>
</tr>
<tr>
<td>インデックス</td>
<td>INT</td>
<td>1</td>
</tr>
</table>
<p><a href="https://www.s-oj.com/wp-content/uploads/2017/08/fig003.jpg"><img src="https://www.s-oj.com/wp-content/uploads/2017/08/fig003.jpg" alt="fig003" width="938" height="563" class="aligncenter size-full wp-image-4573" /></a></p>

<p>当たり前っちゃ当たり前かもしれませんが、インデックスを張らなければレコード数が増えても特に速度の変化はありませんでした。</p>

<br />
<br />

<h4 id="hs_962f8719a4398049d85680cf5998ec0b_header_5">まとめ</h4>
<p>JOINしてたり、複数のインサートが走ったりと設計にもよると思いますが、</p>

<p><strong>大体80万行くらいに収まるようなアプリケーションであれば気にせずインデックスを張っちゃってもいい</strong>のかもしれません。</p>

<br />

<p>しかし、それをこえると急激に重くなって一レコード0.7秒と時間がめちゃくちゃかかるようになるので</p>

<p>いろいろと試行錯誤しないといけないってことですな</p>

<br />

</div><!-- hatena --><!-- _CONTENTS_EN_ -->]]></content:encoded>
			<wfw:commentRss>https://www.s-oj.com/ec-business/system/mysql-insert-speed-index/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>無料のSSL証明書Let&#8217;s EncryptをCentOS6.5に導入する方法</title>
		<link>https://www.s-oj.com/ec-business/system/lets-encrypt-centos6-5/</link>
		<comments>https://www.s-oj.com/ec-business/system/lets-encrypt-centos6-5/#comments</comments>
		<pubDate>Wed, 01 Mar 2017 12:30:51 +0000</pubDate>
		<dc:creator><![CDATA[充白石]]></dc:creator>
				<category><![CDATA[web技術]]></category>
		<category><![CDATA[システム]]></category>

		<guid isPermaLink="false">https://www.s-oj.com/?p=4492</guid>
		<description><![CDATA[社内の開発サーバにSSLを導入したい モールと連携する際に最近ではAPIを使って行うのがスタンダードになってき [&#8230;]]]></description>
				<content:encoded><![CDATA[<!-- _CONTENTS_ST_ --><div class="hatena">
<h3 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_0">社内の開発サーバにSSLを導入したい</h3>
<p>モールと連携する際に最近ではAPIを使って行うのがスタンダードになってきましたが、テスト環境であってもロールバックURLにSSLを求められることがたまにあります。社内の開発サーバにわざわざ有料のSSLを適用するのは少々もったいないので最近話題になっているフリーのSSL「Let&#8217;s Encrypt（レッツエンクリプト）」を社内の開発サーバに適用したのでその手順を記録しておきます。</p>


<p><a href="https://www.s-oj.com/wp-content/uploads/2017/03/723ed567886c2331c63a6f76aafe80e6_m.jpg"><img src="https://www.s-oj.com/wp-content/uploads/2017/03/723ed567886c2331c63a6f76aafe80e6_m.jpg" alt="723ed567886c2331c63a6f76aafe80e6_m" width="500" height="335" class="aligncenter size-full wp-image-4496" /></a></p>


<h3 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_1">環境（弊社の開発サーバ）</h3>
<ul>
<li>アパッチです</li>
<li>DDDNSでドメインを付与しています</li>
<li>ポート80と443を開けています</li>
<li>ベーシック認証をしていません</li>
</ul>


<h3 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_2">やりかた</h3>

<h4 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_3">1.依存パッケージをYUMでインストールしておきます</h4>
<pre class=" highlight"># yum install -y httpd mod_ssl git openssl</pre>

<h4 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_4">2.任意のフォルダに移動します</h4>
<pre class=" highlight"># cd /opt</pre>

<h4 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_5">3.GITでファイルをクローンします</h4>
<pre class=" highlight"># git clone https://github.com/letsencrypt/letsencrypt</pre>

<h4 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_6">4.移動します</h4>
<pre class=" highlight"># cd letsencrypt</pre>

<h4 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_7">5.ヘルプファイルの確認</h4>
<pre class=" highlight"># ./certbot-auto --help</pre>

<h4 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_8">6.それでは鍵を発行します</h4>
<pre class=" highlight"># ./certbot-auto certonly --non-interactive --agree-tos --webroot -w /var/www/html -d <span class="br0">&#91;</span>sample.com<span class="br0">&#93;</span> --email <span class="br0">&#91;</span>sample@sample.com<span class="br0">&#93;</span></pre>

<table>
<tr>
<th>オプション</th>
<th>説明</th>
</tr>
<tr>
<td>certonly と &#8211;webroot</td>
<td>ウェブサーバを停止することなく SSL/TLS 証明書を発行したい場合には、Webroot プラグインを使用します</td>
</tr>
<tr>
<td>-w</td>
<td>Webサーバのドキュメントルートディレクトリ（ウェブサーバで公開するコンテンツが入っているディレクトリ）を指定します、/var/www/htmlから変更している場合は適宜変更してください</td>
</tr>
<tr>
<td>-d</td>
<td>ドメイン名です、DDDNSサービスなどで設定しているドメインを指定します</td>
</tr>
<tr>
<td>&#8211;email</td>
<td>期限が切れそうになったら告知したいメールアドレスを指定します</td>
</tr>
</table>

<h4 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_9">7.成功しているか確認</h4>
<pre class=" highlight"># cd /etc/letsencrypt/live/</pre>

<p>指定したドメイン[sample.com]のフォルダが出来ていたら成功です。</p>

<p>超簡単ですね（感動）！</p>

<p>中にはpemファイルが入っているので興味があったら見てみましょう。</p>


<h4 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_10">8.SSLを設定します</h4>
<pre class=" highlight"># vi /etc/httpd/conf.d/ssl.conf</pre>

<p><VirtualHost _default_:443>の中を次のように書き換えます</p>


<pre class=" highlight">ServerName <span class="br0">&#91;</span>sample.com<span class="br0">&#93;</span>:<span class="nu0">443</span>
SSLCertificateFile /etc/letsencrypt/live/<span class="br0">&#91;</span>sample.com<span class="br0">&#93;</span>/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<span class="br0">&#91;</span>sample.com<span class="br0">&#93;</span>/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/<span class="br0">&#91;</span>sample.com<span class="br0">&#93;</span>/chain.pem</pre>

<h4 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_11">9.再起動</h4>
<pre class=" highlight">service httpd restart</pre>

<p>DDDNSのドメインでSSLに接続できると思います</p>

<p>無料！無料！ワッショイ！嬉しいですねー</p>

<br />

<h4 id="hs_66f011aa6443cff5629583a9e0c3a25d_header_12">10.自動更新</h4>
<p>Let&#8217;s Encryptは3か月で有効期限が切れてしまうので最後にCRONで定期更新するようにしておきましょう</p>


<pre class=" highlight">#crontab -e
<span class="nu0">50</span> <span class="nu0">3</span> * * * /opt/letsencrypt/certbot-auto renew --post-hook &quot;/usr/sbin/apachectl graceful&quot;</pre>
<br />
<br />
<br />
<br />

</div><!-- hatena --><!-- _CONTENTS_EN_ -->]]></content:encoded>
			<wfw:commentRss>https://www.s-oj.com/ec-business/system/lets-encrypt-centos6-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>windows8で無線と有線を同時接続した場合に有線接続を優先にする方法</title>
		<link>https://www.s-oj.com/ec-business/windows8%e3%81%a7%e7%84%a1%e7%b7%9a%e3%81%a8%e6%9c%89%e7%b7%9a%e3%82%92%e5%90%8c%e6%99%82%e6%8e%a5%e7%b6%9a%e3%81%a7%e6%9c%89%e7%b7%9a%e3%82%92%e5%84%aa%e5%85%88/</link>
		<comments>https://www.s-oj.com/ec-business/windows8%e3%81%a7%e7%84%a1%e7%b7%9a%e3%81%a8%e6%9c%89%e7%b7%9a%e3%82%92%e5%90%8c%e6%99%82%e6%8e%a5%e7%b6%9a%e3%81%a7%e6%9c%89%e7%b7%9a%e3%82%92%e5%84%aa%e5%85%88/#comments</comments>
		<pubDate>Fri, 01 May 2015 10:16:03 +0000</pubDate>
		<dc:creator><![CDATA[充白石]]></dc:creator>
				<category><![CDATA[EC商売繁盛講座]]></category>
		<category><![CDATA[web技術]]></category>
		<category><![CDATA[小ネタ]]></category>

		<guid isPermaLink="false">https://www.s-oj.com/?p=4245</guid>
		<description><![CDATA[方法１：アダプター設定の変更から変更する １．「コントロールパネル」＞「ネットワークと共有センター」＞「アダプ [&#8230;]]]></description>
				<content:encoded><![CDATA[<!-- _CONTENTS_ST_ --><div class="hatena">
<h3 id="hs_558f8f9ee7f8b59d7888935fd8c3e292_header_0">方法１：アダプター設定の変更から変更する</h3>

<p>１．「コントロールパネル」＞「ネットワークと共有センター」＞「アダプターの設定の変更」を選択してネットワーク接続を選ぶ</p>


<p>２．「Alt」キーを押してファイルメニューを表示、「詳細設定」＞「詳細設定」を開く</p>


<p>３．「アダプタ」および「バインド」から優先したい接続方法（今回の場合有線LAN）を選択し、上矢印をクリックしてリストの一番上へ移動。OKをクリックして設定完了</p>


<p>「詳しくは、LifeHaker参照」</p>

<p><a href="http://www.lifehacker.jp/2013/05/130508force_cable_connection.html">http://www.lifehacker.jp/2013/05/130508force_cable_connection.html</a></p>

<br />

<p><a href="https://www.s-oj.com/wp-content/uploads/2015/05/000.png"><img src="https://www.s-oj.com/wp-content/uploads/2015/05/000.png" alt="000" width="473" height="521" class="aligncenter size-full wp-image-4246" /></a></p>

<br />

<p>上記の方法で解決することがあるようですが、私は解決しませんでした。</p>

<br />

<h3 id="hs_558f8f9ee7f8b59d7888935fd8c3e292_header_1">方法２：コマンドラインでMet値を変更する</h3>

<p>「複数のネットワーク接続が可能な場合、Windowsはメトリック値（ネットワーク間の距離を表す指標）が最も低いものを自動選択する」とのことなので、</p>

<p>netshでWifiのメトリック値を大きいものに変更してしまいましょう。（設定は自己責任でお願いします）</p>


<p>１．windows8のアプリ一覧から「コマンドプロンプト」を探して「右クリック＋管理者として実行」を押す。</p>


<p>２．「netsh interface ipv4 show interface」でインターフェイスの一覧を出す</p>

<p><a href="https://www.s-oj.com/wp-content/uploads/2015/05/001.png"><img src="https://www.s-oj.com/wp-content/uploads/2015/05/001.png" alt="001" width="672" height="491" class="aligncenter size-full wp-image-4247" /></a></p>


<p>３．Wi-FiのIdxを見る（私の場合は３）、Metが5なので一番大きい60にしたいと思います</p>


<p>４.「netsh interface ipv4 set interface 3 met=60」でメトリック値を変更、確認</p>


<p><a href="https://www.s-oj.com/wp-content/uploads/2015/05/002.png"><img src="https://www.s-oj.com/wp-content/uploads/2015/05/002.png" alt="002" width="669" height="489" class="aligncenter size-full wp-image-4248" /></a></p>


<p>５．再起動して確認。</p>

<br />

<p>私はここまでして、やっと優先＆無線の同時接続時に有線接続が優先されるようになりました。</p>

<p>設定は自己責任で！</p>

<br />

</div><!-- hatena --><!-- _CONTENTS_EN_ -->]]></content:encoded>
			<wfw:commentRss>https://www.s-oj.com/ec-business/windows8%e3%81%a7%e7%84%a1%e7%b7%9a%e3%81%a8%e6%9c%89%e7%b7%9a%e3%82%92%e5%90%8c%e6%99%82%e6%8e%a5%e7%b6%9a%e3%81%a7%e6%9c%89%e7%b7%9a%e3%82%92%e5%84%aa%e5%85%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【HTML5】ボタンにマウスオーバーした時に効果音を鳴らす</title>
		<link>https://www.s-oj.com/ec-business/html5_mouseover_ring/</link>
		<comments>https://www.s-oj.com/ec-business/html5_mouseover_ring/#comments</comments>
		<pubDate>Wed, 25 Jun 2014 09:56:18 +0000</pubDate>
		<dc:creator><![CDATA[充白石]]></dc:creator>
				<category><![CDATA[EC商売繁盛講座]]></category>
		<category><![CDATA[web技術]]></category>

		<guid isPermaLink="false">https://www.s-oj.com/?p=3849</guid>
		<description><![CDATA[マウスがボタンに重なったら音を出す 今までWEBページで音を出すのはマナー的にご法度でしたが、 申し込みボタン [&#8230;]]]></description>
				<content:encoded><![CDATA[<!-- _CONTENTS_ST_ --><div class="hatena">
<h3 id="hs_0d2b0b7e660b2983d709b80d02f69d99_header_0">マウスがボタンに重なったら音を出す</h3>
<p>今までWEBページで音を出すのはマナー的にご法度でしたが、</p>

<p>申し込みボタンに音を付加することでクリック率が高くなるというデータもあり</p>

<p>WEBの技術屋の常識とお客様の認識は異なってきているのかもしれません</p>

<p>最近はHTML5で手軽に実装できるようにもなったので使ってみるのも手かもしれません。</p>

<p>但し、今までどおり音が鳴る旨の注意文はあったほうがいいのかなとも思います。。</p>

<p><a href="https://www.s-oj.com/wp-content/uploads/2014/06/charin.png"><img src="https://www.s-oj.com/wp-content/uploads/2014/06/charin.png" alt="charin" width="500" height="335" class="aligncenter size-full wp-image-3869" /></a></p>


<h4 id="hs_0d2b0b7e660b2983d709b80d02f69d99_header_1">今回作るボタンはこんなぼたん（※音がなりますので注意）</h4>
<p><a href="https://www.s-oj.com/%e3%83%9e%e3%82%a6%e3%82%b9%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%e3%81%99%e3%82%8b%e3%81%a8%e9%9f%b3%e3%81%8c%e9%b3%b4%e3%82%8b%e3%83%9c%e3%82%bf%e3%83%b3/" title="マウスオーバーすると音が鳴るボタン" target="_blank">マウスオーバーすると音が鳴るボタン</a></p>


<h3 id="hs_0d2b0b7e660b2983d709b80d02f69d99_header_2">まず効果音を用意する</h3>
<p>マウスオーバーしたら「チャリ～ン」となるようにするため効果音を用意します</p>

<p>今回私が使わせてもらったのはTAM music Factoryさん</p>

<p><a href="http://www.tam-music.com/index.html" target="_blank">http://www.tam-music.com/index.html</a></p>


<p>マウスオーバーの効果音ですから、大体1秒位のファイルがいいでしょう</p>

<p>TAM music Factoryさんからお好きなwavファイルをダウンロードさせてもらいます</p>


<h3 id="hs_0d2b0b7e660b2983d709b80d02f69d99_header_3">音声ファイルを３種類に変換する</h3>
<p><a href="https://www.s-oj.com/wp-content/uploads/2014/06/wavhenkan.png"><img src="https://www.s-oj.com/wp-content/uploads/2014/06/wavhenkan.png" alt="wavhenkan" width="500" height="121" class="aligncenter size-full wp-image-3867" /></a></p>

<p>なるべく多くのブラウザで音声を再生できるように音声ファイルを３種類に変換します</p>

<p>今回「WAV」ファイルが手に入ったので、あとは「MP3」「OGG」ファイルに変換しましょう</p>


<p>変換は以下のサイトがお手軽です</p>

<p><a href="http://media.io/ja/" target="_blank">http://media.io/ja/</a></p>


<h3 id="hs_0d2b0b7e660b2983d709b80d02f69d99_header_4">ページに音声ファイルを仕込む</h3>
<p>まずはページに音声ファイルを仕込みます</p>

<p>変換した３種類のファイルをHTML5の「audio」タグで埋め込んで下さい</p>

<pre class=" highlight">&nbsp;
&lt;audio id=&quot;overSound&quot; preload=&quot;auto&quot;&gt;
	&lt;source src=&quot;sound.mp3&quot; type=&quot;audio/mp3&quot;&gt;
	&lt;source src=&quot;sound.ogg&quot; type=&quot;audio/ogg&quot;&gt;
	&lt;source src=&quot;sound.wav&quot; type=&quot;audio/wav&quot;&gt;
	&lt;p&gt;※お使いのブラウザはHTML5のaudio要素をサポートしていないので音は鳴りません。&lt;/p&gt;
&lt;/audio&gt;
&nbsp;</pre>

<h3 id="hs_0d2b0b7e660b2983d709b80d02f69d99_header_5">Javascriptを書く</h3>
<p>Jqueryを読み込んだ後に以下のように記述します。</p>

<p>HTML5のaudioは一旦playをすると終了するまで音が鳴らない仕様になっています</p>

<p>これではマウスオーバーを連続で行った場合に、現在再生されている音が終了するまで</p>

<p>次の音が鳴らなくなってしまいますので「currentTime」で開始時間をリセットしてやります。</p>


<pre class=" highlight">&nbsp;
$<span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp;
	//音を鳴らす
	$<span class="br0">&#40;</span>'.appButton'<span class="br0">&#41;</span>.mouseover<span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp;
		document.getElementById<span class="br0">&#40;</span>&quot;overSound&quot;<span class="br0">&#41;</span>.currentTime = <span class="nu0">0</span>;
		document.getElementById<span class="br0">&#40;</span>&quot;overSound&quot;<span class="br0">&#41;</span>.play<span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
	<span class="br0">&#125;</span><span class="br0">&#41;</span>;
&nbsp;
&nbsp;
<span class="br0">&#125;</span><span class="br0">&#41;</span>;
&nbsp;
&nbsp;</pre>
<br />

<h3 id="hs_0d2b0b7e660b2983d709b80d02f69d99_header_6">最後にボタンを配置します</h3>
<p>以下のとおりボタンを配置します</p>


<pre class=" highlight">&nbsp;
&lt;img src=&quot;button.jpg&quot; class=&quot;appButton&quot;&gt;
&nbsp;</pre>
<br />

<p>これにてマウスオーバーすると音が鳴るボタンの完成です</p>

<p><a href="https://www.s-oj.com/%e3%83%9e%e3%82%a6%e3%82%b9%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%e3%81%99%e3%82%8b%e3%81%a8%e9%9f%b3%e3%81%8c%e9%b3%b4%e3%82%8b%e3%83%9c%e3%82%bf%e3%83%b3/" title="マウスオーバーすると音が鳴るボタン" target="_blank">マウスオーバーすると音が鳴るボタン</a></p>

</div><!-- hatena --><!-- _CONTENTS_EN_ -->]]></content:encoded>
			<wfw:commentRss>https://www.s-oj.com/ec-business/html5_mouseover_ring/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
