<?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>PHP | ITとガジェットあれこれ</title>
	<atom:link href="https://sandambara.com/category/php/feed" rel="self" type="application/rss+xml" />
	<link>https://sandambara.com</link>
	<description>sandambara.com</description>
	<lastBuildDate>Sun, 20 Nov 2022 09:08:43 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://sandambara.com/wp-content/uploads/2021/03/icon.ico</url>
	<title>PHP | ITとガジェットあれこれ</title>
	<link>https://sandambara.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WSL2でPostgreSQLとApacheとPHPを使えるようにする（OracleLinux8.5 systemd対策あり）</title>
		<link>https://sandambara.com/oraclelinux85-with-postgresql-apache-php-using-wsl2?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oraclelinux85-with-postgresql-apache-php-using-wsl2</link>
					<comments>https://sandambara.com/oraclelinux85-with-postgresql-apache-php-using-wsl2#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sun, 20 Nov 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2158</guid>

					<description><![CDATA[<p>webシステムの勉強を始めようと環境構築に勤しんだ記録です。今回はVirtualBoxやHyper-VではなくWSL2で挑戦しました（作業機のOSはWindows11 Pro 22H2です）。 目次 WSL2インストール [&#8230;]</p>
The post <a href="https://sandambara.com/oraclelinux85-with-postgresql-apache-php-using-wsl2">WSL2でPostgreSQLとApacheとPHPを使えるようにする（OracleLinux8.5 systemd対策あり）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>webシステムの勉強を始めようと環境構築に勤しんだ記録です。今回はVirtualBoxやHyper-VではなくWSL2で挑戦しました（作業機のOSはWindows11 Pro 22H2です）。</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">WSL2インストール</a></li><li><a href="#toc2" tabindex="0">要るものを最初に入れる</a></li><li><a href="#toc3" tabindex="0">最初にやること（systemdを使えるようにする）</a></li><li><a href="#toc4" tabindex="0">PostgreSQL15のインストール</a></li><li><a href="#toc5" tabindex="0">Apacheのインストール</a></li><li><a href="#toc6" tabindex="0">PHP8のインストール</a></li><li><a href="#toc7" tabindex="0">動作テスト</a></li></ol>
    </div>
  </div>

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



<p>PowerShellを起動しコマンド一発です。拍子抜けするほど簡単でした。</p>



<pre class="wp-block-code"><code>wsl --install</code></pre>



<p>このコマンドですとUbuntuがインストールされます。Ubuntuで良い場合はこれでOKなのですが、私はPostgreSQLを慣れた環境で使いたかったのでRHEL系を探してみました。</p>



<pre class="wp-block-code"><code>wsl --list -o</code></pre>



<p>利用可能な一覧が表示されます。</p>



<figure class="wp-block-image size-large is-resized"><img fetchpriority="high" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/image-1024x402.png" alt="" class="wp-image-2160" width="840" height="329" srcset="https://sandambara.com/wp-content/uploads/2022/11/image-1024x402.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/image-300x118.png 300w, https://sandambara.com/wp-content/uploads/2022/11/image-768x301.png 768w, https://sandambara.com/wp-content/uploads/2022/11/image.png 1317w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>wsl &#8211;list -o</figcaption></figure>



<p>OracleLinux8.5で作ることにしました。</p>



<pre class="wp-block-code"><code>wsl --install -d OracleLinux_8_5</code></pre>



<p>インストールが始まり少し待つと別ウインドウでOracleLinuxが表示されます。ユーザー名とパスワードを入力するとインストール完了です。なんとも簡単です。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="243" src="https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1-1024x243.png" alt="" class="wp-image-2162" srcset="https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1-1024x243.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1-300x71.png 300w, https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1-768x182.png 768w, https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1-1536x364.png 1536w, https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1.png 2031w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>OracleLinux8.5 on WSL</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">要るものを最初に入れる</span></h2>



<p>後の作業で必要になるものや自分が使いやすいエディタを忘れないうちに入れておきます。キャプチャは取っていませんがdnf updateもやっておきましょう。この記事を作ったときはやり忘れていました（あはっ）。</p>



<pre class="wp-block-code"><code>sudo dnf install epel-release</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="544" src="https://sandambara.com/wp-content/uploads/2022/11/002dnf-install-epel-release-1024x544.png" alt="" class="wp-image-2163" srcset="https://sandambara.com/wp-content/uploads/2022/11/002dnf-install-epel-release-1024x544.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/002dnf-install-epel-release-300x159.png 300w, https://sandambara.com/wp-content/uploads/2022/11/002dnf-install-epel-release-768x408.png 768w, https://sandambara.com/wp-content/uploads/2022/11/002dnf-install-epel-release.png 1438w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>epel-release</figcaption></figure>



<pre class="wp-block-code"><code>sudo dnf install nano htop neofetch</code></pre>



<p>neofetchは完全に個人的な趣味ですw</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="684" src="https://sandambara.com/wp-content/uploads/2022/11/004dnf-install-nano-htop-neofetch-1024x684.png" alt="" class="wp-image-2164" srcset="https://sandambara.com/wp-content/uploads/2022/11/004dnf-install-nano-htop-neofetch-1024x684.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/004dnf-install-nano-htop-neofetch-300x200.png 300w, https://sandambara.com/wp-content/uploads/2022/11/004dnf-install-nano-htop-neofetch-768x513.png 768w, https://sandambara.com/wp-content/uploads/2022/11/004dnf-install-nano-htop-neofetch.png 1416w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>nano htop neofetch</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc3">最初にやること（systemdを使えるようにする）</span></h2>



<p>WSL環境ではsystemctlを使おうとすると「System has not been booted with systemd as init system (PID 1).」とお𠮟りを受けます。そのまんまで「systemdがPID1じゃない」ということなのですが、これを恒久的に解消するための作業を最初に行います。出でよ、ジェニー！</p>



<pre class="wp-block-code"><code>wget https://github.com/arkane-systems/genie/releases/download/v1.36/genie-1.36-1.fc33.x86_64.rpm</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget-946x1024.png" alt="" class="wp-image-2165" width="841" height="910" srcset="https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget-946x1024.png 946w, https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget-277x300.png 277w, https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget-768x831.png 768w, https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget-1420x1536.png 1420w, https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget.png 1426w" sizes="(max-width: 841px) 100vw, 841px" /><figcaption>genie1.36-1</figcaption></figure>



<pre class="wp-block-code"><code>sudo dnf install genie-1.36-1.fc33.x86_64.rpm</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/007dnf-install-genie-1024x819.png" alt="" class="wp-image-2166" width="840" height="671" srcset="https://sandambara.com/wp-content/uploads/2022/11/007dnf-install-genie-1024x819.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/007dnf-install-genie-300x240.png 300w, https://sandambara.com/wp-content/uploads/2022/11/007dnf-install-genie-768x614.png 768w, https://sandambara.com/wp-content/uploads/2022/11/007dnf-install-genie.png 1406w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>genie1.36-2</figcaption></figure>



<p>ここでpsコマンドを使って状況を見てみましょう。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/009ps-ef-before-genie-1024x263.png" alt="" class="wp-image-2167" width="840" height="215" srcset="https://sandambara.com/wp-content/uploads/2022/11/009ps-ef-before-genie-1024x263.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/009ps-ef-before-genie-300x77.png 300w, https://sandambara.com/wp-content/uploads/2022/11/009ps-ef-before-genie-768x198.png 768w, https://sandambara.com/wp-content/uploads/2022/11/009ps-ef-before-genie.png 1411w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>before</figcaption></figure>



<p>では、genieを初期化→開始します。</p>



<pre class="wp-block-code"><code>genie -i
</code></pre>



<p>ちょっと時間がかかるので気長に待ちましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="124" src="https://sandambara.com/wp-content/uploads/2022/11/010genie-installed-1024x124.png" alt="" class="wp-image-2168" srcset="https://sandambara.com/wp-content/uploads/2022/11/010genie-installed-1024x124.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/010genie-installed-300x36.png 300w, https://sandambara.com/wp-content/uploads/2022/11/010genie-installed-768x93.png 768w, https://sandambara.com/wp-content/uploads/2022/11/010genie-installed.png 1415w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>そして・・・</p>



<pre class="wp-block-code"><code>genie -s</code></pre>



<p>再度psコマンドを実行してみましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="474" src="https://sandambara.com/wp-content/uploads/2022/11/011ps-ef-after-genie-1-1024x474.png" alt="" class="wp-image-2170" srcset="https://sandambara.com/wp-content/uploads/2022/11/011ps-ef-after-genie-1-1024x474.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/011ps-ef-after-genie-1-300x139.png 300w, https://sandambara.com/wp-content/uploads/2022/11/011ps-ef-after-genie-1-768x355.png 768w, https://sandambara.com/wp-content/uploads/2022/11/011ps-ef-after-genie-1.png 1442w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>systemdがPID1になりました</figcaption></figure>



<p>これでめでたくsystemctlを使えるようになったのですが、このままではwslを再起動するとまた元に戻ってしまいますので対処します。</p>



<pre class="wp-block-code"><code>nano ~/.bashrc</code></pre>



<p>ここの末尾へ追記します。</p>



<pre class="wp-block-code"><code>if &#91; "`ps -eo pid,lstart,cmd | grep systemd | grep -v -e grep -e systemd- | sort -n -k2 | awk 'NR==1 { print $1 }'`" != "1" ]; then
  genie -s
fi</code></pre>



<p>こんなふうにしておきます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="646" src="https://sandambara.com/wp-content/uploads/2022/11/012bashrc-1024x646.png" alt="" class="wp-image-2171" srcset="https://sandambara.com/wp-content/uploads/2022/11/012bashrc-1024x646.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/012bashrc-300x189.png 300w, https://sandambara.com/wp-content/uploads/2022/11/012bashrc-768x484.png 768w, https://sandambara.com/wp-content/uploads/2022/11/012bashrc.png 1416w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>.bashrc</figcaption></figure>



<p>と、ここまで来て「WSLの再起動ってどうするんだろ？」と思ったら一度wslを落としてしまうんですね。PowerShellに戻って実行してください。</p>



<pre class="wp-block-code"><code>wsl --shutdown</code></pre>



<p>これで再度WSLを起動させればOKです。genie -iのときと同じように「！」がいっぱい表示されます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="100" src="https://sandambara.com/wp-content/uploads/2022/11/013wslrestarted-1024x100.png" alt="" class="wp-image-2172" srcset="https://sandambara.com/wp-content/uploads/2022/11/013wslrestarted-1024x100.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/013wslrestarted-300x29.png 300w, https://sandambara.com/wp-content/uploads/2022/11/013wslrestarted-768x75.png 768w, https://sandambara.com/wp-content/uploads/2022/11/013wslrestarted.png 1404w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>WSL再起動直後</figcaption></figure>



<p>これで何を意識しなくてもsystemctlを使えるようになりました。先人たちの記事がとても参考になりました。感謝！です。</p>



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



<p>以前の記事ではソースコードからコンパイルしました(PostgeSQL10)。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-itとガジェットあれこれ wp-block-embed-itとガジェットあれこれ"><div class="wp-block-embed__wrapper">

<a href="https://sandambara.com/install-postgresql-with-sourcecode" title="コピペ対応！PostgreSQLをソースコードからインストールする" 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="80" height="66" src="https://sandambara.com/wp-content/uploads/2020/05/5DAAAC95-7A4C-45C2-9ABC-C0E25CB98346.jpeg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">コピペ対応！PostgreSQLをソースコードからインストールする</div><div class="blogcard-snippet internal-blogcard-snippet">今日は私が愛用するデータベース、PostgreSQLをソースコードからインストールしていこうと思います。インストーラーがある時代になぜソースコードからと思われるかもしれませんが、makeしているときの画面がカッコイイからです（単純）注意事項...</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://sandambara.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">sandambara.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.08.12</div></div></div></div></a>
</div></figure>



<p>今回は最新バージョンの15をdnfでインストールしていきます。そのままだと15が入ってくれないので準備を行います。</p>



<pre class="wp-block-code"><code>sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="579" src="https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-1024x579.png" alt="" class="wp-image-2174" srcset="https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-1024x579.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-300x170.png 300w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-768x434.png 768w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-120x68.png 120w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-160x90.png 160w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-320x180.png 320w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1.png 1413w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>pgdg-redhat-repo</figcaption></figure>



<pre class="wp-block-code"><code>sudo dnf -qy module disable postgresql
</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/016disable-postgresql-1024x62.png" alt="" class="wp-image-2175" width="824" height="49" srcset="https://sandambara.com/wp-content/uploads/2022/11/016disable-postgresql-1024x62.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/016disable-postgresql-300x18.png 300w, https://sandambara.com/wp-content/uploads/2022/11/016disable-postgresql-768x47.png 768w, https://sandambara.com/wp-content/uploads/2022/11/016disable-postgresql.png 1395w" sizes="(max-width: 824px) 100vw, 824px" /><figcaption>module disable</figcaption></figure>



<pre class="wp-block-code"><code>sudo dnf install postgresql15-server
</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="583" src="https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-1024x583.png" alt="" class="wp-image-2176" srcset="https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-1024x583.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-300x171.png 300w, https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-768x437.png 768w, https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-120x68.png 120w, https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-160x90.png 160w, https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15.png 1407w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>postgresql15</figcaption></figure>



<p>これでPostgreSQL15のインストールが終わりました。折角なので設定もしてしまいましょう。</p>



<pre class="wp-block-code"><code>sudo -i -u postgres
/usr/pgsql-15/bin/initdb -D /var/lib/pgsql/15/data
</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/019-initdb-1-1024x283.png" alt="" class="wp-image-2178" width="840" height="232" srcset="https://sandambara.com/wp-content/uploads/2022/11/019-initdb-1-1024x283.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/019-initdb-1-300x83.png 300w, https://sandambara.com/wp-content/uploads/2022/11/019-initdb-1-768x212.png 768w, https://sandambara.com/wp-content/uploads/2022/11/019-initdb-1.png 1408w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>initdb</figcaption></figure>



<p>実ははじめWSLをUbuntuで組んだのですが、Ubuntuのポスグレではinitdbが見当たらなくて焦りました。Ubuntuは先日10年サポートの発表もあったので、使い勝手が揃っていると嬉しいですね。</p>



<p>さて、環境変数を設定しましょう。</p>



<pre class="wp-block-code"><code>nano ~/.bash_profile</code></pre>



<p>末尾に加筆します。</p>



<pre class="wp-block-code"><code>export PATH=/usr/pgsql-15/bin/:$PATH
export LD_LIBRARY_PATH=/usr/pgsql-15/lib/:$LD_LIBRARY_PATH
export PGDATA=/var/lib/pgsql/15/data
</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/020bashprofile-1024x331.png" alt="" class="wp-image-2179" width="840" height="271" srcset="https://sandambara.com/wp-content/uploads/2022/11/020bashprofile-1024x331.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/020bashprofile-300x97.png 300w, https://sandambara.com/wp-content/uploads/2022/11/020bashprofile-768x249.png 768w, https://sandambara.com/wp-content/uploads/2022/11/020bashprofile.png 1409w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>.bash_profile</figcaption></figure>



<p>読み込みなおして完了です。</p>



<pre class="wp-block-code"><code>source ~postgres/.bash_profile</code></pre>



<p>コマンドが通ることを確認しておきましょう！</p>



<pre class="wp-block-code"><code>nano $PGDATA/pg_hba.conf
nano $PGDATA/postgresql.conf
pg_ctl start</code></pre>



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



<p>ここは普通にdnf installだけで行えます。セキュリティ対策については触れておりませんのでご注意ください。</p>



<pre class="wp-block-code"><code>sudo dnf install httpd
sudo systemctl enable httpd
sudo systemctl start httpd</code></pre>



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



<p>Apache同様セキュリティ対策には触れていませんのでご注意ください。</p>



<p>まずremiリポジトリを追加します。</p>



<pre class="wp-block-code"><code>sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm</code></pre>



<p>デフォルトのバージョンがいくつか見てみます。</p>



<pre class="wp-block-code"><code>sudo dnf module list php</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="317" src="https://sandambara.com/wp-content/uploads/2022/11/026list-php-1024x317.png" alt="" class="wp-image-2180" srcset="https://sandambara.com/wp-content/uploads/2022/11/026list-php-1024x317.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/026list-php-300x93.png 300w, https://sandambara.com/wp-content/uploads/2022/11/026list-php-768x238.png 768w, https://sandambara.com/wp-content/uploads/2022/11/026list-php.png 1426w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>PHPバージョン一覧</figcaption></figure>



<p>PHP8を入れられるようになりましたので進めます。DBアクセスにはPDOを使いたいので一緒に入れましょう。</p>



<pre class="wp-block-code"><code>sudo dnf module install php:8.0
sudo dnf install php-pdo php-pgsql</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="254" src="https://sandambara.com/wp-content/uploads/2022/11/030dnf-install-php-pdo-pgsql-complete-1024x254.png" alt="" class="wp-image-2181" srcset="https://sandambara.com/wp-content/uploads/2022/11/030dnf-install-php-pdo-pgsql-complete-1024x254.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/030dnf-install-php-pdo-pgsql-complete-300x74.png 300w, https://sandambara.com/wp-content/uploads/2022/11/030dnf-install-php-pdo-pgsql-complete-768x191.png 768w, https://sandambara.com/wp-content/uploads/2022/11/030dnf-install-php-pdo-pgsql-complete.png 1132w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>PHP8が入りました</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc7">動作テスト</span></h2>



<p>テストファイルを作ります。</p>



<pre class="wp-block-code"><code>sudo nano /var/www/html/index.php</code></pre>



<p>ここへ</p>



<pre class="wp-block-code"><code>&lt;?php
phpinfo();
</code></pre>



<p>Apacheを再起動してブラウザでlocalhost/index.phpへアクセスしてみましょう。</p>



<pre class="wp-block-code"><code>sudo systemctl restart httpd</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="201" src="https://sandambara.com/wp-content/uploads/2022/11/031done-1024x201.png" alt="" class="wp-image-2182" srcset="https://sandambara.com/wp-content/uploads/2022/11/031done-1024x201.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/031done-300x59.png 300w, https://sandambara.com/wp-content/uploads/2022/11/031done-768x151.png 768w, https://sandambara.com/wp-content/uploads/2022/11/031done-1536x302.png 1536w, https://sandambara.com/wp-content/uploads/2022/11/031done-2048x403.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>DBに適当なテーブルを作ってPDOもぜひ試してみてください。最後までご覧くださって有難うございました！</p>The post <a href="https://sandambara.com/oraclelinux85-with-postgresql-apache-php-using-wsl2">WSL2でPostgreSQLとApacheとPHPを使えるようにする（OracleLinux8.5 systemd対策あり）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/oraclelinux85-with-postgresql-apache-php-using-wsl2/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CentOS 7にPHP7系をインストールする</title>
		<link>https://sandambara.com/php7-with-centos7?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php7-with-centos7</link>
					<comments>https://sandambara.com/php7-with-centos7#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sun, 23 May 2021 05:00:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=1775</guid>

					<description><![CDATA[<p>今日は前回webサーバーをセットアップしたマシンにPHP7系をインストールしてみます。 目次 この記事の趣旨検証環境リポジトリ追加PHP関係一式インストールPHPの設定PHPがApache(httpd)に組み込まれている [&#8230;]</p>
The post <a href="https://sandambara.com/php7-with-centos7">CentOS 7にPHP7系をインストールする</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>今日は前回webサーバーをセットアップしたマシンにPHP7系をインストールしてみます。</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">この記事の趣旨</a></li><li><a href="#toc2" tabindex="0">検証環境</a></li><li><a href="#toc3" tabindex="0">リポジトリ追加</a></li><li><a href="#toc4" tabindex="0">PHP関係一式インストール</a></li><li><a href="#toc5" tabindex="0">PHPの設定</a></li><li><a href="#toc6" tabindex="0">PHPがApache(httpd)に組み込まれているか確認</a></li><li><a href="#toc7" tabindex="0">DBに接続してみる</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">この記事の趣旨</span></h2>



<p>自分が分からなかったこと・知らなかったことをググり倒した結果を備忘録として残すことが目的で、初学者の方に教え伝えるものではありません（きっぱり）。</p>



<p>誤認と思われる箇所は教えて頂ければうれしいです。</p>



<h2 class="wp-block-heading"><span id="toc2">検証環境</span></h2>



<p>VirtualBox上の仮想マシンCentOS 7.9.2009です。</p>



<pre class="wp-block-code"><code>&#91;sandambara@srv236 ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)</code></pre>



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



<p>yum install php&#8230;とやるとPHP5系がインストールされてしまいます。</p>



<pre class="wp-block-code"><code># sudo yum install phpの結果

====================================================================================================
 Package                  アーキテクチャー     バージョン                  リポジトリー        容量
====================================================================================================
インストール中:
 php                      x86_64               5.4.16-48.el7               base               1.4 M
依存性関連でのインストールをします:
 libzip                   x86_64               0.10.1-8.el7                base                48 k
 php-cli                  x86_64               5.4.16-48.el7               base               2.7 M
 php-common               x86_64               5.4.16-48.el7               base               565 k

トランザクションの要約
====================================================================================================</code></pre>



<p>7系をインストールできるようにリポジトリを追加します。</p>



<pre class="wp-block-code"><code>&#91;sandambara@srv236 ~]$ sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
読み込んだプラグイン:fastestmirror
remi-release-7.rpm                                                           |  23 kB  00:00:00     
/var/tmp/yum-root-ADUFWN/remi-release-7.rpm を調べています: remi-release-7.9-1.el7.remi.noarch
/var/tmp/yum-root-ADUFWN/remi-release-7.rpm をインストール済みとして設定しています
依存性の解決をしています
--&gt; トランザクションの確認を実行しています。
---&gt; パッケージ remi-release.noarch 0:7.9-1.el7.remi を インストール
--&gt; 依存性の処理をしています: epel-release = 7 のパッケージ: remi-release-7.9-1.el7.remi.noarch
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: packet01.centos.org
 * updates: packet01.centos.org
--&gt; トランザクションの確認を実行しています。
---&gt; パッケージ epel-release.noarch 0:7-11 を インストール
--&gt; 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                アーキテクチャー バージョン                 リポジトリー               容量
====================================================================================================
インストール中:
 remi-release           noarch           7.9-1.el7.remi             /remi-release-7            31 k
依存性関連でのインストールをします:
 epel-release           noarch           7-11                       extras                     15 k

トランザクションの要約
====================================================================================================
インストール  1 パッケージ (+1 個の依存関係のパッケージ)

合計容量: 45 k
総ダウンロード容量: 15 k
インストール容量: 55 k
Downloading packages:
epel-release-7-11.noarch.rpm                                                 |  15 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : epel-release-7-11.noarch                                            1/2 
  インストール中          : remi-release-7.9-1.el7.remi.noarch                                  2/2 
  検証中                  : epel-release-7-11.noarch                                            1/2 
  検証中                  : remi-release-7.9-1.el7.remi.noarch                                  2/2 

インストール:
  remi-release.noarch 0:7.9-1.el7.remi                                                              

依存性関連をインストールしました:
  epel-release.noarch 0:7-11                                                                        

完了しました!</code></pre>



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



<p>必要と思われるものを一式インストールします。セキュリティ的な考え方ではNG手法ですが、今回はテスト環境と言うことで（PHPの設定についても同様）・・・セーフラインは低めですｗ</p>



<pre class="wp-block-code"><code>&#91;sandambara@srv236 ~]$ sudo yum -y install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql php-pgsql
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                         | 9.8 kB  00:00:00     
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: packet01.centos.org
 * remi: ftp.riken.jp
 * remi-php74: ftp.riken.jp
 * remi-safe: ftp.riken.jp
 * updates: packet01.centos.org

# 以下省略</code></pre>



<p>以前こちらの記事でPostgreSQLのセットアップ方法を公開しており、このDBとアクセスすることを今回のゴールとします。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-itとガジェットあれこれ wp-block-embed-itとガジェットあれこれ"><div class="wp-block-embed__wrapper">

<a href="https://sandambara.com/install-postgresql-with-sourcecode" title="コピペ対応！PostgreSQLをソースコードからインストールする" 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="80" height="66" src="https://sandambara.com/wp-content/uploads/2020/05/5DAAAC95-7A4C-45C2-9ABC-C0E25CB98346.jpeg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">コピペ対応！PostgreSQLをソースコードからインストールする</div><div class="blogcard-snippet internal-blogcard-snippet">今日は私が愛用するデータベース、PostgreSQLをソースコードからインストールしていこうと思います。インストーラーがある時代になぜソースコードからと思われるかもしれませんが、makeしているときの画面がカッコイイからです（単純）注意事項...</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://sandambara.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">sandambara.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.08.12</div></div></div></div></a>
</div></figure>



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



<p>マルチバイト対応のためiniファイルを修正します。</p>



<pre class="wp-block-code"><code>&#91;sandambara@srv236 ~]$ sudo nano /etc/php.ini</code></pre>



<p>ファイル内の行番号の出し方はこちらの記事で公開しています。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-itとガジェットあれこれ wp-block-embed-itとガジェットあれこれ"><div class="wp-block-embed__wrapper">

<a href="https://sandambara.com/tips-set-linenumbers-with-vi-nano" title="小ネタ　エディタ（viとnano）で行番号表示・非表示を切り替える" 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="71" src="https://sandambara.com/wp-content/uploads/2020/11/linenumbers-160x71.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">小ネタ　エディタ（viとnano）で行番号表示・非表示を切り替える</div><div class="blogcard-snippet internal-blogcard-snippet">いつまで経っても覚えられないので備忘録ということで・・・エディタ（viとnano）で行番号表示・非表示を切り替える方法です。viで行番号表示・非表示を切り替えるviの場合はエディタ上で直接切り替えが可能です。#行番号を表示する:set nu...</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://sandambara.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">sandambara.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.11.20</div></div></div></div></a>
</div></figure>



<pre class="wp-block-code"><code># 修正内容

1509行目

mbstring.language = Japanese

1516行目

mbstring.internal_encoding = UTF-8

1524行目

mbstring.http_input = UTF-8

1534行目

mbstring.http_output = pass

1542行目

mbstring.encoding_translation = On

1547行目

mbstring.detect_order = auto

1552行目

mbstring.substitute_character = none</code></pre>



<h2 class="wp-block-heading"><span id="toc6">PHPがApache(httpd)に組み込まれているか確認</span></h2>



<pre class="wp-block-code"><code>&#91;sandambara@srv236 ~]$ httpd -M | grep php</code></pre>



<p>この実行結果が下記のようになっていればOKです。</p>



<pre class="wp-block-code"><code>php7_module (shared)</code></pre>



<p>のっぺらぼう（何も結果が返ってこない）の場合は設定やインストール手順を再度見直してみましょう。</p>



<h2 class="wp-block-heading"><span id="toc7">DBに接続してみる</span></h2>



<p>/var/www/htmlにtest.phpを作成します。DBに接続するだけでデータの取得は行いませんので、database_nameはpostgresでOKです。ポート番号とuser_name、passwordはご自身が設定されたものやpg_hba.confの内容通りにしましょう。</p>



<pre class="wp-block-code"><code>&#91;sandambara@srv236 html]$ sudo nano test.php

&lt;?php
try{
    $db = new PDO('pgsql:dbname=database_name host=localhost port=5432','user_name','password');
    echo 'connected.';    
}catch(PDOException $e){
    echo 'failed.：'.$e-&gt;getMessage();
}finally{
    $db = null;
}
?&gt;
</code></pre>



<p>Ctrl + x → y → Enterキーで保存して終了したら早速テストです。</p>



<pre class="wp-block-code"><code>&#91;sandambara@srv236 html]$ php /var/www/html/test.php</code></pre>



<p>このようになれば無事接続成功です！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="774" height="94" src="https://sandambara.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-22-16.49.57.png" alt="" class="wp-image-1778" srcset="https://sandambara.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-22-16.49.57.png 774w, https://sandambara.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-22-16.49.57-300x36.png 300w, https://sandambara.com/wp-content/uploads/2021/05/スクリーンショット-2021-05-22-16.49.57-768x93.png 768w" sizes="(max-width: 774px) 100vw, 774px" /></figure>The post <a href="https://sandambara.com/php7-with-centos7">CentOS 7にPHP7系をインストールする</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/php7-with-centos7/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
