php 13

docker Dockerfile 이용한 ubuntu + APM + gitlab + gitlab-runner + git 설정

Dockerfile 이용하여 ubuntu 서버에 아래 패키지를 구축하려고 합니다. ubuntu 20.04 LTS apache2 (내부 port:8081) mysql8.0 (내부 port:3306) php7.4 gitlab (내부 port:80) gitlab-runner git . docker 우분투 image 설치 docker pull ubuntu:20.04 . container 생성 및 실행 # 위 Dockerfile 사용안하고 사용 #docker run -it -d -p 80:80 -p 9181:8081 --name ubuntu_in_apm ubuntu_cofor # 이걸로 사용 docker run -it -d -p 80:80 -p 9181:8081 --privileged=true --name ubu..

인프라 2023.02.10

docker-compose apache2 + php + mysql8 (APM)서버 구축

docker-compose 로 APM 서버 구축 - Apache2, Mysql 프로젝트 경로 설정 mkdir -p ./Project/{apache2,html,mysql} - docker image pull docker pull httpd docker pull php:7.4-fpm docker pull mysql:8.0 - 이미지 확인 docker images - docker-compose.yml 생성 version: "3" services: apache2: build: ./Project/apache2 restart: always container_name: apache2 links: - mysql ports: - "9080:80" - "9022:22" volumes: - ./Project/apache2/..

인프라 2023.02.08

Centos8 httpd2.4 + php7.4 html 확장자 추가

html 에서 php 사용할수 있도록 추가해 봅시다. FilesMatch 부분에 html 을 추가합시다. 2군데 해줘야 합니다. $vi /etc/httpd/conf.d/php.conf # # Cause the PHP interpreter to handle files with a .php extension. # SetHandler application/x-httpd-php ... ... # Enable http authorization headers SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost" php-fpm 에 .html 확장자를 추..

인프라 2021.11.08

docker 아파치+php+mysql 웹문서 경로 동기화

# 우분투 설치 Ubuntu 20.04 LTS 이용한 아파치 php mysql 설치기 이제 부터 보게 될 예제는 도커를 사용하여 한개의 이미지(Ubuntu 20.04) 와 세개의 컨테이너를 연습하게 될 것입니다. 1. 기본 우분투 컨테이너 만들어 apache / php 설치 $ docker pull ubuntu:20.04 # 컨테이너 실행 외부 포트 9000 도커 우분투 아파치 접속 80 $ docker run -i -t -p 9000:80 ubuntu:20.04 /bin/bash # 아파치 설치 $ apt-get update $ apt-get install apache2 -y # 아파치 시작 $ service apache2 start # 아파치 확인 http://ipip:9000/ # php 설치 $ ..

인프라 2021.11.04

[디자인패턴] php 로 알아보는 Builder pattern

"빌더 패턴(Builder pattern)이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴이다." 라고 하는데 무슨말인지 잘 모르겠다. 쉽게 설명해볼께요. php를 이용한 크롤링(파싱) 을 거의 15년 이상 개발하는 동안 코드를 좀 더 편하게 / 좀 더 모듈로 만들면 어떨까 라는 생각이 시작점입니다. 예를 들어볼께요 파싱할때에 꼭 필요한 부분이 아래 3개 입니다. 추가적으로 로그인 해야 하는 사이트는 쿠키 / 헤더 가 포함됩니다. 그렇다면 아래와 같은 정보를 생성자에게 넘겨주려고하면 인자가 많아집니다. - url / agent / referer 보통 아래와 같이 코드를 생성합니다.

프로그래밍/Php 2020.04.24

[디자인패턴] php 로 알아보는 Builder pattern (주식 정보 가져오기, 주식 정보 API만들기- kospi, kosdaq, krx)

디자인 패턴중 Builder pattern 을 알아보도록 합시다. Builder pattern 이 무엇이지는 여기 를 참고하시면 많은 도움이 되실겁니다. 아래 소스는 제가 사용하는 실제 주식정보(kospi, kosdaq, krx) 가져오는 API 일부 소스입니다. 현재는 종합주가지수 (kospi, kosdaq, krx) 정보만 가져오지만 개별 주식 종목 크롤링 하는것도 가능합니다. 기회가 되면 개별 주식 종목 API 알려드리겠습니다. Builder.php

프로그래밍/Php 2020.04.23

php 정규식 정상적인 패턴인지 체크

php 정규식 정상적인 패턴인지 체크 정규식 입력후 실제 사용중에 잘못된 정규식으로 에러를 뿜어내는 경우가 많습니다.이럴때 DB 저장하기 전에 아래와 같이 정상적인 정규식인지 체크하면 좋을것 같습니다. if( ! $this->isRegularExpression($bind['rp_regexr']) ) { $error = []; $error['code'] = 'error'; $error['msg'] = '정규식 잘못되었습니다. 확인해주세요.'; echo json_encode($error); exit; }private function isRegularExpression($regExr) { return @preg_match("!".$regExr."!is", "") !== FALSE; }

프로그래밍/Php 2018.07.19

[디자인패턴] 객체지향 php Observer Pattern (옵저버 패턴)

[디자인패턴] 객체지향 php Observer Pattern (옵저버 패턴) 디자인 패턴 자체는 소프트웨어 설계에서 일반적으로 발생하는 문제에 대한 반복 가능한 솔루션이며,그 중 하나는 Observer Pattern이며 일반적으로 한 객체의 변경이 하나 또는 여러 객체의 변경을 필요로하는 두 가지 측면의 추상화에 적용됩니다.Laravel 과 같은 최신 PHP 프레임 워크는 Observer Pattern 을 포함한 여러 디자인 패턴을 사용합니다.원칙을 알고 있어야하며 왜 이러한 패턴을 사용하여 디자인 패턴으로 가장 잘 해결할 수있는 비슷한 문제에 직면했을 때효과적으로 적용 할 수 있습니다. Observer Pattern 은 하나의 객체가 상태를 변경하면 모든 종속 객체가 자동으로 통지되고 업데이트되도록 객..

소행성이야기 2018.07.13