LAMP(소프트웨어 번들)
LAMP (software bundle)LAMP(Linux, Apache, MySQL, PHP/Perl/Python)는 웹에서 가장 많이 사용되는 응용 프로그램의 가장 일반적인 소프트웨어 스택 중 하나를 나타내는 약자입니다.그러나 LAMP는 현재 일반적인 소프트웨어 스택 모델을 나타내며 그 구성 요소는 대부분 상호 [1]호환됩니다.
약어의 각 문자는 4개의 오픈 소스 구성 요소 중 하나를 나타냅니다.
- 운영 체제용 Linux
- Apache HTTP 서버
- 관계형 데이터베이스 관리 시스템용 MySQL
- PHP, Perl 또는 Python 프로그래밍 언어
LAMP 스택의 컴포넌트는 대부분의 Linux 배포판의 소프트웨어 저장소에 있습니다.[2]
역사
LAMP라는 약자는 독일 컴퓨터 잡지 Computertechnik 1998년 12월호에 실린 Michael Kunze가 "자유 및 오픈 소스 소프트웨어 번들이 "고가의 상업용 패키지에 대한 실현 가능한 대안이 될 수 있다"는 것을 증명한 것입니다.그 후, O'Reilly Media와 MySQL은 제휴해, 약어를 보급해,[3] 그 사용을 선전했습니다.이 용어와 개념은 Joomla, WordPress 및 Drupal과 [citation needed]같은 다양한 웹 프레임워크를 호스트하기에 충분한 기능을 갖춘 최초의 [4]웹용 오픈 소스 소프트웨어 스택 중 하나였기 때문에 널리 알려졌습니다.
변종
LAMP 모델은 다른 컴포넌트에 맞게 조정되었지만 일반적으로 자유 및 오픈 소스 소프트웨어로 구성됩니다.예를 들어 Microsoft Windows 운영체제 패밀리에 동등한 설치를 WAMP라고 하며 MacOS에 동등한 설치를 [citation needed]MAMP라고 합니다.
원형 LAMP의 사용이 증가함에 따라 운영체제, 웹 서버, 데이터베이스 및 소프트웨어 언어의 다른 조합에 대한 변형과 리트로니엄이 등장했습니다.예를 들어 Microsoft Windows 운영체제 패밀리에 동등한 설치를 WAMP라고 합니다.Apache 대신 IIS를 실행하는 다른 방법을 WIMP라고 합니다.다른 운영체제와 관련된 변형으로는 MAMP(macOS), SAMP(Solaris), FAMP(FreeBSD), IAMP(IBM 플랫폼) 및 XPPAM(크로스) 등이 있습니다.
웹 서버 또는 데이터베이스 관리 시스템도 다릅니다.LEMP는 Apache가 보다 가벼운 웹 서버 Nginx로 [5]대체된 버전입니다.MySQL이 Postgre로 대체된 버전SQL은 LAPP라고 불리며, 원래의 약어인 LAMP(Linux / Apache / Middleware (Perl, PHP, Python, Ruby) / PostgreSQL)[6]를 유지하는 경우도 있습니다.
LAMP 번들은 다음과 같은 많은 다른 자유 및 오픈 소스 소프트웨어 패키지와 결합할 수 있습니다.
- 보안 테스트 및 강화용 netsniff-ng
- Snort, 침입 탐지(IDS) 및 침입 방지(IPS) 시스템
- 다이어그램용 RRD 도구
- Nagios, Collectd 또는 Cacti, 모니터링용.
또 다른 예로 Wikipedia Foundation 프로젝트에서 기반 인프라스트럭처에 사용하는 소프트웨어는 로드밸런싱용 Linux Virtual Server(LVS), 분산 객체 [citation needed]스토리지용 Ceph 및 Swift 등의 추가 기능을 갖춘 맞춤형 LAMP 스택입니다.
소프트웨어 컴포넌트
리눅스
Linux는 Unix와 유사한 컴퓨터 운영체제로 무료 오픈소스 소프트웨어 개발 및 배포 모델 하에 조립되어 있습니다.대부분의 Linux 디스트리뷰션에서는 Linux 커널과 패키지 관리 시스템을 기반으로 하는 소프트웨어의 집합으로서 패키지를 통해 완전한 LAMP 셋업을 제공합니다.2013년 10월 W3Techs에 따르면 웹 서버 시장의 58.5%가 Debian과 Ubuntu 간에 점유되고 있으며 RHEL, Fedora 및 Cent가 점유하고 있습니다.OS 점유율 37.[7]3%
아파치
LAMP의 웹 서버의 역할은 전통적으로 Apache에 의해 제공되어 왔으며, 그 이후로 Nginx와 같은 다른 웹 서버를 포함하고 있다.
Apache HTTP 서버는 공용 인터넷에서 가장 많이 사용되는 웹 서버입니다.2013년 6월 Netcraft는 Apache가 전체 활성 웹 사이트의 54.2%, 모든 [8]도메인에 걸쳐 상위 서버의 53.3%를 제공한다고 추정했습니다.2014년 6월 Apache는 전체 활성 웹사이트의 52.27%를 제공할 것으로 추정되었으며, Nginx가 14.36%[9]로 그 뒤를 이었다.
Apache는 Apache Software Foundation의 후원으로 열린 개발자 커뮤니티에 의해 개발 및 관리됩니다.Apache License로 출시된 Apache는 오픈 소스 소프트웨어입니다.다양한 기능이 지원되며, 많은 기능이 Apache의 핵심 기능을 확장하는 컴파일된 모듈로 구현됩니다.서버측 프로그래밍 언어 지원에서 인증까지 다양합니다.
MySQL 및 데이터베이스 대체 솔루션
LAMP의 릴레이셔널 데이터베이스 관리 시스템으로서의 MySQL의 원래 역할은 이후 Postgre와 같은 다른 기업이 번갈아 프로비저닝하고 있습니다.SQL, MariaDB(원래 개발자에 의해 개발된 MySQL의 커뮤니티 개발 포크), 그리고 MongoDB와 같은 NoSQL 데이터베이스도 있습니다.
MySQL은 Sun Microsystems가 2008년에 인수한 멀티스레드 다중 사용자 SQL 데이터베이스 관리 시스템으로,[10] 2010년에 [11]Oracle Corporation에 인수되었습니다.MySQL 팀은 초창기부터 GNU General Public License의 조건과 다양한 소유권 계약에 따라 소스 코드를 공개해 왔습니다.
PostgreSQL은 Postgre가 개발한 ACID 준거 객체 관계형 데이터베이스 관리 시스템이기도 합니다.SQL 글로벌 개발 그룹
MongoDB는 동적 스키마(BSON 형식 호출)를 가진 JSON 유사 문서를 위해 기존의 관계형 데이터베이스 구조를 회피하는 NoSQL 데이터베이스입니다.이것에 의해, 특정 타입의 애플리케이션에서의 데이터 통합합니다.
PHP 및 대체품
LAMP의 애플리케이션 프로그래밍 언어로서의 PHP의 역할은 Perl이나 Python과 같은 다른 언어에서도 수행되었습니다.
PHP는 웹 개발을 위해 설계된 서버 측 스크립팅 언어이지만 범용 프로그래밍 언어로도 사용됩니다.PHP 코드는 PHP 프로세서 모듈을 통해 웹 서버에 의해 해석되며, 결과 웹 페이지를 생성합니다.데이터를 처리하기 위해 외부 파일을 호출하는 대신 HTML 소스 문서에 직접 PHP 명령을 포함할 수도 있습니다.또한 명령줄 인터페이스 기능을 포함하도록 진화하여 독립형 그래픽 [12]애플리케이션에서 사용할 수 있습니다.PHP는 PHP 라이선스의 조건에 따라 출시된 자유 소프트웨어이며, PHP 라이선스가 [13]PHP라는 용어의 사용에 부과하는 제한 때문에 GNU GPL(General Public License)과 호환되지 않습니다.
Perl은 고급 범용 인터프리터 방식의 동적 프로그래밍 언어 패밀리입니다.이 패밀리의 언어에는 Perl 5와 [14]Raku가 있습니다.이들은 현대의 많은 Unix 명령줄 [15]도구의 임의 데이터 길이 제한 없이 고급 텍스트 처리 기능을 제공하여 텍스트 파일 조작을 용이하게 합니다.펄 5는 1990년대 후반에 웹을 위한 CGI 스크립트 언어로서 널리 인기를 끌었는데, 부분적으로는 그 파싱 [16]능력 때문이다.
Python은 널리 사용되는 범용 고급 통역 프로그래밍 언어입니다.[17]Python은 객체 지향, 명령, 기능 및 절차 패러다임을 포함한 여러 프로그래밍 패러다임을 지원합니다.동적 유형 시스템, 자동 메모리 관리, 표준 라이브러리 및 엄격한 공백 [18]사용을 특징으로 합니다.다른 동적 언어와 마찬가지로 파이썬은 스크립트 언어로 자주 사용되지만 스크립팅되지 않는 광범위한 컨텍스트에서도 사용됩니다.
하이 어베이러빌리티
다수의 요청을 처리하거나 높은 업타임을 요구하는 서비스를 제공하는 웹 사이트에는 특정 접근 방식이 필요합니다.LAMP 스택의 고가용성 어프로치에는 여러 웹 서버와 데이터베이스 서버, 각 서버에서 제공되는 자원의 논리적 집약을 실행하는 추가 컴포넌트 및 여러 서버에 걸친 워크로드 분산을 수행하는 추가 컴포넌트가 포함될 수 있습니다.웹 서버의 집약은 예를 들어 Linux Virtual Server(LVS)를 사용하여 웹 서버 앞에 로드 밸런서를 배치하여 제공할 수 있습니다.데이터베이스 서버의 집약을 위해 MySQL은 원래 데이터베이스(마스터)와 복사본(슬레이브)[19] 간의 마스터/슬레이브 관계를 구현하는 내부 복제 메커니즘을 제공합니다.
이러한 하이 어베이러빌리티 셋업은 다양한 형태의 용장성을 제공함으로써 LAMP 인스턴스의 가용성을 향상시킬 수도 있습니다.이를 통해 특정 수의 컴포넌트(개별 서버)에서 제공되는 서비스 전체를 중단하지 않고 다운타임이 발생할 수 있습니다.이러한 장황한 셋업에서는, 집합적으로 보존된 데이터가 실제로 손실되는 것을 방지하는 방법으로, 하드웨어 장해에 의해서 개개의 서버상에서 데이터 손실이 발생하는 경우도 있습니다.이러한 LAMP 설정은 가용성이 높을 뿐만 아니라 내부 데이터베이스 읽기 작업 수가 쓰기/[19]업데이트 작업 수보다 훨씬 많은 서비스에 거의 선형적인 성능 향상을 제공할 수 있습니다.
「 」를 참조해 주세요.
- 아파치-마이 목록SQL-PHP 패키지
- Nginx-My 목록SQL-PHP 패키지
- LYME (소프트웨어 번들)– Erlang 기반의 소프트웨어 스택
- MEAN (소프트웨어 스택)– 동적인 웹 사이트와 웹 애플리케이션을 구축하기 위한 JavaScript 소프트웨어 스택
- 소프트웨어 스택
- 웹 콘텐츠 관리 시스템
- 웹 플랫폼 설치
레퍼런스
- ^ "LAMP (Linux, Apache, MySQL, PHP)". SearchEnterpriseLinux. Archived from the original on 28 November 2021. Retrieved 15 December 2021.
- ^ Wikimedia servers - Meta. meta.wikimedia.org. 22 April 2013. Archived from the original on 10 December 2021. Retrieved 15 December 2021.
- ^ Kay, Russell (25 September 2006). "How To: LAMP". Computerworld. Archived from the original on 11 September 2021. Retrieved 15 December 2021.
- ^ "LAMP stack". IBM cloud learn hub. IBM. Archived from the original on 15 December 2021. Retrieved 15 December 2021.
- ^ "LEMP stack (Linux, Nginx, MySQL, PHP)". lemp.io. Archived from the original on 19 November 2021. Retrieved 16 December 2021.
- ^ "Featured users". PostgreSQL. Archived from the original on 22 January 2014. Retrieved 22 January 2014.
- ^ "Debian/Ubuntu extend the dominance in the Linux web server market". W³Techs. Retrieved 16 December 2021.
{{cite web}}
: CS1 maint :url-status (링크) - ^ "June 2013 web server survey". Netcraft. Archived from the original on 6 March 2021. Retrieved 16 December 2021.
- ^ "June 2014 web server survey". Netcraft. Archived from the original on 21 August 2021. Retrieved 16 December 2021.
- ^ "Top reasons for product managers to embed". MySQL. Archived from the original on 2 July 2014. Retrieved 27 July 2014.
- ^ "Sun locks up MySQL, looks to future web development". InformationWeek. Archived from the original on 28 February 2008. Retrieved 27 July 2014.
- ^ "Introduction: What can PHP do?". PHP Manual. Archived from the original on 15 December 2021. Retrieved 16 December 2021.
- ^ "GPL-incompatible, free software licenses". Various licenses and comments about them. Free software foundation. Archived from the original on 16 December 2021. Retrieved 16 December 2021.
- ^ "About Perl". perl.org. Archived from the original on 22 November 2021. Retrieved 16 December 2021.
"Perl" is a family of languages, "Perl 6" is part of the family, but it is a separate language which has its own development team. Its existence has no significant impact on the continuing development of "Perl 5".
- ^ Wall, Larry; Tom Christiansen; Jon Orwant (July 2000). Programming Perl, third edition. O'Reilly Media. ISBN 0-596-00027-8.
- ^ Smith, Roderick W. (21 June 2002). Advanced Linux networking. Addison-Wesley Professional. p. 594. ISBN 978-0-201-77423-8.
- ^ "Programming language trends – O'Reilly radar". Radar.oreilly.com. 2 August 2006. Archived from the original on 24 September 2021. Retrieved 16 December 2021.
- ^ "About Python". Python software foundation. Archived from the original on 16 December 2021. Retrieved 16 December 2021.
- ^ a b Simic, Dragan; Ristic, Srecko; Obradovic, Slobodan (April 2007). "Measurement of the achieved performance levels of the web applications with distributed relational database" (PDF). Electronics and energetics. Facta Universitatis. p. 31–43. Archived (PDF) from the original on 7 October 2021. Retrieved 16 December 2021.