๐ก Apache์ PHP oci8, Oracle DB ์ฐ๋์ CLI ํ๊ฒฝ์์๋ ์ ์์ ์ผ๋ก ๋์ํ์ง๋ง ์น ์ฌ์ดํธ์์๋ permission denied ์๋ฌ๊ฐ ๋ฐ์ํ์ ๋
โค๏ธ OS : Rocky Linux
โค๏ธ WAS : Apache
โค๏ธ DB : Oracle
โ ์ํฉ
Apache ์๋ฒ์ PHP oci8, OracleDB๋ฅผ ์ฐ๋ํ์ฌ php query๋ก ์์ฑ๋ ํ์ผ์ ์น ์ฌ์ดํธ์์ ์คํํด๋ณด๋ ค๊ณ ์๋ํ๋ค. ํ์ง๋ง CLI ํ๊ฒฝ์์๋ ์ ์์ ์ผ๋ก ์ ์ ๋์์์๋ ๋ถ๊ตฌํ๊ณ ์น ์ฌ์ดํธ์์ ์คํํ๋ฉด ์๋ฌ๋ฅผ ๋ฑ์๋ค.
BUT!!!
Basic query๋ php manual ์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ๋ค.
<?php
$conn = oci_connect('DB์ด๋ฆ', '๋น๋ฐ๋ฒํธ', '//localhost/์๋น์ค์ด๋ฆ');
if(!$conn) {
$m = oci_error();
echo $m['message'], "\n";
exit;
}
else {
print "Connected to Oracle!";
}
// Close the Oracle connection
oci_close($conn);
?>
โ ์์ธ
Oracle instant client๋ ์ฌ์ค์นํด๋ณด๊ณ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฉด์ผ๋ก ์์ธ์ ์ฐพ๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ค. ์์ฒญ ์ฝ์งํ ๊ฒฐ๊ณผ SELiux์ ๋ณด์ ์ค์ ๋ฌธ์ ๋๋ฌธ์ด์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค.
↓↓↓ ์์ธํ ๋ด์ฉ์ ์๋ ์ฐธ๊ณ ↓↓↓
CentOs7์ด๋ ์ค์ ์ด ๋น์ทํ Rocky Linux์๋ ๊ธฐ๋ณธ์ ์ผ๋ก SELinux ๊ฐ ํ์ฑํ๋์ด ์๋ค. ๋ฐ๋ผ์, ์ ํ๋ฆฌ์ผ์ด์ ์ค์น ๋ฐ ์ค์ ํ ๋ฌด์ธ๊ฐ ์ ๋๋ก ๋์ง ์๋๋ค๋ฉด ๋๋ถ๋ถ SELinux ์ค์ ๋๋ฌธ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
โ ํด๊ฒฐ ๋ฐฉ๋ฒ
getsebool -P httpd_can_network_connect on
http ํ๋ก์ธ์ค์์ ๋คํธ์ํฌ ์ฐ๊ฒฐ ํ์ฉ ์ฌ๋ถ๋ฅผ ON ํด์ฃผ๋ฉด ๋๋ค!