>백엔드 개발 >PHP 튜토리얼 >cms의 최고의 2차 개발에 대한 자세한 소개

cms의 최고의 2차 개발에 대한 자세한 소개

黄舟
黄舟원래의
2017-10-21 09:35:016119검색

◆2차 개발

 2차 개발이란?

 2차 개발은 간단히 말해서 기존 소프트웨어를 맞춤화 및 수정하고 기능을 확장한 후 원하는 기능과 효과를 얻는 것입니다. 일반적으로 말하면. 원래 시스템의 커널을 변경하지 마십시오.

 

2차 개발이 필요한 이유?

정보 기술의 지속적인 발전으로 인해 IT 업계에서는 우수한 오픈 소스 작품이 잇달아 등장했습니다. 저자는 개인, 프로젝트 팀 또는

소프트웨어 회사입니다. 이러한 우수한 오픈소스 소프트웨어를 선택 및 적용하고 이를 기반으로 비즈니스 요구에 맞는 2차 개발을 수행하면 기업의 정보 비용(시간 비용 및 개발 비용)을 절약할 수 있을 뿐만 아니라 기술적 보장도 제공할 수 있습니다. 우리가 자주 듣는 말은: 거인의 어깨 위에 서면 더 멀리 볼 수 있다는 것입니다. 따라서 많은 국내 기업에는 보조 개발 인재가 필요합니다.

 

 2차 개발은 어떻게 하나요?

 먼저 본 오픈소스 제품에 사용되는 언어에 대한 기초가 있어야 합니다. 코드를 이해할 수 있는 것이 가장 기본입니다.

둘째, 이 오픈소스 제품의 기능과 사용법을 잘 알고 있어야 합니다. 따라서 요구 사항, 변경하려는 사항, 시스템과 함께 제공되는 사항 및 수행 방법을 알 수 있습니다. 그것. 셋째, 본 오픈소스 제품의 데이터 구조, 코드 구조, 시스템 프레임워크 구조, 핵심은 무엇인지, 보조 기능은 어디에 있는지 잘 알고 있어야 합니다.

간단히 말하면 데이터베이스, 코드 로직, 파일 디렉터리에 대한 익숙함을 의미합니다.

 넷째, 필요에 따라 오픈 소스 제품의 핵심을 사용하여 필요에 맞게 시스템을 확장하고 수정합니다. PHP 오픈 소스

제품의 2차 개발을 위한 기본 요구 사항을 소개합니다.

 첫 번째, 기본 요구 사항: HTML(매우 익숙해야 함), PHP(코드를 이해하고 게시판, 소규모 CMS와 같은 일부 소규모 시스템을 작성할 수 있음),

Mysql(최소 하나의 데이터베이스를 알고 있음), Javascript(일부 이해하고 작성할 수 있음) 소규모 시스템) 기존 코드 일부 수정), p+Css(인터페이스 조정 및 CSS

사용 방법 이해 가능)

둘째, Dedecms와 같은 오픈 소스 제품의 사용 방법을 알아야 합니다. 로그인 및 새 컬럼 생성 방법, 기사 추가 방법, 템플릿 태그 사용 방법, 모델의 개념 및 사용법, 기타 기능

셋째, 본 오픈 소스 제품의 데이터베이스 구조를 숙지해야 하며, 또한 데이터베이스 클래스 사용 방법, 일반적으로 사용되는 보안 필터링 수행 방법, 템플릿 엔진 사용 방법 및 기타 핵심 내용과 같은 내부 핵심 파일의 내용을 이해합니다. 또한 이 오픈 소스 제품의 디렉토리 구조도 알아야 합니다. 즉, 템플릿이 배치된 위치, 컨트롤이 배치된 위치, 스타일이 배치된 위치 등을 알아야 합니다.

넷째, 요구 사항을 숙지하세요. 요구 사항을 해석한 다음 이 오픈 소스 제품을 수정하고 확장하는 방법을 결정하세요

 2차 개발 후에 무엇을 얻을 수 있나요?

 당신은 당신의 요구를 충족할 수 있고 경험을 축적할 수 있습니다. 소위 타인의 이익이란 이 두 번째 개발을 할 때 이 시스템의 본질을 흡수한 다음 이를 자신의 사고에 통합할 수 있고 프로젝트 아키텍처의 경험을 요약할 수도 있다는 것을 의미합니다.

좋다는 말이 있습니다. 똑똑한 사람은 다른 사람의 실패 경험을 자신의 경험으로 여기고, 어리석은 사람은 수없이 실패를 경험한 후에 그것을 자신의 경험으로 여긴다는 것입니다. 2차 발전은 단순한 발전이 아니라, 더 중요하게는 본질을 흡수하고, 경험을 요약하고, 아이디어를 정리하고, 우회를 피하고, 자신을 향상시키는 것입니다.

 

거인의 어깨 위에 올라서면 더 멀리 보일 것이다!!!

 ◆DedeCMS 2차 개발

 더 많은 사람들이 2차 개발을 이해하고 DedeCMS의 2차 개발을 더욱 편리하게 이해할 수 있도록 개발, 다음은 DedeCMS의 2차 개발에 대한 몇 가지 기본 및 개요를 간략하게 소개합니다

 

DedeCMS의 2차 개발에 필요한 기초:

 · HTML에 매우 익숙함

 · p+CSS 레이아웃에 익숙함 · 탄탄한 PHP 기초, 구조화된 프로그래밍에 익숙하고 OOP를 이해하고 이를 이해하고 사용할 수 있는 분

 · MYSQL에 익숙하고 SQL 언어를 마스터하세요  

DedeCMS 2차 개발 학습 과정

 · CMS가 무엇인지 이해

· DedeCMS의 친숙한 기능(열 분류, 문서 관리, 모델 사용, 시스템 설정 및 기타 공통 기능) · DedeCMS 템플릿 태그의 사용 및 원리를 마스터하세요

 · DedeCMS 디렉토리 구조 분석

  각 폴더에 익숙함 What 주로 파일들이 설치되어 있기 때문에 2차 개발 시 어떤 파일을 어떤 폴더에 수정해야 할지 알 수 있습니다

 

디렉토리 구조 요약 :

 ./a 생성된 파일 저장 경로  ./data 캐시 파일 및 데이터 센터

/admin 백그라운드 데이터 관리

 /backupdata 백업 데이터

 /캐시 캐시 파일

 /enums 레벨 연계 데이터, JS, 열거형 캐시 파일

 /js 자주 사용하는 JS

  /mark 워터마크 관련 파일   /module 모듈 설치 파일

 /rss Rss 관련

 /sessions 세션 저장 경로

  /textdata 텍스트 데이터

  /tplcache 템플릿 캐시

 /uploadtmp 업로드 파일 캐시 위치

 /ziptmp zip 패키지 압축 해제 캐시 위치

 …

 DedeCMS 파일 구조 분석

 각 파일의 기본 기능을 숙지하고, 각 파일의 일반적인 기능을 알고 나면 파일을 쉽게 수정할 수 있습니다

  파일 구조 요약:

 common.inc.php 데이터베이스 구성 파일

 config.cache.bak.php 배경 시스템 구성 백업

 config.cache.inc.php 백엔드 시스템 구성 파일 캐시

 downmix.data.php 난독화된 캐시 파일 모음

 mysql_error_track.inc MYSQL 오류 로그

 safequestions.php 보안 문제

 sitemap.html 사이트맵

  sys_pay.cache.php 결제 게이트웨이 구성

 template.rand.php 임의 템플릿 설정

 …

 · DedeCMS 데이터베이스 구조 분석, 적어도 각 테이블의 역할에 익숙함

 각 역할에 익숙함 테이블, 이해 여러 핵심 테이블의 디자인과 필드의 의미를 통해 새로운 요구 사항을 처리하기 위해 단락을 추가할지 또는 새 테이블을 생성할지 여부를 신속하게 결정할 수 있습니다. 동시에 DedeCMS의 데이터베이스 디자인 아이디어를 이해하고 자신의 시스템에 유용한 디자인 아이디어를 추가할 수도 있습니다.

 · DedeCMS 프로세스 제어 및 일부 핵심 파일 분석

  로그인, 등록, 문서 관리, 권한 제어, 분류 관리, 모델 설정 등과 같은 몇 가지 일반적인 프로세스 제어에 익숙합니다. 여러 핵심 파일을 분석하여 프로그래밍 기술과 보안 메커니즘을 이해합니다

· DedeCMS 플러그인 개발(**** 플러그인 및 임베디드 플러그인)

두 가지 플러그인 작성 및 가져오기에 익숙함 플러그인 내보내기, 플러그인 및 모델 사용

  ◆Ecshop 2차 개발

  Ecshop 2차 개발 학습 방법

 최근에는 인터넷의 발달과 함께 전자상거래도 성장했습니다. it, B2B, C2C, B2C 전자상거래 모델도 계속해서 성숙해지고 있습니다. 현재 에서는 전자상거래 관련 PHP 오픈소스 제품이 많이 탄생했습니다. B2C 분야에서는 Ecshop, Zencart, Magento 등 국내외에서 잘 알려진 제품들이 있습니다.

  이제 ECshop 2차 개발 학습 과정과 주의할 점을 간략하게 소개하겠습니다.

 

Ecshop 2차 개발에 필요한 기초:

 ·HTML에 매우 익숙함 ·p+CSS 레이아웃에 익숙함

 · 탄탄한 PHP 기초, 구조적 프로그래밍에 익숙하고 OOP를 이해하고 이해하고 사용할 수 있는 사람

 · Smarty 템플릿 엔진에 익숙함

 · MYSQL에 익숙하고 SQL 언어를 마스터할 수 있음

 Ecshop 2차 개발 학습 과정

· 전자상거래 기본 개념 익히기 · EcShop 기본 기능 익히기(상품 유형, 상품 분류, 상품 속성 설정, 프로모션 활용 등)

 · 데이터베이스 구조 및 데이터베이스 마스터 Ecshop의 디자인 아이디어

 · ER 모델에 익숙하고 엔터티 및 관계 설정

각 테이블의 역할에 익숙하고 여러 핵심 테이블의 디자인과 필드의 의미를 이해하여 새로운 요구 사항을 얻은 후 단어

를 추가할지 아니면 새 테이블 거래를 생성할지 빠르게 판단할 수 있습니다. 동시에 ECshop의 데이터베이스 디자인 아이디어를 이해하고 자신의 시스템에 유용한 디자인 아이디어를 추가할 수도 있습니다

 · 파일 구조 분석 및 코드 분석

  일부 로그인, 등록, 문서 관리, 권한 제어, 분류 관리, 제품에 익숙함 유형 등. 몇 가지 일반적인 프로세스 제어. 여러 핵심 파일을 분석하여 프로그래밍 기술 및 보안 메커니즘을 이해합니다

· Ecshop 파일 구조 분석:

Containscls_captcha.php: 확인 코드 그림 클래스

Containscls_ecshop.php: 기본 클래스

Containscls_ecshop.php( 포함된 slib_common.php: 공통 함수 라이브러리

  includeslib_goodscat.php: 프런트엔드 공통 함수 라이브러리

 includeslib_insert.php: 동적 콘텐츠 함수 라이브러리

 includeslib_main.php: 프런트엔드 공통 함수 라이브러리

 includeslib_지불.php: 결제 인터페이스 함수

 includes lib_iconv. php: 문자셋 변환 클래스

 includesipcls_ip.php: IP 위치 쿼리 클래스

 includesmodulesintegratesdiscuz.php: 멤버 데이터 처리 클래스

 includesmodulesintegratesecshop.php: 멤버 데이터 처리 클래스

Ecshop 템플릿 교체

Streamline 사용에 익숙함 디 Smarty 버전, 나만의 인터페이스 내장, EcShop 템플릿 교체 스킬

Ecshop 2차 개발 예시

중국어, 영어 전환 기능, 플래시 세일 기능, JD몰 템플릿 제작 등

학습 목표 :

1. 윌 2차 개발은 Ecshop을 이용하세요

2. 일반 템플릿 변경 및 일부 기능 수정 가능

3. 개발 경험을 통해 배우기

기본 지식 습득 - "일부 작성 방법을 모방 -" 내부 패턴 수정(form) 나만의 개발 모델)

Ecshop에서 프로그래밍 기술 및 시스템 설계 기술을 습득하세요

◆캐싱 기술 분석

일반적인 PHP 캐싱 기술 분석 [개념 버전]

대부분의 경우 당사 웹 사이트에서는 데이터베이스를 사이트 데이터 저장 컨테이너로 사용합니다. SQL 쿼리를 실행할 때 일반적인 프로세스는 다음과 같습니다. 데이터베이스에 연결 -> SQL 쿼리 준비 - > 데이터베이스에서 반환된 결과 가져오기 - > 그러나 데이터베이스의 일부 데이터는 완전히 정적이거나 자주 변경되지 않습니다. 캐싱 시스템은 빈번한 데이터베이스 작업을 피하기 위해 SQL 쿼리 결과를 더 빠른 스토리지 시스템에 캐시합니다. 이를 통해 프로그램 실행 시간이 향상되고 쿼리 결과를 캐싱할 수도 있습니다. 나중에 처리하세요.

  일반적으로 사용되는 캐싱 기술

데이터 캐싱: 여기서 언급하는 데이터 캐시는 페이지에 액세스할 때마다 먼저 해당 캐시된 데이터가 존재하는지 여부를 감지하여 연결합니다. 데이터베이스화하고 데이터를 가져와서 쿼리 결과를 직렬화하여 파일에 저장합니다

 . 앞으로는 동일한 쿼리 결과를 캐시 파일에서 직접 얻을 수 있습니다.

 페이지 캐싱:

 페이지에 액세스할 때마다 해당 캐시된 페이지 파일이 존재하는지 먼저 감지합니다. 존재하지 않는 경우 데이터베이스에 연결하여 데이터를 가져오고

페이지를 표시하고 캐시된 페이지를 생성합니다. 페이지 파일을 동시에 저장하여 다음에 액세스할 때 페이지 파일이 재생되도록 합니다. (템플릿 엔진과 인터넷의 일부 일반적인

캐싱 클래스에는 일반적으로 이 기능이 있습니다.)

메모리 캐시:

여기에서는 소개하지 않겠습니다:

Memcached는 동적 애플리케이션에서 데이터베이스 로드를 줄이고 액세스 속도를 향상시키는 데 사용되는 고성능 분산 메모리 개체 캐시 시스템입니다.

 Dbcached는 Memcached 및 NMDB를 기반으로 하는 분산 키-값 데이터베이스 메모리 캐시 시스템입니다.

위의 캐싱 기술은 빈번한 데이터베이스 쿼리 문제를 잘 해결할 수 있지만 데이터가 시기적절하지 않다는 단점이 있습니다. 아래에서는 제가

프로젝트에서 일반적으로 사용하는 방법을 제공합니다.

시간 트리거 캐싱:

파일이 존재하는지, 타임스탬프가 설정된 만료 시간보다 짧은지 확인하세요. 파일 수정 타임스탬프가 현재 타임스탬프에서 만료 타임스탬프

를 뺀 값보다 큰 경우 캐시를 사용하고, 그렇지 않으면 캐시를 업데이트하세요.

 설정된 시간 내에 데이터를 업데이트해야 하는지 판단하지 말고, 설정된 시간 이후에 캐시를 업데이트하세요. 위 내용은 적시성 요구 사항이 높지 않은 경우에만 사용하기에 적합합니다. 그렇지 않은 경우 아래를 참조하세요.

 콘텐츠 트리거 캐시:

 데이터가 삽입되거나 업데이트되면 캐시가 강제로 업데이트됩니다.

 여기서 대량의 데이터를 자주 업데이트해야 하는 경우 결국 디스크 읽기 및 쓰기 작업이 포함된다는 것을 알 수 있습니다. 해결 방법 일상

프로젝트에서는 일반적으로 모든 콘텐츠를 캐시하지 않고 문제를 해결하기 위해 자주 변경되지 않는 일부 콘텐츠를 캐시합니다. 하지만 부하가 심한 경우에는 공유

메모리를 캐시 시스템으로 사용하는 것이 가장 좋습니다.

이 시점에서는 PHP 캐싱이 해결책이 될 수 있지만, 각 요청을 여전히 PHP로 구문 분석해야 하기 때문에 부하가 심한 경우 효율성 문제가 여전히 더 심각하다는 단점이 있습니다. 이 경우 정적 캐시가 사용될 수도 있습니다. .

  정적 캐시

여기에 언급된 정적 캐시는 HTML 캐시를 의미합니다. 일반적으로 HTML이 사용되는 상황

은 일반적으로 콘텐츠가 업데이트되어야 하는 페이지이기 때문에 HTML 캐시는 일반적으로 데이터를 업데이트해야 하는지 여부를 결정할 필요가 없습니다. 자주 바꾸지 마세요. 데이터가 업데이트되면 HTML을 강제로 업데이트하면 됩니다.

사실 캐싱 시스템에는 많은 문제가 수반됩니다. 여기서는 일반적인 캐싱 아이디어만 소개하고

캐싱을 구현하고 특정 코드를 작성하기 위한 소프트웨어 사용은 소개하지 않겠습니다.

 좋은 해결책이 있다면 아래에 제출해 주시고 함께 논의해 보시기 바랍니다.

  ◆PHP는 함수를 사용하여 명령을 호출합니다

  PHP는 exec, system 등의 함수를 사용하여 시스템 명령을 호출합니다

  PHP에 내장된 exec, system 함수는 시스템 명령(셸 명령)을 호출할 수 있으며 물론 함수도 있습니다. passthru 및 ​​escapeshellcmd 등이 있습니다.

 많은 경우 PHP의 exec, 시스템 및 기타 기능을 사용하여 시스템 명령을 호출하면 작업을 더 빠르고 효율적으로 완료하는 데 도움이 될 수 있습니다. 예를 들어, 이틀 전 .rar 파일을 일괄 처리할 때 exec가 많은 도움이 되었습니다.

오늘은 일반적으로 사용되는 호출 시스템 기능을 정리하고 경험을 여러분과 공유하겠습니다.

참고: 이 두 기능을 사용하려면 php.ini의 안전 모드를 꺼야 합니다. 그렇지 않으면 보안을 위해 PHP는 시스템 명령 호출을 허용하지 않습니다.

먼저 PHP 매뉴얼에서 이 두 함수에 대한 설명을 살펴보겠습니다.

exec --- 외부 프로그램 실행

구문: string exec ( string command [, array &output [, int &return_var]] )

설명:

exec()는 주어진 명령 명령을 실행하지만 아무 것도 출력하지 않습니다.

와 같이 명령 결과의 마지막 줄만 반환합니다.

명령을 실행하고 명령에서 모든 데이터를 가져와야 하는 경우 passthru() 함수를 사용할 수 있습니다.

 매개변수 배열이 제공되면 지정된 배열은 명령에 의해 출력된 각 줄로 채워집니다. 참고: 배열에 이미 일부 요소가 포함되어 있으면 나중에 그렇지 않으면 exec()가 해당 요소를 배열에 추가합니다. 이 함수가 요소를 추가하도록 하려면 이 배열을

exec()에 전달하기 전에 unset()을 호출하면 됩니다.

 매개변수 array와 return_var가 주어지면 실행으로 반환된 상태 명령이 이 변수에 기록됩니다.

참고: 사용자 입력 데이터가 이 함수에 전달되도록 허용하는 경우 escapeshellcmd()를 사용하여 사용자가 시스템을 속여 임의의 명령을 실행하지 못하도록

해야 합니다.

참고: 이 기능을 사용하여 프로그램을 시작하고 백그라운드에서 실행되는 동안 프로그램을 종료하려면

프로그램의 출력이 파일이나 일부 출력 데이터 흐름으로 리디렉션되는지 확인해야 합니다. 그렇지 않으면 PHP는 프로그램 실행이 끝날 때까지 정지됩니다.

 System --- 외부 프로그램을 실행하고 출력을 표시합니다

  구문: string system ( string command [, int &return_var] )

  설명:

  System( )은 주어진 명령 명령을 실행하고 결과를 출력합니다. return_var 매개변수가 제공되면 실행된 명령의 상태 코드가 이 변수에 기록됩니다.

참고: 사용자 입력 데이터가 이 함수에 전달되도록 허용하는 경우 escapeshellcmd()를 사용하여 사용자가 시스템을 속여 임의의 명령을 실행하지 못하도록

해야 합니다.

참고: 이 기능을 사용하여 프로그램을 시작하고 백그라운드에서 실행되는 동안 프로그램을 종료하려면

프로그램의 출력이 파일이나 일부 출력 데이터 흐름으로 리디렉션되는지 확인해야 합니다. 그렇지 않으면 PHP는 프로그램 실행이 끝날 때까지 정지됩니다.

 PHP가 서버 모듈로 실행 중인 경우 system()은 각 줄을 출력한 후 자동으로 웹 서버의 출력 버퍼를 지우려고 시도합니다.

  성공하면 명령의 마지막 줄을 반환하고, 실패하면 false를 반환합니다.

 명령을 실행하고 명령에서 모든 데이터를 가져와야 하는 경우 passthru() 함수를 사용할 수 있습니다.

 이 둘은 시스템 쉘 명령을 호출하는 데 사용됩니다.

 차이점:

 Exc는 모든 실행 결과를 $output 함수(배열)로 반환할 수 있으며, $status는 실행 상태, 0은 성공, 1은 실패

  Systerm은 $output 함수를 제공할 필요가 없으며 결과를 직접 반환합니다. 마찬가지로 $return_var는 실행 상태 코드입니다. 0은 성공을 의미하고 1

은 실패를 의미합니다

 ◆오픈 소스에 대하여

 오픈 소스는 웹에서 나옵니다

오픈 소스 운동은 매우 대중적이며 소프트웨어 개발 역사에 한 획을 그었습니다. 그러나 역사상 가장 성공적인 오픈 소스 "프로젝트"는 어디에 있습니까? 사실 전체적으로 보면 웹이 오픈 소스 운동의 가장 큰 성공이 아닐까요? Linux, Apache, MySQL 및 PHP와 같은 숨겨진 도메인의 많은 웹사이트 뒤에 있는 LAMP. 하지만

생각해보면 더 많은 것을 발견하게 될 것입니다.

아래 목록은 웹을 작동시키는 일부 오픈 소스 프로젝트입니다.

  웹 브라우저 - 웹 브라우저

웹 브라우저 시장에서는 여전히 마이크로소프트의 폐쇄 소스 소프트웨어인 IE 브라우저가 큰 점유율을 차지하고 있지만, 유사한 기능을 갖춘 다른 오픈 소스 프로젝트들

이 인기를 끌며 성장하고 있습니다. Mozilla의 Firefox 브라우저와 같습니다(Flock 및 PaleMoon뿐만 아니라 오픈 소스임). Safari와 같이 Webkit 기반 브라우저도 빠르게 성장하고 있지만 가장 유명한 브라우저는 Chrome입니다.

 모바일 네트워크를 포함하면 Webkit은 iPhone, Android 및 Blackberry 휴대폰의 브라우저를 지배합니다.

  웹 서버 소프트웨어 - 웹 서버 소프트웨어

지금까지 가장 널리 사용되는 네트워크 서버 소프트웨어는 Apache이지만 최근에는 Nginx라는 경량 서버 소프트웨어가 인기를 얻고 있습니다. 실제로 상위 웹 서버 소프트웨어 3개 중 2개는 오픈 소스입니다(2위를 차지했지만 1위와는 거리가 먼 Microsoft IIS를 제외하고).

또한 다수의 서버 측 기본 소프트웨어도 오픈 소스입니다. 예를 들어, 트래픽이 많은 웹사이트에서는 Varnish를 웹사이트 방문자 간의 캐싱 계층으로 사용하고 Memcached를 웹사이트 데이터베이스 간의 캐싱 계층으로 사용합니다. 이것은 많은 예 중 단지 두 가지에 불과합니다.

 스크립팅 언어 및 웹 프레임워크 - 스크립팅 언어 및 웹 프레임워크

인터넷에서 사용되는 대부분의 프로그래밍 및 스크립트 언어는 PHP, Perl, Python, Ruby 등과 같은 오픈 소스입니다.

 그러나 처음부터 완전히 구축되는 웹사이트는 거의 없습니다. WordPress, Drupal, Ruby on Rails, Django, Joomla, DedeCMS, Ecshop 등 개발자를 지원하는 수백 개의 오픈 소스 콘텐츠 관리 시스템(CMS)과 웹 프레임워크

가 있다고 해도 과언이 아닙니다.

 데이터베이스-데이터베이스

 오픈소스 소프트웨어인 MySQL은 단연 가장 인기 있는 웹사이트 데이터베이스이지만, 최근 등장한 많은 "비관계형(NoSQL)" 데이터베이스는 말할 것도 없고 PostgreSQL과 같이 비슷한 기능을 가진 다른 오픈소스 소프트웨어도 있습니다.

 기본 소프트웨어에 대해 이야기했으므로 인터넷이나 인터넷 상의 모든 것을 사용할 때마다 의존하는 기본

시스템에 대해 언급해야 합니다.

 DNS - 도메인 이름 확인 시스템

  웹(그 문제에 대해서는 ) (전체 인터넷)은 도메인 이름 확인 시스템 없이는 쓸모가 없습니다. 우리 모두 알고 있듯이 도메인 이름 확인 시스템을 통해 사용자는 IP 주소 대신 example.com과 같은 도메인 이름을 사용할 수 있습니다. BIND는 DNS 서버(일명 네임 서버) 소프트웨어의 사실상 표준이며, 여러분

이제 짐작하셨겠지만 오픈 소스입니다.

 서버 운영체제 - 서버 운영체제

 모든 웹사이트는 서버에서 실행되어야 하며, 오픈소스가 지배하는 곳이 바로 서버입니다. Windows가 데스크톱 공간을 장악하고 있지만 웹사이트가 실행되는 대부분의 서버는 오픈 소스 Linux 운영 체제를 사용합니다. 그 밖에 널리 사용되는 제품으로는 freeBSD와 OpenBSD가 있습니다.

  오픈소스의 유혹

오픈소스 소프트웨어는 상용 폐쇄소스 소프트웨어와 동일한 성능을 제공할 수 있고 무료인 경우가 많기 때문에 오픈소스 소프트웨어

가 이렇게 인기가 있다는 것은 놀라운 일이 아닙니다. 무료는 이길 수 없는 가격입니다.

웹이 이 모든 무료 소프트웨어에서 실행되지 않는다면 아마도 널리 수용되기 어려울 것입니다.

웹에 비공개 소스 소프트웨어가 없다고 말하지 않았는데, 분명히 존재합니다. 그러나 통계적으로 볼 때 웹 오픈 소스의 지배력에서 실제 예외는 Microsoft의 Windows 기반 시스템 시리즈입니다.

그 외에도 일반적으로 라우터 및 유사한 장치의 운영 체제와 같은 더 많은 독점 폐쇄 소스 기술을 찾으려면 더 깊이 파고들어야 합니다. 하지만 그

는 웹이 아니라 인터넷입니다.

위 내용은 cms의 최고의 2차 개발에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.