Back-End/PHP

[PHP] 1장 PHP 범용 프로그래밍언어의 탄생

Tinkies 2025. 2. 10. 06:10

https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcSJHh2B7ZwArgs0gokiqIINk6T8_OInt7n8TFfTRaft9nIWiMr06kH_NibNA9BFncFkD4gaqdgTWzq9m3MwBqBtjQ

 

 

1995년 6월 8일 범용 프로그래밍 언어인 PHP(Hypertext Prep rocessor)가 개발되었습니다.

 

PHP는 서버사이드 동적 웹페이지(server-side dynamic web page)를 만들기 위해 설계된 프로그래밍 언어입니다. PHP 없던 시절에는 초창기 HTML식의 파일을 수정해야만 페이지가 업데이트 동적인 웹 페이지만을 구성했어야 했습니다. 

 

PHP는 1994년 라스무스 러돌프(Rasmus Lerdorf)의 개인 홈페이지를 관리하기 위해 Perl 스크립트를 대체할 간단한 도구로 PHP를 채택하였고, PHP 언어로 HTML에 직접 삽입할 수 있는 간단한 스크립트 언어로 개발하면서 웹 개발을 더 쉽고 빠르게 만들었습니다.

https://miro.medium.com/v2/resize:fit:1200/1*oKjdsctpXm1O6XnH-FDHSA.jpeg

 

지금까지 수많은 프로그래밍언어들와 OS는 PHP기반으로 작성된 프로그램으로 국내에서 유명한 프로그램을 말해보자면 그누보드, XpressEngine, 미디어위키, 워드프레스 등은 PHP를 기반으로 개발되었습니다. 

PHP의 장점

PHP는 C, Java, Perl 등 언어와 유사한 문법을 가지며, 다른 프로그래밍 언어를 마스터한 개발자들이 쉽게 이해하고 배울 수 있는 언어로 현재까지 공식문서와 수많은 오픈소스, 커뮤니티가 활성화 되어 초보자가 입문하기에 아주 좋은 프로그래밍 언어입니다. 

 

 

php는 Zend engine(젠드 엔진)을 기반으로 빠른 실행 속도를 제공합니다. 메모리 사용율을 효과적으로 관리해, 대규모 어플리케이션 개발에도 안성성이 높습니다. 또한 MySQL, PostgreeSQL, SQLite, Oracle 등 다양한 데이터베이스와 쉽게 연동이 가능합니다.

 

PHP의 풍부한 내장함수

PHP는 문자열 처리, 배열 조작, 파일 처리, 날짜 및 시간 관리 등 다양한 작업을 위한 내장함수가 존재합니다. 또 필요한 기능이 내장되어 있지 않을때, PECL을 통한 확장 기능을 쉽게 추가할 수 있습니다.

 

 

강력한 프레임워크

https://www.clariontech.com/hubfs/Top%20PHP%20Frameworks.png

 

PHP는 Laravel, Symfony, CodeEngniter, Zend Framework 등 강력한 PHP 프레임워크가 있어, 대규모 어플리케이션 개발에 적합하며 대부분 PHP 프레임워크는 MVC(Model-View-Controller) 패턴을 지원해, 코드의 구조화 또는 유지보수에 유용합니다.

 

확장성

  • 모듈식 아키텍쳐: PHP는 모듈식 아키텍처를 가지고 있어, 필요한 기능만 추가해 사용할 수 있습니다.
  • 마이크로서비스 지원: PHP는 마이크로서비스 아키텍처에도 적합해, RESTful API를 쉽게 개발할 수 있습니다.

 

PHP 세팅하는 방법

 

WIndows 기준

 

PHP: Downloads

PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.

www.php.net

 

PHP 공식 웹사이트에서 Windows용 PHP를 다운 받아줍니다. 파일을 받아주면 압축파일을 원하는 디렉토리에 풀어주고 제어판 > 시스템 및 보안 > 시스템 > 고급 시스템 설정 > 환경 변수 > 시스템 변수에서 Path를 선택하고 편집 > 새로 만들기 > PHP 디렉토리 추가해줍니다.

 

Choco를 이용한 Windows에서 php 세팅

 

Choco를 사용해 PHP-FPM을 설치합니다.

choco install php

 

 

다시 choco를 이용해 nginx를 설치해주고 nginx.conf 파일을 열어 server 블록을 찾아 설정해줍니다.

choco install nginx
   server {
        listen       80;
        server_name  localhost;

        root   C:/Users/wjdgh/Desktop/bloging-tistory/back-End/php/php-bloging;  # 프로젝트 디렉토리로 변경
        index  index.php index.html index.htm;

        location / {
            try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
            include       fastcgi_params;
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location ~ /\.ht {
            deny  all;
        }
    }

 

PHP-FPM을 실행해 Nginx를 연동합니다. cmd를 키고 php 설치 폴더로가 PHP-FPM을 실행합니다.

cd C:\Program Files\php
php-cgi.exe -b 127.0.0.1:9000

 

 

Nginx 를 실행해줍니다.

cd C:\nginx
start nginx

 

이제 설정한 디렉토리에 index.php를 열고 HelloWorld를 표시하는 메시지와 PHP 정보가 표시되는지 확인해보세요

<?php
echo "Hello, World!";
phpinfo();
?>

 

Nginx 서비스로 등록하기

 

 

NSSM - the Non-Sucking Service Manager

NSSM - the Non-Sucking Service Manager nssm is a service helper which doesn't suck. srvany and other service helper programs suck because they don't handle failure of the application running as a service. If you use such a program you may see a service lis

nssm.cc

 

NSSM을 다운받아줍니다.

nssm install nginx

 

nssm을 사용해 Nginx를 서비스로 등록합니다. Nssm 창에서 Nginx 실행파일 경로로 지정후 아래 코드로 시작합니다.

nssm start nginx

 

 

 

 

1.mac OS 기준

  • Homebrew 설치: 터미널에서 다음 명령어로 Homebrew 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • PHP 설치: 터미널에서 다음 명령어로 PHP를 설치
brew install php
  • Apache 설치: PHP 웹 서버인 아파치 웹 서버가 설치되어있지 않다면 다음 명령어로 설치해줍니다.
brew install httpd
  • PHP 모듈 활성화: Apache 에서 PHP 모듈을 활성화해줍니다.
sudo nano /usr/local/etc/httpd/httpd.conf
  • 다음 줄을 찾아 주석을 제거해줍니다.
LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so

 

  • Apache를 재시작합니다.
sudo brew services restart httpd
  • Nginx 설치: Nginx가 설치되어 있지 않다면 설치합니다.
brew install nginx
  • PHP-FPM: PHP-FPM를 설치해줍니다.
brew install php
brew services start php
  • Nginx 설정: Nginx 설정 파일을 편집해 PHP-FRM을 사용하도록 편집합니다.
sudo nano /etc/nginx/sites-available/default
server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}
sudo systemctl restart nginx

 

 

2.Linux (Ubuntu) 기준

  • PHP: 설치: 터미널에서 다음 명령어로 PHP 설치
sudo apt update
sudo apt install php
  • Apache 설치: PHP 웹 서버인 아파치 웹 서버 설치 
sudo apt install apache2
  • PHP 모듈 활성화: Apache 에서 PHP 모듈을 활성화
sudo apt install libapache2-mod-php
sudo a2enmod php
sudo systemctl restart apache2
  • Nginx 설치: Nginx 설치되어 있지 않다면 설치합니다.
sudo apt install nginx
  • PHP-FPM: PHP-FPM를 설치해줍니다.
sudo apt install php-fpm
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

 

  • Nginx 설정: Nginx 설정 파일을 편집해 PHP-FRM을 사용하도록 편집합니다.
sudo nano /etc/nginx/sites-available/default
server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}
sudo systemctl restart nginx

 

이제 http://localhost/info.php를 열어 PHP 정보 페이지가 표시되는지 확인해봅니다.

 

 

LIST