본문 바로가기

개발

(21)
Centos 7 에서 browsershot 사용하기 browsershot 은 html 을 pdf 로 저장하기 위한 라이브러리이다. 그런데 왜 라라벨에서 browsershot 사용하기가 아니라 centos 에서 사용하기라고 제목을 붙였냐면 mac 에서는 매우 간단한 설정만 거치면 사용이 가능한 것에 비해 리눅스에서는 뭐가 안되도 참 잘 안됐다. ㅠ_ㅠ 그래서 다음에 또 리눅스에서 laravel + browsershot 을 사용할 일이 생길까봐 기록해 둔다. 파일을 write 하는데 내가 설정한 경로에 안쓰여질때 Browsershot은 렌더링된 html 내용을 파일로 쓰고 pdf 로 변환하는 방식으로 구현되어 있었다. 그런데 html 을 파일로 쓸때부터 문제가 생겼다. Browsershot.php 파일 내에서 file_put_contents 를 하는데 /tm..
session_start() 함수 호출해도 쿠키에 PHPSESSID 저장 안되는 문제 로컬 환경에서 프레임워크를 사용하지 않는 php 개발을 하게 되었다. session_start() 함수를 호출하면 header 에 아래와 같은 정보가 생성된다. Set-Cookie: PHPSESSID=mvegl320ck40kktumvpebptki6; path=/ 크롬 브라우저에서 이런 헤더 응답받았으면 쿠키값에 저장을 해야 하는데 PHPSESSID 가 저장이 안되는 문제가 생겼다. 크롬의 정책때문이라고 하는데 아래와 같이 변경해줘야 한다. $res = @session_start($options); $headers = headers_list(); foreach ($headers as $header) { if (!preg_match('~^Set-Cookie: PHPSESSID=~', $header)) con..
OSX(MacBook) 에 php5.3 설치하기 homebrew 로 설치하려고 했더니 목록에 없어서 아래의 방법으로 설치 curl -s http://php-osx.liip.ch/install.sh | bash -s 5.3 /usr/local 에 아래와 같이 폴더가 생성된다. homebrew 로 관리해야 하기 때문에 /usr/local/Cellar 폴더에 아래와 같이 [php@5.3] 폴더를 생성해주고 php5-5.3.29-20141019-211753 폴더를 해당 폴더로 옮겨준다. 이제 아파치 설정을 변경해줘야 한다. vim /usr/local/etc/httpd/httpd.conf LoadModule php5_module /usr/local/Cellar/php@5.3/5.3.29/libphp5.so #LoadModule php7_module /usr/l..
웹에서 애플로그인 (Sign In with Apple) 구현을 위한 설정 하이브리드 앱(컨텐츠 영역은 웹 기반으로 제작하고 앱 마켓 등록 및 설치를 위해 네이티브 앱으로 포장된 앱)을 만들면서 웹상에서 애플로그인을 추가해야하는 과제가 생겼습니다. 구글에서 애플로그인을 검색하면 네이티브앱개발에 적합한 연동방식 위주로 서칭이 되어 자료를 남겨두고자 합니다. 그런데 네이티브앱 개발자의 뇌피셜에 따르면 애플 개발자 사이트가 자주 바뀌어서 자료를 남겨도 별로 도움이 안될거라고.. ㅠ 애플 개발자 계정을 만드는 방법은 생략할게요. (심사기간도 필요하고 어쩌고 듣긴했지만 제가 만든게 아니라서요.) 우선 웹에서 애플로그인을 구현하는 방법은 두가지가 있습니다. (네이버나 카카오 소셜로그인도 마찬가지에요) JS 를 이용하거나 Rest API를 이용하거나입니다. 저는 서버간 통신을 위해 rest..
라라벨 큐 & Database 사용하기 특정 작업을 비동기적으로 처리해야 할 일이 생겼습니다. 라라벨의 큐를 사용하기 위해서는 드라이버를 선택해야하는데 기존에 mysql 을 사용중이었기때문에 database 로 설정했습니다. 버전 laravel 9.x PHP 8.0 DB 테이블 추가 Job을 담아둘 데이터베이스 테이블을 아래와 같이 생성합니다. php artisan queue:table php artisan migrate --path=database/migrations/create_jobs_table.php 실패한 Job 에 대한 정보를 담아둘 테이블을 아래와 같이 생성합니다. php artisan queue:failed-table php artisan migrate --path=database/migrations/create_failed_j..
JAVA Spring 사이트에 Let’s Encrypt 인증서를 발급 받는 방법 운영체제: Centos 7 web server: apache + tomcat 이미 특정 도메인으로 서비스를 하고 있는 사이트가 있다. 해당 사이트는 백앤드가 java spring 으로 개발되어 있다. 임시적으로 운영할 사이트여서 무료 인증서인 Let’s Encrypt 인증서를 발급받으려고 한다. 저장소를 추가하고 설치한다. yum install epel-release yum install python-certbot-apache 인증서를 발급 받아본다. certbot --apache -d 도메인명 아래와 같은 오류가 난다. 왜냐면 Let’s Encrypt 에서 해당 도메인의 실제 소유주가 맞는지 임의의 호출을 해보기 때문이다. IMPORTANT NOTES: - The following errors were..
[오류]디스크는 남아있는데 장치에 남은 공간이 없음 오류 갑자기 우분투+PHP 로 운영중인 서비스가 제대로 동작하지 않는다는 연락을 받았다. 터미널로 접속해보니 명령어를 칠때마다 아래와같은 오류가 발생했다. tail -f la-bash: cannot create temp file for here-document: 장치에 남은 공간이 없음 디스크 사용량이 꽉찼나 싶어 아래의 명령어를 입력했다. df -h Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 795M 1020K 794M 1% /run /dev/xvda2 49G 14G 34G 29% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.9G 0 3...
withTrashed does not exist 에러 라라벨을 이용하면 db 에서 소프트 삭제(일종의 임시 삭제) 라는 기능을 이용할수 있다. 실제 db row 를 삭제하는 것이 아니라 deleted_at 이라는 컬럼에 삭제 일자를 기록하여 삭제된 것처럼 동작하게 하는 것이다. 해당 model 에서 아래와 같이 SoftDeletes trait 를 사용하고 해당 테이블에 deleted_at 컬럼을 추가 하기만 하면 된다.