PHP 코드로 리눅스 서버에 파일생성 문제 입니다.

Internet03의 이미지

<?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 사용했고 서버 셋팅은 처음 해봤습니다.)

백연구원의 이미지

딱히 안될 이유는 없어보이는데, fopen에서 $nowtime 앞에 절대 경로까지 줘보시죠?
그리고 DB 접속 문제는 코드나, 에러문구 등을 보여주시면 문제가 공유 될 수 있겠죠..


소곤소곤

Internet03의 이미지

절대경로를 주었는데도 생성이 안되네요...
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의 기본 접속 포트가 3306인데, 포트번호는 3306으로 되어 있나요?

die('Could not connect: ' . mysql_error());
찍어보세요.

그리고 파일은 fopen이 실패인지부터 검사코드 넣어보시죠~


소곤소곤

yukariko의 이미지

php 설정중에 register global 설정이 되어있는가 확인해보세요.
최신버전의 php의 경우 이 설정이 없거나 default로 금지가 되어있습니다.

Internet03의 이미지

php.ini 파일 말씀하시는 건가요?
한번 테스트 해보겠습니다.

Internet03의 이미지

php.ini 파일내에
register_globals = on

입력하였지만 업로드가 안되네요...

raymundo의 이미지

> 그래서 리눅스의 권한 문제일 거라 생각하고 여러 방법들을 찾아봐서 해봤음에도...

간단히 적으셔서 이미 해보셨나모르겠는데, 웹서버의 uid로 원하는 디렉토리레 쓰기 권한이 있는 건 확실한가요?

좋은 하루 되세요!

익명 사용자의 이미지

문제 해결했습니다!!

우선 centos 버전을 7 -> 6.5로 바꾸었구요.

바꾸고 다시 셋팅하니 DB접속은 잘 됩니다. 다음으론 역시 파일 생성이 안되더라구요...

이것도 다시 셋팅해보고 해봐도 안되다가...

해당 파일 생성 디렉토리 뿐만아니라 상위 디렉토리까지 권한을 허용 해야 하더라구요.

이것때문에 정말 힘들었습니다...

답변 달아주신분들 모두 감사합니다!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.