일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- mysql
- 윈도우10
- iptime
- 자바스크립트
- proxmox
- 시놀로지
- 소비전력
- 아파치
- 킹북이초월
- Linux
- jQuery
- nginx
- php
- SKT
- 복현오거리
- 램가스초월
- 리눅스
- Apache
- Rocky
- KB국민카드
- 알리익스프레스
- 스톤에이지
- 티스토리
- PHP-FPM
- OpenWrt
- 가상서버호스팅
- 보르비스초월
- centos
- 알뜰폰
- KB증권
- Today
- Total
목록php (20)
맛집 여행 캠핑 일상 생활
Synology DSM 6.x 버전과 DSM 7.x 버전이 설정 경로가 다르군요~WebStation 에서 가상호스트를 추가해서 테스트 하는데 index.html 에 있는 php 코드가 실행이 안되네요~apache, nginx 둘다 안됩니다.디폴트로 .html 도 작동하도록 해주면 좋겠지만 설정할때 마다 추가 설정을 해줘야 하네요~backend apache2.4 인 경우# find / -name httpd-vhost.conf/usr/local/etc/apache24/sites-enabled/httpd-vhost.conffind 명령어로 httpd-vhost.conf 파일을 찾습니다.# cat /usr/local/etc/apache24/sites-enabled/httpd-vhost.confInclude co..
vnStat PHP Frontend v1.5.2 버전과 vnstat 데몬 버전 v2.9 가 호환이 안되서 데이터를 가져오지 못하는군요~1. Rocky Linux 9.x 버전에 설치된 vnstat# vnstat -v vnStat 2.9 by Teemu Toivola # vnstat --dumpdb Unknown parameter "--dumpdb". Use --help for help.2. CentOS 7.x 버전에 설치된 vnstat# vnstat -v vnStat 1.15 by Teemu Toivola # vnstat --dumpdb version;3 active;1......전에는 git clone https://github.com/bjd/vnstat-php-frontend.gitvnStat PHP..
CentOS 9.x 버전에서 포트방식이 아닌 소켓방식으로 설정된 값으로 CentOS 7.x 버전에 똑같이 적용했더니 아래와 같이 에러가 뜨면서 실행이 안되는군요~[root@example conf.d]# systemctl status php82-php-fpm● php82-php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php82-php-fpm.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Mon 2024-07-01 10:47:03 KST; 19s ago Process: 15800 Ex..
테스트 환경은 오라클 클라우드 VM.Standard.A1.Flex CPU 는 Ampere® Altra™ 인데 ARM 서버입니다.4코어 24GB 환경에서 테스트했습니다.OS는 Rocky Linux 9.4벤치마크 테스트 소스코드는 아래에서 다운로드 받았습니다.# git clone https://github.com/rusoft/php-simple-benchmark-script.git# wget https://github.com/rusoft/php-simple-benchmark-script/archive/refs/heads/master.zipPHP Multiple PHP-FPM 으로 설치된 각 버전별 디렉토리에 복사해서 테스트하였습니다. # PHP v7.4-------------------------------..
기존 php 5.x 버전에서 7.4 버전으로 사용하려고 PHP Multiple 환경으로 설치하였습니다. phpMyAdmin 버전은 4.4.15.10 입니다. 아파치 설정하고 로그인 시도를 하니 로그인이 안되는 문제가 있습니다. # chmod 777 /var/opt/remi/php74/lib/php/session 위 디렉토리 퍼미션을 변경해 주니 잘됩니다. 에러 로그도 없어서 한참 동안 삽질을 했네요~
최근에 오라클 클라우드 VM에 PHP 여러버전을 설치해보니 예전에 먹히는게 안먹히더군요~ 그래서 다시 정리해보았습니다. 테스트 환경은 CentOS 7.9 버전입니다. yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum -y install yum-utils yum -y install mod_ruid2 yum -y install php php-bcmath php-cli php-common php-fpm php-gd php-json php-mbstring php-mysqlnd ..
너무 많은 변수를 배열로 넘기니 일정량까지만 저장이 되고 그 뒤로는 잘려서 저장이 안되는 경우가 있습니다. 이런 경우 echo ini_get('max_input_vars'); 로 출력 해보시고 1000 으로 나오면 그 값을 늘여주면 됩니다. ini_set 으로 설정이 안되서 php.ini 파일의 값을 수정해줍니다. #vi /etc/php.ini ; How many GET/POST/COOKIE input variables may be accepted ; max_input_vars = 1000 max_input_vars = 2000 이제 아파치를 재시작하고 테스트 해보세요~
PHP multiple 버전으로 SetHandler "proxy:fcgi://127.0.0.1:9000/" 을 설정했더니 아래와 같은 에러가 나오네요~ 세션 저장 경로의 퍼미션 문제 같아보입니다. [Thu Jul 30 13:28:10.223491 2020] [proxy_fcgi:error] [pid 2067] [client 192.168.1.12:65452] AH01071: Got error 'PHP message: PHP Warning: session_start(): open(/var/opt/remi/php73/lib/php/session/sess_uhpnj3kpotvu7hvbt7hbc6jrgh, O_RDWR) failed: Permission denied (13) in /home/example/www..
foreach 함수로 배열을 사용할때 변수값에 배열이 없으면 나는 에러군요~ AH01071: Got error 'PHP message: PHP Warning: Invalid argument supplied for foreach() in /volume1/web/www/index.html on line 51 PHP message: PHP Stack trace: PHP message: PHP 1. {main}() AH01276: Cannot serve directory /volume1/web/www/: No matching DirectoryIndex (index.html,index.htm,index.cgi,index.php,index.php5) found, and server-generated director..
PHP 5.4 버전에서 empty 함수로 인한 에러가 발생한다면 아래 처럼 empty 함수를 구현해주는 방법이 있습니다. empty 함수를 is_empty 로 치환 하면 됩니다. function is_empty( $str ) { if($str == "") { return true; } else if($str == 0) { return true; } else if($str == "0") { return true; } else if($str == NULL) { return true; } else if($str == false) { return true; } else if(is_array($str) && count($str)==0) { return true; } else { return false; } } 위..
같은 이름의 파일명으로 다른 이미지를 업로드 했는데 이전 이미지로 보여지는 경우가 많습니다. 브라우저의 캐시 기능 때문입니다. 다른 파일명으로 저장을 하면 되겠지만 프로그래밍을 다시 하기 귀찮은 경우 간단하게 파일의 수정시간을 체크해서 뒤에다 숫자로 스트링을 붙여주면 됩니다.
[PHP] 날짜형식 정규식 체크 php 에서 날짜를 받아서 mysql 에 넣을때 잘못된 데이트형식으로 입력하면 '0000-00-00' 으로 입력됩니다.날짜를 체크하는 함수를 한번 만들어 봤습니다.function date_check($str) { $str = str_replace('.', '', $str); $str = str_replace('-', '', $str); $YY = substr(date('Y'),0,2); if(strlen($str)==6) { $str = $YY.$str; } if ( preg_match('/^(\d{4})-?(\d{2})-?(\d{2})$/',$str,$match) && checkdate($match[2],$match[3],$match[1]) ) { return true;..
PHP UTF-8 한글문자열 SUBSTR UTF-8 한글로 된 문자열에서 부분글자를 가져오려면 3바이트씩 가져와야 합니다. 자바스크립트에서는var str = "가나다라마바사"; var sub_str = str.substr(0, 3); // 가나다 PHP에서는$str = "가나다라마바사";$sub_str = substr( $str, 0, 9 ); // 가나다 $sub_str = substr( $str, 3, 6 ); // 나다 한번씩 착각할 때가 있어서 글로 남깁니다.
PHP QUERY_STRING 파싱함수 parse_str URL 주소에서 ? 다음에 오는 문자열은 $_SERVER['QUERY_STRING'] 으로 받아오면 됩니다.그리고 Get 파라메터를 파싱해주는 함수가 있어서 편리하게 파싱해서 사용할 수가 있습니다. 예1)$query = "param1=v1¶m2=v2";parse_str( $query );echo $param1; // v1echo $param2; // v2 예2)$query = "param1=v1¶m2=v2";parse_str( $query, $params );echo $params['param1']; // v1echo $params['param2']; // v2 편한 방법으로 사용하면 됩니다.
PHP Notice: Undefined offset 에러로그 아파치 로그에 보면 위와 같은 에러가 쌓이는 경우가 많습니다.PHP 배열 변수에 정의되지 않은 값을 호출해서 발생하는 문제인데 수많은 부분을 찾아서 고치긴 쉽지 않을 것입니다.고치는게 좋긴하겠지만 차라리 /etc/php.ini 에서 error_reporting 설정값을 바꾸는 것도 하나의 방법일 수도 있습니다. error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE& ~ E_NOTICE 를 추가하고 아파치를 재시작하면 됩니다. 그리고 PHP Warning: Division by zero in 이런 워닝도 많이 있죠~0 으로 나누어서 로그가 발생하는 것인데 이런 경우는 PHP 소스에서 수..
PHP mysqldump 받아서 다운로드 하는 방법 직접 덤프 받아서 다운로드 할 수도 있겠지만 브라우저에서 바로 덤프 받아서 다운로드 하는 방법입니다.아래 예제는 리눅스 유저계정의 DB를 통으로 백업 받는 예제입니다.데이터가 많은 경우에는 실행시간을 연장시켜주는 조치가 필요할 것 같네요.set_time_limit(0);
PHP MySQL 초성으로 검색하기 nick 컬럼에서 첫자리 문자를 초성으로 비교해서 찾아내는 쿼리이다. 사람 이름이라면 상관없는 이야기지만 일반 문자라면 쌍자음이 있는 ㄱ ㄷ ㅂ ㅅ 는 끝자리에 쌍자음을 넣어주어야 제대로 된 결과를 얻을 수 있다. $searchsql = "select * from tablename where ";if($f_word == 'ㄱ')$searchsql .= " substr(nick,1,1) between '가' and '낗'";else if($f_word == 'ㄴ')$searchsql .= " substr(nick,1,1) between '나' and '닣'";else if($f_word == 'ㄷ')$searchsql .= " substr(nick,1,1) between..
숫자를 1000단위로 콤마를 표기해주는 함수이다. 주로 화폐단위 표기시 많이 사용된다. 예제1$price = 100500;echo number_format($price);결과 : 100,500 예제2$price = "-1000";echo number_format($price);결과 : -1000echo number_format($price/1);결과 : -1,000예제이긴 하지만 DB에서 처리된 결과를 $price 변수에 대입한 경우인데 음수의 숫자가 의도하지 않게 문자열로 된 경우에 위와 같은 결과가 발생한다.콤마 처리가 전혀 되지 않고 출력된다. 이런 경우엔 캐스팅해서 처리해도 되지만 /1 로 처리해서 넘기면 간단하다. 예제3$price = 1500.2;echo number_format($price)..
PHP 에서 사용할 mysql 기본적인 함수이다. open 시에 전역변수를 체크해서 이미 열린 세션이 있다면 다시 open할 필요가 없다.너무 잦은 open close는 서버의 부하를 줄 뿐만 아니라 엄청난 connection 이 발생할 것이다.그리고 close 는 위에 소스를 보면 알겠지만 주석처리를 해놓았다. 이유는 php에서 알아서 close 해주니까 일단 한번 open한 뒤에는 sql 쿼리를 한번이 되었든 여러번이 되었든지 수행할 만큼 한 다음에 나중에 자동으로 close가 되도록 한다는 의도이다. 최대한 커넥션을 줄여서 부하를 줄여보자~~
HTML5 Server-Sent Events 서버 푸쉬 익스플로러는 미지원이므로 AJAX를 이용하는게 좋을 것 같음 ▶ SSE 와 AJAX 차이점 SSE : 브라우저에서 한 번만 호출하면 서버단에서 루프를 돌면서 데이터를 체크하고 전달할 데이터가 있으면클라이언트(브라우저)로 값을 전달해준다.서버 사이드에서 WHILE 문으로 무한 체크할 수도 있으며,서버에서 처리가 끝나면 자동으로 다시 호출되니깐 이런 방법을 사용하여도 된다. AJAX : 브라우저에서 일정 간격으로 매번 서버에 데이터를 요청하는 폴링(Polling)방식이므로 매번 패킷이 발생하게 된다. 자바스크립트의 setTimeout 함수를 이용할 수도 있지만 브라우저가 SSE를 지원한다면 사용해 보자. 1. HTML완전한 html 코드가 아니라 자바스..