[PHP] PHP 파일 업로드시 용량 설정 변경[PHP] PHP 파일 업로드시 용량 설정 변경

Posted at 2020. 1. 16. 10:28 | Posted in PHP/PHP Setting




참고 : https://webdir.tistory.com/221

참고 : https://zetawiki.com/wiki/PHP_업로드_설정





■ PHP.ini의 파일 업로드 설정 확인하기



 $ php -ini | grep php.ini

 $ sudo vim /etc/php/7.2./cli/php.ini


※ 기본값은 리눅스 버전 및 PHP 버전등 환경에 따라 조금 다를 수 있다.



#01. max_execution_time ( 기본값 : 30 )


 -. 파일업로드시 작업 처리 최대 제한시간을 설정한다.

 -. 지정한 시간보다 길어지는 경우 오류가 발생한다.

 -. 30은 30초를 의미한다.

 -. 0 또는 -1을 입력하면 무한대로 설정된다.




#02. max_input_time ( 기본값 : 60 )


 -. 스크립트 페이지로 넘어가기 전에 PHP 엔진이 데이털르 업로드 받는 시간을 설정한다.

 -. 만일 여러 메가 바이트의 데이터를 전송해야 하는 경우 max_input_time은 높아야 한다.

 -. 스크립트에서 set_time_limit( ) 함수를 호출해서 max_input_time의 PHP.ini 파일의 설정을 재정의 할 수 있다.

 -. PHP에서 set_time_limit( 0 )으로 설정하면 두가지 시간을 모두 제어할 수 있어

    업로드페이지에 이 코드를 삽입하는 것을 추천한다.




#03. memory_limit ( 기본값 : 128 )


 -. PHP의 메모리 제한 기본값은 128MB 이다.

 -. post_max_size가 만약 100M를 넘어간다면 memory_limit( 기본값 128M )를 최소 40M 가량 더해 적용해야 한다.

 -. PHP엔진이 POST로 전달되는 데이터를 철히나느 경우에는 전달되는 데이터의 일부를 유지하기 위해 메모리가 사용된다.

 -. memory_limit의 값을 너무 높은 값을 설정하는 것은 매우 위험할 수 있는데,

    이는 여러개의 업로드들이 동시에 처리되는 경우 사용가능한 모든 메모리를 사용해 버려

    다른 관련 없는 스크립트 뿐만 아니라 서버 전에체 영향을 미치게 된다.
 -. 0 또는 -1로 설정할경우 메모리 사용의 제한이 없어진다.




#04. post_max_size ( 기본값 : 8M )


 -. POST 방식으로 넘겨질 최대 데이터 사이즈를 설정한다.

 -. post_max_size는 upload_max_filesize보다 20% 크게 지정해야 한다.

    통신 비트는 일반적으로 8bit 후 2bit의 별도의 패리티비트( 오류정정 )가 포함되기 때문이다.




#05. file_uploads ( 기본값 : On )


 -. 파일 업로드 허용 여부

 -. 상태가 Off로 설정되어 있을 경우 업로드 할 수 없다.




#06. upload_tmp_dir ( 기본값 : /tmp )


 -. 업로드 처리시 임시 저장 디렉토리




#07. upload_max_filesize ( 기본값 : 2M )


 -. 최대 업로드 파일사이즈를 지정한다.

 -. 원하는 용량만큼 설정하면 된다.




#08. max_file_uploads ( 기본값 : 20 )


 -. 업로드시 한번에 올릴 수 있는 파일의 최대 갯수 제한 설정










■ Apache 및 PHP 재시작




모든 설정 변경이 완료되었으면


아파치를 재시작 한다.


간혹 PHP7 버전 이상 및 설정에 따라


먼저 PHP를 재시작 이후 아파치를 재시작 해야 한다.







Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[PHP] DB접속 테스트하기[PHP] DB접속 테스트하기

Posted at 2019. 7. 30. 17:00 | Posted in PHP/PHP Setting




참고 : https://blog.naver.com/diceworld/220292090236




■ PHP  데이터 베이스 접속 테스트




# 소스코드

<?php


error_reporting(E_ALL);

ini_set("display_errors", 1);

date_default_timezone_set('Asia/Seoul');


$conn = mysqli_connect( "접속IP주소", "아이디", "비밀번호", "데이터베이스명", "포트" );


if( empty( $conn ) == true ) {


      echo ( "#############################################################################" );

              echo ( "</br> default DBMS 접속 호스트 정보가 정확하지 않습니다. </br>\n\n" );

          exit ( "#############################################################################" );


} else {


      echo ( "#############################################################################" );

          echo ( "</br> default DBMS 접속에 성공하였습니다. </br>\n\n" );

          echo ( "-----------------------------------------------------------------------------" );

          echo ( "<pre>" );

          print_r ( $conn );

          echo ( "</pre>" );

          exit ( "#############################################################################" );


}

mysqli_close( $conn );

?>





# 출력결과









  1. call to undefined function mysqli_connect() 에러가 납니다...

    php설치하기 글 보고 php를 설치했는데
    ext에 php_mysqli.dll 파일이 있는데도 에러가 나서 주석도 빼보고
    새로 mysqli.dll 파일 설치해서 경로도 넣어봤습니다.
    근데도 똑같이 저렇게 에러가 나네요ㅠㅠ
    저도 DB연결하고싶어요ㅠㅠ
    • 2020.05.21 17:05 신고 [Edit/Del]
      안녕하세요, 많이 답답하시겠네요.
      일단 phpinfo(); 로 현재 정보를 확인해 보시겠어요
      mysqli가 잘 설정되어 있는지, php.ini의 경로는 잘 잡혀 있는지
  2. 안녕하세요!!!!

    phpinfo()로 확인하면 php.ini 파일 경로가 원래는 none이었는데 제가 window로 옮겼더니
    Loaded Configuration File 에는 C:\WINDOWS\php.ini 라고 나와있습니다!
    mysqli 는
    MYSQLi 라고 나오고 Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendeldlfjgrp 이렇게 나와있는데 잘 성정되어 있는건가요?
    • 2020.05.21 22:56 신고 [Edit/Del]
      http://magic.wickedmiso.com/56
      제 포스팅 내용대로 php를 설치하신 걸까요?
      (일단 php.ini가 none이 었다라는것 부터가 지금 의심스럽습니다.)

      MySQL or MariaDB를 설치 하셨다면 일단 해당 코드가 아닌 DB툴로 접속은 잘 되시는지요?
  3. 궁금합니다.
    감사합니다. 정말 도움이 컸어요

    설치는 쉬운데 이게 정확하게 된건지 확인하는 절차가 너무 궁금했어요...

    덕분에 알게 되었습니다.

    감사합니다.

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[PHP] Windows 환경에서 Apache 및 PHP 설치하기[PHP] Windows 환경에서 Apache 및 PHP 설치하기

Posted at 2018. 8. 18. 17:30 | Posted in PHP/PHP Setting




■ 윈도우 환경에서 아파치 및 php 설치 및 세팅하는 방법




01. http://www.apachelounge.com/download/ Apache를 다운받는다.

    설치할 윈도우 환경에 맞게 64bit인지 32bit인지 확인하고 맞는 버전을 다운받도록 한다.




02. 다운받은 httpd-버전.zip 파일을 열고 그중에 Apache24 폴더만 따로 아파치를 설치할 폴더로 복사한다.

 ① httpd-버전.zip을 압축 해제 프로그램을 통해 연다.

 ② 압축 해제 프로그램이 실행되면 압축 파일 목록 중에 Apache24가 있는것을 확인 할 수 있다.

 ③ Apache24 폴더를 압축을 해제할 경로에 생성한다.





03. 다음으로는 PHP를 다운받는다.

    https://windows.php.net/download/ 사이트에 접속하여 PHP를 다운받으면 된다.

    이때 Thed Safe 버전을 받도록 한다.

 ※ Non Thread Safe 버전을 받게되면 진행 과정중 필요한 php7apache2_4.dll 파일이 존재하지 않는다.




04. 다운받은 php-버전정보.zip 파일의 압축을 해제한 이 후 압축 해제한 폴더명을 php로 수정한다.





05. 이제 php 폴더에서 php.ini-development 파일을 찾아본다.

     찾아낸 이후에 이 파일을 복사본을 생성하고 그 복사본의 파일명과 확장자를 php.ini로 변경한다.






06. 텍스트 편집기를 통해 php.ini를 열고 이제 내용을 수정하도록 한다.





07. short_open_tag를 아래와 같이 on으로 변경한다.

short_open_tag가 on이 되면 위 그림과 같이 <?php ?>가 아닌 <? ?>태그만 선언을 해주어도

그 안에서 php기능을 사용할 수 있다.





08. 다음으로 doc_root 파일에 경로를 추가하도록 하자.

    압축을 해제한 Apache24 폴더의 htdocs 폴더까지의 경로를 doc_root 에 경로를 삽입하면 된다.





09. 다음으로 extension_dir 속성에 위에서 압축을 해제하고 파일명을 바꾼 php 폴더의 ext폴더까지의 경로를

    extension_dir 속성에 삽입하면 된다.




10. date.timezone 속성의 주석( ; )을 해제하고 Asia/Seoul 을 입력하여 한국 시간을 사용할 수 있도록 한다.





11. error_reporting 속성을 찾고 에러 등급의 설정을 변경하도록 하자

    아래는 기존 값에서 E_ALL & ~E_NOTICE로 설정을 해 두었다.

    이렇게 설정하면 지정한 변수의 값이 NULL인 경우에 발생하는 Undefined index 에러를 사전에 방지할 수 있다.





12. php.ini 파일의 설정이 끝나면 php가 잘 실행되는지 여부와 함께 php를 환경변수에 등록하도록 하자.

    먼저 제어판에 들어가서 시스템 속성으로 찾고 시스템을 실행 시킨다.





14. 시스템 창이 팝업이 되면 좌측의 고급 시스템 설정을 클릭한다.





15. 시스템 속성 창이 뜨면 아래 순서대로 작업을 진행한다.

 ① 상단 탭 메뉴에서 고급을 클릭한다.

 ② 아래 환경 변수 버튼을 클릭한다.





12. 환경 변수를 아래와 같은 순서대로 변경하도록 하자.

 ① Path 변수를 찾고 선택한다.

 ② 편집버튼을 클릭하여 Path 값을 수정한다.





13. php의 압축을 해제한 곳의 경로를 path 변수에 등록한다.

 ① C:\설치경로\Apache24\php; 경로까지의 값을 등록한다.

 ② 확인 버튼을 클릭하여 변경된 사항을 저장한다.




14. 확인 버튼을 눌러 변경된 사항을 한번 더 저장한다.




15. 마지막으로 돌아온 시스템 속성창에서 확인 버튼을 누르고 닫아준다.





16. 이제 윈도우 + R 키를 입력하여 실행 팝업창을 띄운다.

 ① cmd 라고 입력하여 윈도우 터미널을 실행시킨다.

 ② php -v라고 입력하여 php버전





17. 이제 php -v라고 입력하면 php정보가 터미널 창에 출력되는 것을 확인 할 수 있다.

    이것으로 일단 php 설치는 일단락 되었다.





18. 다음으로 수정할 파일은 Apache24폴더의 conf 폴더 안에 있는 httpd.conf 파일이다.

    아파치 설치에 가장 중요한 부분이니 신경쓰도록 하자.




19. 제일먼저 Define SRVROOT 속성을 찾고 실행할 아파치(Apache24)의 경로를 삽입한다.






20. LoadModule이 몰려있는 부분을 찾고 그 최상단에 아래와같이 php7apache2_4.dll의 설치 경로를 지정하는데 작성 양식은 아래와 같다.


    LoadModule php7_module "c:/Developer/Apache24/php7apache2_4.dll






21. ServerAdmin 속성을 찾고 자신이 사용하는 메일 주소를 도메인 까지 작성하여 기입한다.





22. ServerName을 찾고 기존 www.example.com:80 이라고 적힌부분을 localhost:80 으로 변경한다.





23. DirectoryIndex를 찾고 index.php 속성을 추가해 준다.





24. AddType application이 적혀있는 부분을 찾고 그 최 하단에

    AddType application/x-httpd-php .php .html .inc 라고 작성한다.




25. 이제 c:\Windows\System32 경로로 이동하여 cmd.exe 파일을 찾고 관리자 권한으로 실행시킨다.

 ① cmd.exe 파일을 찾고 마우스 오린쪽 버튼을 클릭한다.

 ② 화면에 나오는 메뉴중 상단의 관리자 권한으로 실행을 선택하여 터미널 창을 실행 시킨다.




26. 관리자 권한으로 터미널이 실행이 되면 아래 순서와 같이 입력한자.

 ① C:\> cd \

 ② C:\> cd Developer\Apache24\bin

 ③ C:\> httpd.exe -k install





27. 아파치 실행을 위한 방화벽 사용여부를 묻는다 엑세스 허용 버튼을 클릭하자.





28. 다시 터미널 창으로 돌아와서 httpd.exe -k start 를 입력하고 실행한다.





29. 이제 제어판의 관리 도구에 들어가 보자.





30. 시스템을 선택 실행한다.






31. 서비스 창이 띄면 아래 이미지와 같이 Apache24가 실행중인 것을 확인 할 수 있다.






32. 아파치가 실행중인 것을 확인 했으니 이제 php샘플 파일을 하나 실행해 보도록 하자.

    Apache24경로의 htdocs 폴더로 이동하도록 한다.





33. phpinfo.php 라는 파일을 생성한다.






34. phpinfo.php 파일의 코드는 아래와 같다.

 phpinfo.php

<?php

      phpinfo();

?>





35. 이제 웹브라우저의 주소창에 localhost/phpinfo.php 라고 입력해보면 아래와 같은 화면이 뜨는 모습을 확인 할 수 있다.






관련문서 : Amazon Linux 2 버전 - APM 세팅 하기






  1. 지나가다
    감사합니다 설명이 너무 자세하게 잘 나와있네요 따라하니 잘 되네요~^^
    • 2020.03.10 12:59 신고 [Edit/Del]
      댓글 달아주셔서 너무 감사합니다.
      조만간 강습등을 개설해볼까 할 예정인데.
      그때까지도 제 블로그가 많은 도움이 되었으면 좋겠네요 ㅋㅋ
  2. 지나가던 개발자
    매번 리눅스 설치글만보다가 이번에 윈도우에 얹혀서 쓰게됬는데 너무 감사합니다.
    • 2020.03.16 15:54 신고 [Edit/Del]
      댓글 남겨 주셔서 감사합니다.
      저도 리눅스를 잘 모르던 시절에는
      두려움 때문에 윈도우에서 시작했지만
      윈도우에서는 위와같이 설치하고나
      APM, XAMPP 등을 이용하여 설치한 경우
      테스트 및 실서버 사용에 한계가 있습니다.
      이점 꼭 기억해 주심이 좋을것 같습니다.
  3. 나그네
    너무 잘 봤습니다. 감사합니다. 덕분에 설치를 수월하게 할 수 있었습니다.
  4. 지나가다다다닫
    저도 지나가다 댓글 남겨요 충분히 어려운 과정인데 정말 쉬운 설명 감사드립니다..!!

    근데 마지막에 localhost/phpinfo.php 가 안되네요 ㅠㅠ

    다른 건 다 했는데 왜 안되는 걸까요....
    • 2020.04.27 20:02 신고 [Edit/Del]
      안녕하세요.
      phpinfo(); 가 실행이 안된다라면.
      이건 PHP가 지금 정상적으로 되고 있는것이 아닙니다.
      PHP 설정을 다시한번 확인해 보셔야 할것 같아요.
  5. 안형모
    와. 설명 정말 잘해놓으셨네요. 저는 윈도우로 사용하구요
    얼마전까지 WAMP 로 사용하다가 서버 사용에 한계가 있어서
    직접 하게 되었습니다. 사실 이전에도 한번 설치한적이 있었는데
    오류가 떴거든요.. 이번에 정말 쉽게 잘 배워서 설치하고 갑니다 ㅠㅠ
    (즐겨찾기 추가했어요 !!)
  6. 셀랏
    다른분이쓰던 노트북을 양도받아서 php와 apache가 깔려있어 혼돈이 왔었는데 상세하게 설명되어있어서 지우고 그럴필요없이 해결하였네요
    너무 감사합니다. ㅠㅠㅠ!!
  7. 지나가던PHP초보
    apache24는 잘돌아가는데, mysqli명령어가 안된다 싶어서 봤더니 php.ini의 옵션을 안불러오고있었네요 ㄷㄷ
    conf의 httpd.conf 파일을 수정해서 PHPIniDir "설치경로\Apache24/PHP" 추가하니 정상작동됩니다! 좋은 글 감사합니다!
  8. NONAME
    너무 완벽한 설명 감사합니다^^

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기