PHP 코드로 리눅스 서버에 파일생성 문제 입니다.
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
$imageData=$GLOBALS['HTTP_RAW_POST_DATA'];
$filteredData=substr($imageData, strpos($imageData, ",")+1);
$unencodedData=base64_decode($filteredData);
$year=date('y');
$month=date('m');
$day=date('d');
$time=date('H');
$min=date('i');
$sec=date('s');
$nowtime = $year.$month.$day.$time.$min.$sec.'Image.png';
$fp = fopen( $nowtime, 'wb' );
fwrite( $fp, $unencodedData);
fclose( $fp );
}
?>
안녕하세요.
리눅스서버에 PHP코드로 파일 생성하는데 어려움이 있어 질문글을 올립니다.
우선 코드에는 문제가 없는거같습니다. 같은 코드로 윈도우 서버에서는 정상 작동을 합니다.
그래서 리눅스의 권한 문제일 거라 생각하고 여러 방법들을 찾아봐서 해봤음에도...
파일이 생성이 되지 않네요.
또한 PHP코드로 DB에 접속 하려하는데도 접속도 되지 않고...
FTP와 httpd는 잘 작동 됩니다.
<?php
phpinfo();
?>
PHP또한 phpinfo(); 함수를 사용하여 정상 작동되는 것도 확인 했습니다.
대체 뭐가 문제일까요? 벽에 막혀있는 저에게 도움의 손길이 필요합니다...
감사합니다...
(PS. 리눅스 서버는 제가 셋팅했습니다. centos 7 사용했고 서버 셋팅은 처음 해봤습니다.)
딱히 안될 이유는 없어보이는데, $nowtime 앞에
딱히 안될 이유는 없어보이는데, fopen에서 $nowtime 앞에 절대 경로까지 줘보시죠?
그리고 DB 접속 문제는 코드나, 에러문구 등을 보여주시면 문제가 공유 될 수 있겠죠..
소곤소곤
답글 감사합니다.
절대경로를 주었는데도 생성이 안되네요...
DB의 경우 우선 접속이 잘 되는지 테스트 해버려고 했는데 연결실패하네요...
<?php
$num = 1;
$db_host = "localhost";
$db_user = "1234";
$db_passwd = "1234";
$db_name = "mysql";
$conn = mysql_connect($db_host,$db_user,$db_passwd);
if(!$conn){
print("연결실패".$conn);
die("종료됩니다.");
}else{
print("성공");
}
mysql_select_db($db_name, $conn);
$query="INSERT INTO data (num, name) VALUES ('$name','$nowtime')";
if (! mysql_query ( $query)) {
die("Error: " . mysql_error($conn));
}
?>
리눅스 셋팅이 잘못된건지 뭐가 문제인지 원인도 모르겠으니 미치겠습니다.
mysql 데몬 살아있나요? localhost의 기본
mysql 데몬 살아있나요? localhost의 기본 접속 포트가 3306인데, 포트번호는 3306으로 되어 있나요?
die('Could not connect: ' . mysql_error());
찍어보세요.
그리고 파일은 fopen이 실패인지부터 검사코드 넣어보시죠~
소곤소곤
php 설정중에 register global 설정이
php 설정중에 register global 설정이 되어있는가 확인해보세요.
최신버전의 php의 경우 이 설정이 없거나 default로 금지가 되어있습니다.
답글 감사합니다.
php.ini 파일 말씀하시는 건가요?
한번 테스트 해보겠습니다.
답글 감사합니다.
php.ini 파일내에
register_globals = on
입력하였지만 업로드가 안되네요...
> 그래서 리눅스의 권한 문제일 거라 생각하고 여러
> 그래서 리눅스의 권한 문제일 거라 생각하고 여러 방법들을 찾아봐서 해봤음에도...
간단히 적으셔서 이미 해보셨나모르겠는데, 웹서버의 uid로 원하는 디렉토리레 쓰기 권한이 있는 건 확실한가요?
좋은 하루 되세요!
답글 감사합니다.
문제 해결했습니다!!
우선 centos 버전을 7 -> 6.5로 바꾸었구요.
바꾸고 다시 셋팅하니 DB접속은 잘 됩니다. 다음으론 역시 파일 생성이 안되더라구요...
이것도 다시 셋팅해보고 해봐도 안되다가...
해당 파일 생성 디렉토리 뿐만아니라 상위 디렉토리까지 권한을 허용 해야 하더라구요.
이것때문에 정말 힘들었습니다...
답변 달아주신분들 모두 감사합니다!
댓글 달기