로컬호스트에서 실행시 gedit가 열리면서 링크된 프로그램의 소스코드가 나타납니다

정리하여 다시 올립니다.

12.04, php, mysql을 설치하여(2013년 11월) 회원등록 프로그램을 테스트하고 있습니다.
웹브라우저에서 //localhost/x.php를 실행하여 mysql에 레코드를 정상적으로 등록을 하였습니다.
그런데 며칠 전부터 아래 글 제목("로컬호스트 실행하니 gedit로 소스 프로그램이 보입니다.") 처럼 비정상적으로 되기 시작하여 헤메고 있습니다.

<< 현재의 환경입니다. >>

  1. /etc/apache2.conf의 내용입니다.

This is the main Apache server configuration file.

중략합니다.

Include all the user configurations:

Include httpd.conf
이하 생략입니다.

  1. /etc/apache2.conf 의 내용입니다
    ServerName Localhost

LoadModule php5_module Modules/libphp5.so
AddType application/x-httpd-php .html .php .phtml .inc .php3
AddType application/x-httpd-php-source .phps

==> 코치해주신대로(bahzu님) /etc/httpd.conf을 수정하기 위해 내용을 보니
ServerName Localhost ==> 처음엔 달랑 이거 한 줄 있더군요.
그래도 문제 발생 전에는 레코드 등록 되고 select * 로 확인했습니다.
그래서 위 처럼 수정해서 테스트해도 마찬가집니다.

<< 문제점입니다 >>: 해법 좀 부탁드립니다!!!

아래 회원등록 프로그램을 //local/x.html 로 실행하면, 입력화면이 나타납니다.

문제 1. 우선 회원아디를 입력하고 ID 검색을 클릭하면 check_ID_Window() 가 있는 member.js를 수행합니다.(아디를 입력않으면 에러 메세지가 나타므로 수행 확인함)
입력된 아디가 있으면 중복 아디를 체크하기 위해 k_check_id.php를 링크해서 DB 체크를 수행해야 되는 데, 이 때 gedit가 열리면서 k_check_id.php의 소스코드가 나타납니다.

문제 2. 회원등록 프로그램에서 입력항목을 정상으로 입력한 후 맨 마지막의 저장버턴을 누르면 문제 1과 마찬가지로 gedit 열리면서 k_member_create_post.php 소스가 보입니다.

글의 맨 앞에 말씀드린 대로 아래 프로그램은 문제 발생하기 이전에는 정상적으로 mysql에 레코드를 등록하였습니다.

회원등록 프로그램 : x.html
<html>
<head>
<title>PK 회원 등록</title>
<link rel="stylesheet" href="…/css/ksh.css" type="text/css">
<script language="JavaScript" src="…/js/member.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body bgcolor="#FFFFFF" text="#000000" leftmargin="30" topmargin="30">
<form name="form1" method="post" action="k_member_create_post.php">
<table width="662" border="0" cellspacing="0" cellpadding="0"> <!-- t1 –>

*** 중략하고***
<input type="text" name="id" size="15" maxlength="15">
</td>
<td width="24%">
<!-- ID 중복 체크 –>
<input type="button" value="ID 검색" onclick="check_ID_Window(‘./k_check_id.php’)">
</td>
<td >영문, 숫자 조합 4~15자</td>
*중간 생략합니다

   &lt;tr&gt;
    &lt;td height=&quot;26&quot;&gt;

*** ==> 아래는 모든 항목 입력후 저장 버턴 누르면 member.js 의 checkInput()의 수행하고, form의 action="k_member_create_post.php" 으로. 그러나 gedit 수행 에러***
<div align="center"><a href="javascript:checkInput()"><img src="…/images/guest/save.gif" border="0"></a><a href="javascript:history.go(-1)"><img src="…/images/guest/cancel.gif" border="0"></a></div>
</td>
</tr>
이하 생략함.

해당 파일에 접근할 때 아파치 서버 로그 찾아 보세요.

[quote:1qcz8geh]<a href="javascript:checkInput()"><img src="…/images/guest/save.gif" border="0"></a>[/quote:1qcz8geh]
위의 내용이 잘 못 되었습니다. 일단 위의 js 내용을 알수 없으므로 패스하고
아마 해당 이미지가 저장 버튼인 것 같습니다.

그렇다면 위에서 처럼 <img> 태그로 데이타를 보내시면(form element가 아니므로) 뒤에서 변수를 받을 php에서 해석 하지 못합니다.
따라서 아래 처럼 해 보십시오. 좀 더 태그와 자바 스크립트에 대한 기반을 다지시기 바랍니다.

[code:1qcz8geh]<form name="form1" method="post" action="k_member_create_post.php">
~~ 중략 ~~
<input name="submit" type="image" src="../images/guest/save.gif" border="0" onClick="javascript:checkInput()">
~~ 중략 ~~
</form>[/code:1qcz8geh]
위에서 이벤트를 onClick으로 처리 하고 input 요소로 이미지를 대체 하였습니다.
또는 onSubmit 이벤트를 직접 form 태그에 삽입할 수도 있습니다.

[code:1qcz8geh]<form name="form1" method="post" action="k_member_create_post.php" onSubmit="javascript:checkInput()">
~~ 중략 ~~
<input name="submit" type="image" src="../images/guest/save.gif" border="0">
~~ 중략 ~~
</form>[/code:1qcz8geh]
스크립트가 변수를 체크하여 form으로 post 하는 내용인 것으로 파악되므로
처음에 말씀 한 다운로드 현상과는 무관 할 것으로 보여 집니다.

님께서는 httpd.conf만 내용을 파악 하신 것으로 보여 집니다. (서버네임은 Localhost가 아니라 localhost입니다.)
아마도 패키지를 설치 하신 것 같은 데 이전에 다른 분께서 참고 하라고 한 내용을 참조하여
본인이 직접 찾아 보시기 바랍니다.

제가 말씀 드린 내용은 컴파일 버전을 두고 애기한 것이라
패키지 버전과는 설정 내용이 여기 저기 흩어져 있어 설정하셔야 할 파일이 조금 다릅니다.

수정

[quote:1qcz8geh]문제 2. 회원등록 프로그램에서 입력항목을 정상으로 입력한 후 맨 마지막의 저장버턴을 누르면 문제 1과 마찬가지로 gedit 열리면서 k_member_create_post.php 소스가 보입니다.[/quote:1qcz8geh]
위의 내용을 볼 때 자바 스크립트 파일에 문제가 있을 수 있습니다. 그러나 내용을 밝혀 주시지 않으셨기 때문에
원인을 단정 하기 어렵습니다. 스크립트 때문에 발생한다고 보기에는 조금 애매합니다.

말씀 하신 내용을 보변 html과 php 확장자를 가진 파일을 호출 하시는 데
php 파싱이 빠져 있을 수 있습니다. 이부분을 아래 처럼 테스트 해 보십시오.

[code:1qcz8geh]<?php
phpinfo();
?>[/code:1qcz8geh]
위의 내용을 가진 파일의 확장자를 index.php로 만드셔서 브라우저로 호출하시고 다운로드 창이 뜨거나 소스를 그대로 출력한다면
php 확장자에 대한 핸들러를 설정해야 한다는 뜻입니다. 만약 제대로 페이지가 보여진다면
스크립트 내용에 문제가 있다고 볼수 밖엔 없을 것 같습니다.

member.js 전체 내용입니다. 아직 전부 이해한 것은 아닙니다.
아파치 서버 로그는 아직 모르겠습니다.^^;;
//localhost/index.php 를 실행하면 php 버전 5… 정보가 나타납니다

<!–

function focus_move(){
var str = document.form1.jumin1.value.length;
if(str == 6)
document.form1.jumin2.focus();
}

function page_send(page_value){
var form = document.form1;
form.page.value=page_value;
form.submit();
}

function edit_move(str)
{
var str;
document.location = str;
}

function checkInput(){
var form = document.form1;

if(!form.id.value) {
alert("아이디(ID)를 입력하세요!");
form.id.focus();
return ;
}
if(!IsID(form.id.name)) {
alert("ID는 4~15자의 영문 소문자, 숫자 또는 조합된 문자열이어야 합니다!");
form.id.focus();
form.id.select();
return ;
}
if(!form.passwd.value) {
alert("비밀번호를 입력하세요!");
form.passwd.focus();
return ;
}
if(!IsPW(form.passwd.name)) {
alert("비밀번호는 4~15자의 영문자나 숫자 또는 조합된 문자열이어야 합니다!");
form.passwd.focus();
form.passwd.select();
return;
}
if(form.passwd.value != form.passwd2.value) {
alert("입력하신 비밀번호가 일치하지 않습니다.\n다시 확인하시고 넣어주십시오!");
form.passwd2.focus();
form.passwd2.select();
return;
}

if(!form.name.value) {
alert("이름을 입력하세요!");
form.name.focus();
return ;
}

if(!form.birthyear.value) {
alert("출생연도를 입력하세요!");
form.birthyear.focus();
return ;
}

if(form.birthyear.value) {
if(!IsNumber(form.birthyear.name)){
alert("BirthYear must be numeric!"); // Key Board Hangul input Error
form.birthyear.focus();
return;
}
}

if(!form.email.value) {
alert("E-mail을 입력하세요!");
form.email.focus();
return ;
}

if(form.email.value) {
if (form.email.value.indexOf("@") < 0) // check email more precisely
{
alert(‘이메일 주소 형식이 틀립니다.-check email more precisely-’);
form.email.focus();
return;
}
}

if(form.cphone1.value) {
if(!IsNumber(form.cphone1.name)){
alert("핸드폰 번호는 숫자여야 합니다!–check Hanul");
form.hphone1.focus();
return;
}
}

if(form.cphone2.value) {
if(!IsNumber(form.cphone2.name)){
alert("핸드폰 번호는 숫자여야 합니다!");
form.hphone2.focus();
return ;
}
}

if(form.cphone3.value) {
if(!IsNumber(form.cphone3.name)){
alert("핸드폰 번호는 숫자여야 합니다!");
form.hphone3.focus();
return;
}
}

if(form.phone1.value) {
if(!IsNumber(form.phone1.name)){
alert("전화번호는 숫자여야 합니다!");
form.phone1.focus();
return;
}
}

if(form.phone2.value) {
if(!IsNumber(form.phone2.name)){
alert("전화번호는 숫자여야 합니다!");
form.phone2.focus();
return;
}
}

if(form.phone3.value) {
if(!IsNumber(form.phone3.name)){
alert("전화번호는 숫자여야 합니다!");
form.phone3.focus();
return;
}
}

form.submit();
}

function checkEdit(){
var form = document.form1;

if(!form.passwd.value) {
alert("비밀번호를 입력하세요!");
form.passwd.focus();
return ;
}
if(!IsPW(form.passwd.name)) {
alert("비밀번호는 4~15자의 영문자나 숫자 또는 조합된 문자열이어야 합니다!");
form.passwd.focus();
form.passwd.select();
return;
}
if(form.passwd.value != form.passwd2.value) {
alert("입력하신 비밀번호가 일치하지 않습니다.\n다시 확인하시고 넣어주십시오!");
form.passwd2.focus();
form.passwd2.select();
return;
}

if(form.email.value) {
if (form.email.value.indexOf("@") < 0)
{
alert(‘이메일 주소 형식이 틀립니다.’);
form.email.focus();
return;
}
}

if(form.phone1.value) {
if(!IsNumber(form.phone1.name)){
alert("전화번호는 숫자여야 합니다!");
form.phone1.focus();
return;
}
}

if(form.phone2.value) {
if(!IsNumber(form.phone2.name)){
alert("전화번호는 숫자여야 합니다!");
form.phone2.focus();
return;
}
}

if(form.phone3.value) {
if(!IsNumber(form.phone3.name)){
alert("전화번호는 숫자여야 합니다!");
form.phone3.focus();
return;
}
}

if(form.cphone1.value) {
if(!IsNumber(form.cphone1.name)){
alert("핸드폰 번호는 숫자여야 합니다!");
form.hphone1.focus();
return;
}
}

if(form.cphone2.value) {
if(!IsNumber(form.cphone2.name)){
alert("핸드폰 번호는 숫자여야 합니다!");
form.hphone2.focus();
return ;
}
}

if(form.cphone3.value) {
if(!IsNumber(form.cphone3.name)){
alert("핸드폰 번호는 숫자여야 합니다!");
form.hphone3.focus();
return;
}
}

if(!form.zipcode1.value) {
alert("우편번호를 입력하세요!");
form.zipcode1.focus();
return;
}

form.submit();
}

function IsID(formname) {
var form=eval("document.form1." + formname);

 if(form.value.length &lt; 4 || form.value.length &gt; 15) {
     return false;
 }
 for(var i=0; i &lt; form.value.length; i++) {
     var chr = form.value.substr(i,1);
     if((chr &lt; '0' || chr &gt; '9') &amp;&amp; (chr &lt; 'a' || chr &gt; 'z') &amp;&amp; (chr &lt; 'A' || chr &gt; 'Z')) {
        return false;
     }
 }
 return true;

}

function IsPW(formname) {
var form=eval("document.form1." + formname);

 if(form.value.length &lt; 4 || form.value.length &gt; 15) {
     return false;
 }
 for(var i=0; i &lt; form.value.length; i++) {
     var chr = form.value.substr(i,1);
     if((chr &lt; '0' || chr &gt; '9') &amp;&amp; (chr &lt; 'a' || chr &gt; 'z') &amp;&amp; ( chr &lt; 'A' || chr &gt; 'Z')) {
        return false;
     }
 }
 return true;

}

function IsNumber(formname) {
var form=eval("document.form1." + formname);

 for(var i=0; i &lt; form.value.length; i++) {
     var chr = form.value.substr(i,1);
     if((chr &lt; '0' || chr &gt; '9')) {
        return false;
     }
 }
 return true;

}

function ZipWindow(ref,what) {
var window_left = (screen.width-640)/2;
var window_top = (screen.height-480)/2;
ref = ref + "?what=" + what;
window.open(ref,"zipWin",‘width=550,height=250,status=no,top=’ + window_top + ‘,left=’ + window_left + ‘’);
}

function check_ID_Window(ref) {
var id= eval(document.form1.id);

if(!id.value) {
alert(‘아이디(ID)를 입력한 후에 확인하세요!’);
id.focus();
return;
}else {
ref = ref + "?id=" + id.value;
var window_left = (screen.width-640)/2;
var window_top = (screen.height-480)/2;
window.open(ref,"checkIDWin",‘width=300,height=150, scrollbars=no,status=no,top=’ + window_top + ‘,left=’ + window_left + ‘’);
}
}
//–>

로그 부터 보세요…

말씀 하신 다운로드 현상과 위의 스크립트와는 별 상관 관계가 없습니다.
그러나 스크립트에 몇 가지 사용법에 미숙한 점이 있습니다.

예를 들어 스크립트에서 form.submit(); 사용하는 것은 맞으나 액션이 없으므로
뒤의 php 파일이 변수를 받아 올 수 없습니다.

이미지 태그를 사용하셨으므로 반드시 액션을 아래 처럼 주셔야 합니다.

[code:vrzdip29]function checkInput(){
var form = document.form1;

~~중략 ~~

form.action = "변수를 받을 파일";
form.submit();
return;
}[/code:vrzdip29]
그러나 위의 코드가 옳은 방법은 아닙니다.
이전에 말씀 드린 대로 <input>요소를 이용하고 타입을 이미지로 지정 하는 방법이
만약에 있을 에러에 대처하는 옳은 방법입니다.

<input>요소 타입이 이미지로 설정하시면 이 요소는 이미 submit의 기능을 가지고 있게 됩니다.
따라서 아래 처럼 하는 것이 올바른 방법입니다.

[code:vrzdip29]<form name="form1" method="post" action="k_member_create_post.php">
~~ 중략 ~~
<input name="submit" type="image" src="../images/guest/save.gif" border="0" onClick="javascript:checkInput()">
~~ 중략 ~~
</form>

스크립트 활용

function checkInput(){
var form = document.form1;

if(!form.id.value) {
alert("아이디(ID)를 입력하세요!");
form.id.focus();
return false;
}
~~ 중략 ~~
}[/code:vrzdip29]
phpinfo가 제대로 출력되었다면 마잇님의 말씀 처럼 log를 확인해 보시든지
핸들러 설정이 제대로 되어 있는지 여부와 사용자 별도의 .htaccess 설정이 되어 있다면 핸들러 설정을 따로 주지 않았는지
구문에는 에러가 없는지를 확인해 보십시오.

[code:vrzdip29]form.passwd.focus();
form.passwd.select();[/code:vrzdip29]
둘 중 하나만 사용 하십시오. 패스워드에 셀렉트는 필요가 없을 것으로 보고
셀렉트 박스도 value만 주시면 focus로도 충분 합니다.

아래는 셀렉트박스의 활용법입니다.

[code:vrzdip29]<select name="test">
<option value="">선택<option>
<option value="1">1<option>
<option value="2">2<option>

스크립트

if(!form.test.value) {
alert("선택하십시오.");
form.test.focus();
return false;

<select name="test">
<option>선택<option>
<option value="1">1<option>
<option value="2">2<option>

스크립트

if(!form.test.value) {
alert("선택하십시오.");
form.test.select();
return false;
[/code:vrzdip29]

수정

혹여 노파심에 말씀 드리지만 k_member_create_post.php 파일의 php 선언시 "<?"로 되어 있지 않나요?
그렇다면 php.ini에서 설정중 short_open_tag = Off 로 설정 되어 있는지 확인 하십시오.

위와 같이 되어 있다면 다운로드 창이 뜨게 되거나 소스가 그대로 출력됩니다.
short_open_tag = On 으로 설정하시고 다시 페이지를 호출해 보십시오.

어찌 되었건, php소스가 보여진다는 것은,
php 프로그램에 의해 코드가 번역되지 않은 것입니다.
번역이 되었다면, 해당 php 코드가 출력하는 내용으로 대체되어야 마땅합니다.

이러한 문제가 발생하는 것은, php가 웹서버를 통해서 실행되지 않고,

로컬 컴퓨터에서 불러오기 예를 들어, 노틸러스에서 php파일을 더블 클릭한 것과 같이 되었거나,
웹 서버에서 php를 핸들링하지 않고, php 파일 자체를 전송해 주거나,
스크립트에서 URL이 아니라, file://x.php와 같이 잘못된 주소로 접근한 것입니다.

자바스크립트에서 form은 객체이고, action은 form에 속하는 엘리먼트입니다.
그래서 form.submit()를 하게되면, form의 input 엘리먼트들의 값이, action 엘리먼트의 값에 적힌 주소로 전송됩니다.
그러니, form.action=하고 적어주지 않더라도, html코드에서 action을 적어주면 되고,
form.action은 위에서 적어준 주소를 변경하기 위해 사용됩니다.

스크립트에서 문제가 발생할 수 있기 때문에,
먼저, 모든 스크립트를 제거하고, 모든 폼의 값을 제대로 된 기본 값으로 채우고 전송하게 하는 php 소스를 만들어 보세요.
그리고 그것을 테스트하여 스크립트에서 발생된 문제인가를 알 수 있습니다.

sudo apt-get install php5-cli
이것은 php를 웹서버가 아닌, 명령창에서 해석할 수 있게 합니다.
/etc/php5/cli/php.ini 에서 데이터베이스 설정을 하세요.
php x.html 혹은 php x.php 으로 해당 파일을 실행해 보세요.
이로써, 웹서버가 php를 번역하고 있는지 알 수 있습니다.

phpinfo가 정상적인 출력을 보여주는데도, 웹서버에서 제대로 번역하지 않는다면,
이것은 php파일의 위치나 파일명에 대한 핸들러 설정이 제대로 설정되지 않았거나,
php에서 번역되는 과정에서 문제가 발생한 것일 가능성이 큽니다.
이런 경우, 로그파일을 살펴보셔야 할 것입니다.

그리고, 한가지 주의해야 할 점은, target 속성입니다.
새 창을 열고, 그 창에서 입력폼을 출력하고 폼을 전송한 경우, 결과는 그 창에 뿌려집니다.
그것을 막고, 새창을 열기 전의 창에 결과를 출력하기 위해서는 target 속성을 적어주어야 합니다.
<form id="myform" action="x.php" target="_parent"> 이와 같이 하거나,
자바스크립트로, document.forms[‘myform’].target=opener.name
이렇게 하셔야 합니다.
물론 이와 같이 target을 지정하지 않는다고, 결과가 어디에 나타나는가의 문제지, 서버의 php가 실행되지 않는 것은 아닙니다.
즉, PHP소스가 보여지는 것과는 별개의 문제로, 혼동될 수 있는 것이라 적어 본 것입니다.

로그를 보라는 뜻을 전혀 모르겠습니다만, 검색하니

/var/log 디렉토리에 syslog 와 syslog.1의 맨 마지막에 아래 내용이 있습니다.
두 파일의 내용이 시간만 다르고 동일합니다.

Jan 16 22:09:01 ubuntu CRON[5794]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null ; -delete)

[quote:jp512y9x]자바스크립트에서 form은 객체이고, action은 form에 속하는 엘리먼트입니다.
그래서 form.submit()를 하게되면, form의 input 엘리먼트들의 값이, action 엘리먼트의 값에 적힌 주소로 전송됩니다.
그러니, form.action=하고 적어주지 않더라도, html코드에서 action을 적어주면 되고,
form.action은 위에서 적어준 주소를 변경하기 위해 사용됩니다.[/quote:jp512y9x]
일반적으로는 맞는 말씀입니다.
그러나 경험상 <a onclick="">와 같이 input 요소가 아니면 post 안되는 브라우저가 있었던 것으로
알고 있습니다. 딱히 어떤 브라우저의 버전인지는 기억이 나지 않습니다만
<input type="submit">에서는 protochaos님 말씀 처럼 100% 확실 합니다.

그냥 제 경험상의 애기를 드립니다.

[quote:2nw5m6jn]로그를 보라는 뜻을 전혀 모르겠습니다만, 검색하니[/quote:2nw5m6jn]
그 로그가 아닙니다. 위의 로그는 시스템 로그로 cron 설정이 된 것 같습니다.

아파치 로그를 확인 하십시오.

/var/log/apache2에 있는 access.log와 error.log에 아파치 로그가 저장되고,
php번역과정의 에러는 /etc/php5/apache2/php.ini 안에 설정된, error_log 값에 따라 저장됩니다.
절대경로가 아닌 경우에는 해당 스크립트가 존재하는 곳에서 찾으셔야 할 것입니다.

[quote="bahzu":13jvt3t9]
그러나 경험상 <a onclick="">와 같이 input 요소가 아니면 post 안되는 브라우저가 있었던 것으로
알고 있습니다. 딱히 어떤 브라우저의 버전인지는 기억이 나지 않습니다만
<input type="submit">에서는 protochaos님 말씀 처럼 100% 확실 합니다.

그냥 제 경험상의 애기를 드립니다.[/quote:13jvt3t9]

음 onclick="javascript:myfunc()" 과 onclick="myfunc()"이 똑같다고 볼 수는 없습니다.
form안에 a 링크가 있더라도, a링크를 선택했을 경우, 그 안에 href로 명시된 주소로 GET메소드로 요청을 하게 됩니다.
그런데 href의 주소가 javascript: 로 시작하는 경우, 브라우저에서는 이것을 서버측 URL로 판단하지 않고, 자바스크립트 인터프리터에서
바로 번역합니다.

그리고, 혼동될 수 있는 것은, onclick과 onsubmit가 다르다는 것입니다.
form안에서 onclick를 한다면, click이벤트도 발생하면서, 폼도 전송됩니다.
onclick은 클릭하는 사건이고, onsubmit는 submit버튼을 클릭하는 사건이 아니라,
폼을 전송하는 요구에 대한 이벤트입니다.
그래서 onsubmit 함수는 명시적으로 return값을 적어주는 것이 바람직하며,
return 값이 true면 폼을 전송하고, false면 폼을 전송하지 않습니다.

[code:13jvt3t9]
<script>
function check_form() {
...
if (isValid)
return true
else
return false
}
</script>
...
<form onSubmit="return check_form()">
...[/code:13jvt3t9]
이와 같이 말입니다.

그래서, 폼의 전송 여부를 결정할 경우, onSubmit를 사용하고, 리턴값도 명시적으로 해주는 것이 바람직 합니다.

저도 protochaos님의 말씀 처럼 그런줄 알았습니다.
막상 해보면 firefox 초기버전(엔진이 바뀌었으므로), opera(오페라 하위 버전이였던 것 같습니다.)에선 안되는 경우가 있어
만약에 사태에 대비해 항상 그렇게 작업을 해 왔습니다.

일일히 체크할 요량도 없겠지만 만사가 불여 튼튼이라고 혹시나 싶어서 말이지요!
그나 저나 파이어 폭스 입력 도구 문제는 한번 해 보셨는지요?

아직 까지는 별문제 없는 것 같습니다.

[quote="bahzu":36pr2n17]
그나 저나 파이어 폭스 입력 도구 문제는 한번 해 보셨는지요?

아직 까지는 별문제 없는 것 같습니다.[/quote:36pr2n17]

제가 컴파일 해서 올린 버전은 configure에서 i18n 옵션을 넣고 컴파일 한 것이었습니다.
님이 한가지 패치를 더 거론하신 것 같은데,
저는 그냥 firefox에서 ibus를 실행하게 하고 사용하고 있습니다.
이렇게 한 이후에는 문제도 없었고, 업데이트하더라도, 적용하는게 간단하기 때문이죠.
추가 패치를 적용해 컴파일 하려다가, 귀찮아져서요.
어자피 14.04 버전으로 나중에 갈아타야 할 것이고,
그에 따라 다시 컴파일 해야 되기도 하고, ppa에 그런 것을 맡기기엔 불안하기도 하고 해서요.
ppa는 단순히 한 패키지만 존재하는 것이 아니라서, 다른 패키지도 업데이트 될 수 있고,
그에 따라 문제의 소지도 존재하기 때문에, 기본 패키지와 관련된 것은 ppa를 되도록 사용하지 않습니다.

님이 말씀하신 패치로 xim문제가 해결되었다면, 공식적으로 ubuntu 14.04에 적용될 수 있도록,
버그 제보를 하는 것이 좋지 싶습니다.
14.04 릴리즈 혹은 그 이전의 버전에 대해서 패치가 공식적으로 적용될 수 있도록 말입니다.

차기 배포반에선 1.6.2로 버전업이 되지 않겠습니까?
우분투와 페도라 빼고는 이미 수세, 맨드리바에서는 1.6.2 버전으로 업그레이드 되었는데요…^^

다음 버전에서는 별 문제 없을 것 같은 데 수세는 왜 그런지 모르겠네요…!!

아파치 로그 파일들입니다.==> 잘 모르겠습니다…

/var/log/apache2/access.log
127.0.0.1 - - [16/Jan/2014:20:19:04 +0900] "GET /index.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2374 "http://localhost/index.php&quot; "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
127.0.0.1 - - [16/Jan/2014:20:19:05 +0900] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
127.0.0.1 - - [17/Jan/2014:00:08:02 +0900] "GET /x_indate.php HTTP/1.1" 404 501 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
127.0.0.1 - - [17/Jan/2014:00:08:02 +0900] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
127.0.0.1 - - [17/Jan/2014:00:08:27 +0900] "GET /myhome/koom/x_indate.php HTTP/1.1" 500 275 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"

/var/log/apache2/access.log.1
127.0.0.1 - - [11/Jan/2014:04:45:27 +0900] "POST /myhome/koom/member/k_member_create_post.php HTTP/1.1" 200 474 "http://localhost/myhome/koom/member/k_member_create.html&quot; "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0"
127.0.0.1 - - [14/Jan/2014:00:17:19 +0900] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
127.0.0.1 - - [14/Jan/2014:00:17:19 +0900] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
127.0.0.1 - - [14/Jan/2014:00:17:19 +0900] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
127.0.0.1 - - [14/Jan/2014:00:17:19 +0900] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"
127.0.0.1 - - [14/Jan/2014:00:17:19 +0900] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Ubuntu) (internal dummy connection)"

/var/log/apache2/error.log
[Wed Jan 15 21:09:41 2014] [notice] caught SIGTERM, shutting down
[Thu Jan 16 13:41:58 2014] [warn] module php5_module is already loaded, skipping
[Thu Jan 16 13:42:02 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured – resuming normal operations
[Thu Jan 16 14:26:34 2014] [notice] caught SIGTERM, shutting down
[Thu Jan 16 15:01:59 2014] [warn] module php5_module is already loaded, skipping
[Thu Jan 16 15:02:03 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured – resuming normal operations
[Thu Jan 16 15:24:46 2014] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Thu Jan 16 15:24:46 2014] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Thu Jan 16 17:40:59 2014] [notice] caught SIGTERM, shutting down
[Thu Jan 16 18:33:12 2014] [warn] module php5_module is already loaded, skipping
[Thu Jan 16 18:33:16 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured – resuming normal operations
[Thu Jan 16 20:19:05 2014] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Jan 17 00:08:02 2014] [error] [client 127.0.0.1] script ‘/var/www/x_indate.php’ not found or unable to stat
[Fri Jan 17 00:08:02 2014] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Jan 17 00:08:27 2014] [error] [client 127.0.0.1] PHP Parse error: syntax error, unexpected ‘/’ in /var/www/myhome/koom/x_indate.php on line 26

/var/log/apache2/error.log.1
[Fri Jan 10 15:32:11 2014] [error] [client 127.0.0.1] PHP Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ‘,’ or ‘;’ in /var/www/myhome/koom/quote7.php on line 12
[Fri Jan 10 15:42:27 2014] [notice] caught SIGTERM, shutting down
[Sat Jan 11 01:41:51 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured – resuming normal operations
[Sat Jan 11 03:14:16 2014] [notice] caught SIGTERM, shutting down
[Sat Jan 11 03:15:28 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured – resuming normal operations
[Sat Jan 11 03:23:17 2014] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Sat Jan 11 04:23:11 2014] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Sat Jan 11 04:23:27 2014] [error] [client 127.0.0.1] script ‘/var/www/myhome/koom/member/k_id_check.php’ not found or unable to stat, referer: http://localhost/myhome/koom/member/k_m … reate.html
[Sat Jan 11 04:48:33 2014] [notice] caught SIGTERM, shutting down
[Sat Jan 11 04:49:43 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured – resuming normal operations
[Sat Jan 11 05:55:26 2014] [notice] caught SIGTERM, shutting down
[Tue Jan 14 00:08:32 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured – resuming normal operations
[Tue Jan 14 00:17:19 2014] [notice] Graceful restart requested, doing restart
[Tue Jan 14 00:17:20 2014] [warn] The Alias directive in /etc/phpmyadmin/apache.conf at line 3 will probably never match because it overlaps an earlier Alias.

스크립트에서 문제가 발생할 수 있기 때문에,
먼저, 모든 스크립트를 제거하고, 모든 폼의 값을 제대로 된 기본 값으로 채우고 전송하게 하는 php 소스를 만들어 보세요.
그리고 그것을 테스트하여 스크립트에서 발생된 문제인가를 알 수 있습니다.

==> 스크립트를 제어한 php 소스를 테스트할 예제를 제공해 주실 수 있으신지요?
제가 만들 능력이 없어서리…

[Fri Jan 17 00:08:27 2014] [error] [client 127.0.0.1] PHP Parse error: syntax error, unexpected ‘/’ in /var/www/myhome/koom/x_indate.php on line 26

이게 좀 의심스럽네요.

x_indate.php 파일 26행을 살펴 보세요.

[code:2ooyjhao]127.0.0.1 - - [17/Jan/2014:00:08:27 +0900] "GET /myhome/koom/x_indate.php HTTP/1.1" 500 275 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"[/code:2ooyjhao]

500이 Internal Server Error인데 보통 php에서 처리하다 오류나면 이렇게 된답니다.

아파치 에러 로그를 tail -f 하거나

php 파일 안에 다음과 같이 설정하면 오류 내용을 보여 주나 봅니다.

[code:2ooyjhao]ini_set(‘display_errors’,‘On’);
error_reporting(E_ALL);[/code:2ooyjhao]

http://stackoverflow.com/questions/1191 ... -500-error

소스에 문제가 있는 것 같습니다. 단순한 파싱 에러로 다운로드 창이 뜨는 현상과는
관련이 없는 내용들 입니다.

또한 500에러가 난다고 하더라도 다운로드 창이 뜨는 경우는 없는데
아파치 설정을 차근히 살펴 보시기 바랍니다.

뭔가 핸들러 설정에 이상이 있을 겁니다. 옛날 버전이라면 /etc/apache2/mods-enabled/php5.conf에
AddType이 아니라 AddHandler로 설정 되어 있을 수 있습니다.

그리고 아래 처럼 되어 있는지의 여부를 확인 하시십시오.

[code:220arvfq]<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>[/code:220arvfq]
위에서 처럼 되어 있다면 php_admin_value engine Off를 주석 처리 하십시오.

아파치 데몬을 새로 시작해서 같은 현상이 발생하는지를 확인 하시기 바랍니다.