<?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 &#8211; 21點情報網</title>
	<atom:link href="https://ailog.tw/lifelog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://ailog.tw/lifelog</link>
	<description></description>
	<lastBuildDate>Sat, 12 Nov 2022 15:17:46 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>PHP 使用move_uploaded_file模組時出現failed to open stream permission denied訊息</title>
		<link>https://ailog.tw/lifelog/2022/11/12/move_uploaded_file/</link>
		
		<dc:creator><![CDATA[blackjack]]></dc:creator>
		<pubDate>Sat, 12 Nov 2022 15:17:46 +0000</pubDate>
				<category><![CDATA[3C資訊]]></category>
		<category><![CDATA[Programming language]]></category>
		<category><![CDATA[failed to open stream permission denied]]></category>
		<category><![CDATA[move_uploaded_file]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://ailog.tw/lifelog/?p=14389</guid>

					<description><![CDATA[小編在使用PHP寫檔案上傳至伺服器時，遇到了「failed to open stream permission &#8230; <p class="link-more"><a href="https://ailog.tw/lifelog/2022/11/12/move_uploaded_file/" class="more-link">閱讀全文<span class="screen-reader-text">〈PHP 使用move_uploaded_file模組時出現failed to open stream permission denied訊息〉</span></a></p>]]></description>
										<content:encoded><![CDATA[<p><span style="font-family: verdana, geneva; font-size: 14pt;">小編在使用PHP寫檔案上傳至伺服器時，遇到了「failed to open stream permission denied」，雖然有不少網路文章說將上傳的目錄權限改為「777」任何人均可寫入即可排除，但這樣做雖可以完成檔案上傳，但對安全而言實在有點風險。<br />
</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">小編後來有找到比較好的排除方式，分享給大家參考。<span id="more-14389"></span></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">步驟一、找出PHP執行時是透過哪個帳號權限進行</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">vi who.php</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">&lt;?php</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">echo getenv(&#8216;APACHE_RUN_USER&#8217;);</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">?&gt;</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><img decoding="async" class="alignnone size-medium wp-image-14393" src="https://ailog.tw/lifelog/wp-content/uploads/2022/11/move_uploaded_file-02-300x92.png" alt="" width="300" height="92" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/11/move_uploaded_file-02-300x92.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/11/move_uploaded_file-02.png 465w" sizes="(max-width: 300px) 100vw, 300px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">步驟二、透過網頁瀏覽「who.php」</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><img decoding="async" class="alignnone size-full wp-image-14392" src="https://ailog.tw/lifelog/wp-content/uploads/2022/11/move_uploaded_file-03.png" alt="" width="292" height="143" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">步驟三、變更資料夾權限及擁有者後即可順利上傳檔案</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">變更資料夾擁有者語法：</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">chown www-data tmp</span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">變更資料夾權限語法：</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">chmod 0755 tmp</span></p>
<p><span style="color: #ff0000;">輔助說明：「tmp」為本範例中要上傳檔案的資料夾名稱，請自行變更為實際需要的資料夾名稱。</span></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Windows平台安裝Visual Studio Code開發工具</title>
		<link>https://ailog.tw/lifelog/2022/06/28/visual-studio-code/</link>
		
		<dc:creator><![CDATA[blackjack]]></dc:creator>
		<pubDate>Tue, 28 Jun 2022 15:00:08 +0000</pubDate>
				<category><![CDATA[3C資訊]]></category>
		<category><![CDATA[Programming language]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Python3]]></category>
		<category><![CDATA[Visual Studio Code]]></category>
		<category><![CDATA[VS Code]]></category>
		<guid isPermaLink="false">https://ailog.tw/lifelog/?p=12945</guid>

					<description><![CDATA[Visual Studio Code(VS Code)是微軟開發的免費程式開發工具，具有Win、Mac、Lin &#8230; <p class="link-more"><a href="https://ailog.tw/lifelog/2022/06/28/visual-studio-code/" class="more-link">閱讀全文<span class="screen-reader-text">〈Windows平台安裝Visual Studio Code開發工具〉</span></a></p>]]></description>
										<content:encoded><![CDATA[<p><span style="font-family: verdana, geneva; font-size: 14pt;">Visual Studio Code(VS Code)是微軟開發的免費程式開發工具，具有Win、Mac、Linux等跨平台特性，許多人會透過他來進行C/C++、Python、PHP，小編今天就來介紹如何安裝。<span id="more-12945"></span></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">官方網站：</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">軟體下載頁面：</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><a href="https://code.visualstudio.com/Download">https://code.visualstudio.com/Download</a></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">軟體下載：</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">Windows平台有區分「User Installer」及「System Installer」，其中的差異是</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">「User Installer」安裝在使用者目錄下，適合沒有電腦管理者權限的情境安裝，「System Installer」是安裝在系統目錄下。</span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><img fetchpriority="high" decoding="async" class="alignnone wp-image-12947 size-large" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-01-1024x318.png" alt="" width="525" height="163" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-01-1024x318.png 1024w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-01-300x93.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-01-768x239.png 768w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-01.png 1278w" sizes="(max-width: 525px) 100vw, 525px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">[軟體安裝步驟]</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12949 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-02.png" alt="" width="686" height="463" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-02.png 686w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-02-300x202.png 300w" sizes="auto, (max-width: 686px) 100vw, 686px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12950 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-03.png" alt="" width="686" height="463" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-03.png 686w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-03-300x202.png 300w" sizes="auto, (max-width: 686px) 100vw, 686px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12951 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-04.png" alt="" width="686" height="463" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-04.png 686w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-04-300x202.png 300w" sizes="auto, (max-width: 686px) 100vw, 686px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12952 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-05.png" alt="" width="686" height="463" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-05.png 686w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-05-300x202.png 300w" sizes="auto, (max-width: 686px) 100vw, 686px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12953 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-06.png" alt="" width="915" height="617" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-06.png 915w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-06-300x202.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-06-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12954 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-07.png" alt="" width="686" height="463" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-07.png 686w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-07-300x202.png 300w" sizes="auto, (max-width: 686px) 100vw, 686px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12955 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-08.png" alt="" width="915" height="617" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-08.png 915w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-08-300x202.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-08-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">第一次開啟畫面，會有變更語系提示。<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-12957 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-09.png" alt="" width="658" height="211" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-09.png 658w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-09-300x96.png 300w" sizes="auto, (max-width: 658px) 100vw, 658px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">第一次使用必須設定預設資料夾<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-12960 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-11.png" alt="" width="949" height="324" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-11.png 949w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-11-300x102.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-11-768x262.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12962 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-13.png" alt="" width="873" height="427" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-13.png 873w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-13-300x147.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-13-768x376.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">[安裝Python擴充模組]</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-12965" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-14-300x262.png" alt="" width="300" height="262" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-14-300x262.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-14.png 481w" sizes="auto, (max-width: 300px) 100vw, 300px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12966 size-large" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-15-1024x413.png" alt="" width="525" height="212" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-15-1024x413.png 1024w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-15-300x121.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-15-768x309.png 768w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-15.png 1040w" sizes="auto, (max-width: 525px) 100vw, 525px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">系統常用快速指令：</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-12968" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-16-300x232.png" alt="" width="300" height="232" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-16-300x232.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-16.png 334w" sizes="auto, (max-width: 300px) 100vw, 300px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12969 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-17.png" alt="" width="757" height="172" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-17.png 757w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-17-300x68.png 300w" sizes="auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">點選「檔案(F)」→「新增檔案」</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12971 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-18.png" alt="" width="461" height="163" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-18.png 461w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-18-300x106.png 300w" sizes="auto, (max-width: 461px) 100vw, 461px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">選擇「python File」<img loading="lazy" decoding="async" class="alignnone wp-image-12972 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-19.png" alt="" width="886" height="228" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-19.png 886w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-19-300x77.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-19-768x198.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">輸入教科書式的第一個測試程式：</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">p<span class="hljs-meta">rint(</span><span class="hljs-string">&#8216;hello world&#8217;</span>)</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12973 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-20.png" alt="" width="552" height="185" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-20.png 552w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-20-300x101.png 300w" sizes="auto, (max-width: 552px) 100vw, 552px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">點選「檔案(F)」→「儲存」</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12974 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-21.png" alt="" width="745" height="501" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-21.png 745w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-21-300x202.png 300w" sizes="auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">輸入檔案名稱後點選「存檔」</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12976 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-22.png" alt="" width="873" height="425" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-22.png 873w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-22-300x146.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-22-768x374.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">執行測試</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">語法：python test.py<img loading="lazy" decoding="async" class="alignnone wp-image-12977 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-23.png" alt="" width="567" height="333" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-23.png 567w, https://ailog.tw/lifelog/wp-content/uploads/2022/06/visual-studio-code-23-300x176.png 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Oracle Linux 7.9線上更新後PHP無法連線Oracle Database</title>
		<link>https://ailog.tw/lifelog/2022/03/25/ol7-oci8-error/</link>
		
		<dc:creator><![CDATA[blackjack]]></dc:creator>
		<pubDate>Fri, 25 Mar 2022 14:17:30 +0000</pubDate>
				<category><![CDATA[3C資訊]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[7.9]]></category>
		<category><![CDATA[libclntsh.so.21.1]]></category>
		<category><![CDATA[oci8.so]]></category>
		<category><![CDATA[Oracle Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[更新]]></category>
		<guid isPermaLink="false">https://ailog.tw/lifelog/?p=12683</guid>

					<description><![CDATA[近期因資安議題而進行Oracle Linux的線上更新，更新完畢立即出現PHP無法連接Oracle資料庫的狀況 &#8230; <p class="link-more"><a href="https://ailog.tw/lifelog/2022/03/25/ol7-oci8-error/" class="more-link">閱讀全文<span class="screen-reader-text">〈Oracle Linux 7.9線上更新後PHP無法連線Oracle Database〉</span></a></p>]]></description>
										<content:encoded><![CDATA[<p><span style="font-family: verdana, geneva; font-size: 14pt;">近期因資安議題而進行Oracle Linux的線上更新，更新完畢立即出現PHP無法連接Oracle資料庫的狀況，並出現了「PHP Warning: PHP Startup: Unable to load dynamic library &#8216;oci8.so&#8217; (tried: /usr/lib64/php/modules/oci8.so」告警，今天小編要來分享如何排除這個問題。<span id="more-12683"></span></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;"><strong>[範例情境]</strong><br />
作業系統：Oracle Linux 7.9</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">程式語言：PHP 7.4.28-1.0.3</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">連接資料庫元件：php-oci8</span></p>
<p><strong><span style="font-family: verdana, geneva; font-size: 14pt;">[排除步驟]</span></strong><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">01、檢視PHP出現的錯誤訊息<br />
出現了「tried: /usr/lib64/php/modules/oci8.so」</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;"><img loading="lazy" decoding="async" class="alignnone wp-image-12686 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-01.png" alt="" width="668" height="67" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-01.png 668w, https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-01-300x30.png 300w" sizes="auto, (max-width: 668px) 100vw, 668px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">02、檢測缺少了那些相依的檔案<br />
語法：<br />
ldd /usr/lib64/php/modules/oci8.so<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-12688 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-02.png" alt="" width="471" height="80" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-02.png 471w, https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-02-300x51.png 300w" sizes="auto, (max-width: 471px) 100vw, 471px" /><br />
補充說明：<br />
訊息顯示缺少「libclntsh.so.21.1」元件，該元件是「oracle-instantclient-basic」套件的元件。</span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">03、下載oracle-instantclient-basic套件<br />
</span><span style="font-family: verdana, geneva;">Oracle官方下載頁面：</span><br />
<a href="https://www.oracle.com/tw/database/technologies/instant-client/linux-x86-64-downloads.html"><span style="font-family: verdana, geneva;">https://www.oracle.com/tw/database/technologies/instant-client/linux-x86-64-downloads.html</span></a></p>
<p><span style="font-family: verdana, geneva;">快速下載連結：</span><br />
<span style="font-family: verdana, geneva;"><a href="https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-basic-21.5.0.0.0-1.x86_64.rpm">https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-basic-21.5.0.0.0-1.x86_64.rpm</a></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">linux 文字模式下載檔案語法：</span><br />
<span style="font-family: verdana, geneva; font-size: 8pt;">wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-basic-21.5.0.0.0-1.x86_64.rpm<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-12691 size-large" src="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-03-1024x103.png" alt="" width="525" height="53" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-03-1024x103.png 1024w, https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-03-300x30.png 300w, https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-03-768x77.png 768w, https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-03.png 1151w" sizes="auto, (max-width: 525px) 100vw, 525px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">04、移除舊版套件</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">語法：</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">yum remove oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-12692 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-04.png" alt="" width="657" height="136" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-04.png 657w, https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-04-300x62.png 300w" sizes="auto, (max-width: 657px) 100vw, 657px" /></span></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">05、安裝新版套件<br />
語法：</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">yum install oracle-instantclient-basic-21.5.0.0.0-1.x86_64.rpm</span><br />
<img loading="lazy" decoding="async" class="alignnone wp-image-12693 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-05.png" alt="" width="667" height="138" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-05.png 667w, https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-05-300x62.png 300w" sizes="auto, (max-width: 667px) 100vw, 667px" /></p>
<p><span style="font-family: verdana, geneva; font-size: 14pt;">06、再次檢查相依的檔案是否還有缺少</span><br />
<span style="font-family: verdana, geneva; font-size: 14pt;">語法：<br />
ldd /usr/lib64/php/modules/oci8.so<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-12695 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-06.png" alt="" width="637" height="81" srcset="https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-06.png 637w, https://ailog.tw/lifelog/wp-content/uploads/2022/03/ol7-oci8-error-06-300x38.png 300w" sizes="auto, (max-width: 637px) 100vw, 637px" /><br />
補充說明：<br />
libclntsh.so.21.1元件已可以順利被搜尋到</span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP變更時區設定</title>
		<link>https://ailog.tw/lifelog/2021/12/26/php-timezone/</link>
		
		<dc:creator><![CDATA[blackjack]]></dc:creator>
		<pubDate>Sun, 26 Dec 2021 15:35:19 +0000</pubDate>
				<category><![CDATA[3C資訊]]></category>
		<category><![CDATA[Programming language]]></category>
		<category><![CDATA[8]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[timezone]]></category>
		<category><![CDATA[差8小時]]></category>
		<category><![CDATA[時區]]></category>
		<category><![CDATA[時間不準]]></category>
		<guid isPermaLink="false">https://ailog.tw/lifelog/?p=12189</guid>

					<description><![CDATA[PHP如不特別宣告時區，就會以太平洋時間為基準，因此以台灣的時間來看就會少了8小時，該如何設定PHP的時區呢? &#8230; <p class="link-more"><a href="https://ailog.tw/lifelog/2021/12/26/php-timezone/" class="more-link">閱讀全文<span class="screen-reader-text">〈PHP變更時區設定〉</span></a></p>]]></description>
										<content:encoded><![CDATA[<p><span style="font-size: 14pt; font-family: verdana, geneva;">PHP如不特別宣告時區，就會以太平洋時間為基準，因此以台灣的時間來看就會少了8小時，該如何設定PHP的時區呢?快跟著小編一起來了解吧。<span id="more-12189"></span></span></p>
<p><span style="font-size: 14pt; font-family: verdana, geneva;">[範例環境]</span><br />
<span style="font-size: 14pt; font-family: verdana, geneva;">作業系統：Oracle Linux 7.9</span><br />
<span style="font-size: 14pt; font-family: verdana, geneva;">PHP版本：7.4.14-1.0.1</span></p>
<p><span style="font-size: 14pt; font-family: verdana, geneva;">[設定步驟]</span><br />
<span style="font-size: 14pt; font-family: verdana, geneva;">Set01、編輯PHP設定檔</span><br />
<span style="font-size: 14pt; font-family: verdana, geneva;">語法：</span><br />
<span style="font-size: 14pt; font-family: verdana, geneva;">vim /etc/php.ini</span><br />
<span style="font-size: 14pt; font-family: verdana, geneva;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-12190" src="https://ailog.tw/lifelog/wp-content/uploads/2021/12/php-timezone-01.png" alt="" width="427" height="84" srcset="https://ailog.tw/lifelog/wp-content/uploads/2021/12/php-timezone-01.png 427w, https://ailog.tw/lifelog/wp-content/uploads/2021/12/php-timezone-01-300x59.png 300w" sizes="auto, (max-width: 427px) 100vw, 427px" /></span></p>
<p><span style="font-size: 14pt; font-family: verdana, geneva;">Set02、設定時區<br />
在檔案中尋找到「date.timezone」設定的位置，將設定檔變更為「<span style="color: #ff0000;">date.timezone = &#8220;Asia/Taipei&#8221;</span>」</span><br />
<span style="font-size: 14pt; font-family: verdana, geneva;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-12191" src="https://ailog.tw/lifelog/wp-content/uploads/2021/12/php-timezone-02.png" alt="" width="767" height="151" srcset="https://ailog.tw/lifelog/wp-content/uploads/2021/12/php-timezone-02.png 767w, https://ailog.tw/lifelog/wp-content/uploads/2021/12/php-timezone-02-300x59.png 300w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></span></p>
<p><span style="font-size: 14pt; font-family: verdana, geneva;">補充說明：</span><br />
<span style="font-size: 14pt; font-family: verdana, geneva;">如果沒有系統操作權限，也可以在PHP程式中直接宣告。</span><br />
<span style="font-size: 14pt; font-family: verdana, geneva;">在php檔案中新增一行「<span style="color: #ff0000;">date_default_timezone_set(&#8220;Asia/Taipei&#8221;)</span>」</span><br />
<span style="font-size: 14pt; font-family: verdana, geneva;"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-12192" src="https://ailog.tw/lifelog/wp-content/uploads/2021/12/php-timezone-03.png" alt="" width="514" height="88" srcset="https://ailog.tw/lifelog/wp-content/uploads/2021/12/php-timezone-03.png 514w, https://ailog.tw/lifelog/wp-content/uploads/2021/12/php-timezone-03-300x51.png 300w" sizes="auto, (max-width: 514px) 100vw, 514px" /></span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP socket_read()告警訊息unable to read from socket [10060]</title>
		<link>https://ailog.tw/lifelog/2021/03/01/phpsocket/</link>
		
		<dc:creator><![CDATA[blackjack]]></dc:creator>
		<pubDate>Mon, 01 Mar 2021 06:50:15 +0000</pubDate>
				<category><![CDATA[3C資訊]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP socket_read()告警訊息unable to read from socket [10060]]]></category>
		<category><![CDATA[socket_read()]]></category>
		<category><![CDATA[unable to read from socket [10060]]]></category>
		<guid isPermaLink="false">https://ailog.tw/lifelog/?p=7060</guid>

					<description><![CDATA[小編平常都是在Linux/FreeBSD下使用PHP，但難免還是有些情境需求要在Windows 下跑PHP，最 &#8230; <p class="link-more"><a href="https://ailog.tw/lifelog/2021/03/01/phpsocket/" class="more-link">閱讀全文<span class="screen-reader-text">〈PHP socket_read()告警訊息unable to read from socket [10060]〉</span></a></p>]]></description>
										<content:encoded><![CDATA[<p>小編平常都是在Linux/FreeBSD下使用PHP，但難免還是有些情境需求要在Windows 下跑PHP<span id="more-7060"></span>，最近做了一個有關socket的案子，每當進行socket_read()時就會出現<br />
「 unable to read from socket [10060] 」的告警訊息，但一樣的程式碼在Linux平台上運作是不會有問題的，雖然不影響運作結果，但難免會給使用者有異常的感覺。</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-7062 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2021/03/phpsocket-01.png" alt="" width="640" height="202" srcset="https://ailog.tw/lifelog/wp-content/uploads/2021/03/phpsocket-01.png 640w, https://ailog.tw/lifelog/wp-content/uploads/2021/03/phpsocket-01-300x95.png 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
<p>後來小邊爬文好幾天文章，試過各種方法，終於找到一個比較好的解決方式，步驟如下：</p>
<p>一、在PHP程式裡宣告警告等級，忽略waring告警。<br />
在程式裡插入一行「ini_set(&#8220;error_reporting&#8221;,&#8221;E_ALL &amp; ~E_NOTICE&#8221;);」<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-7063 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2021/03/phpsocket-02.png" alt="" width="546" height="101" srcset="https://ailog.tw/lifelog/wp-content/uploads/2021/03/phpsocket-02.png 546w, https://ailog.tw/lifelog/wp-content/uploads/2021/03/phpsocket-02-300x55.png 300w" sizes="auto, (max-width: 546px) 100vw, 546px" /></p>
<p>二、變更socket_read()的寫法<br />
將socket_read()的寫法變更為「socket_read($socket,1024,PHP_BINARY_READ);」<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-7064 size-full" src="https://ailog.tw/lifelog/wp-content/uploads/2021/03/phpsocket-03.png" alt="" width="450" height="68" srcset="https://ailog.tw/lifelog/wp-content/uploads/2021/03/phpsocket-03.png 450w, https://ailog.tw/lifelog/wp-content/uploads/2021/03/phpsocket-03-300x45.png 300w" sizes="auto, (max-width: 450px) 100vw, 450px" /></p>
<p>透過以上的設定，小編就順利交差摟，希望這篇文章可以幫助到跟小編一樣苦惱的夥伴們。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
