>  기사  >  백엔드 개발  >  Linux에서 PHP용 pseudo-static_php 인스턴스 구성

Linux에서 PHP용 pseudo-static_php 인스턴스 구성

WBOY
WBOY원래의
2016-05-16 20:28:161331검색

mod_rewrite는 의사 정적 페이지를 구현할 수 있는 Apache의 매우 강력한 기능입니다. 아래에서 자세한 사용방법을 설명드리겠습니다

1. Apache가 mod_rewrite를 지원하는지 확인하세요

php에서 제공하는 phpinfo() 함수를 통해 환경 구성을 확인하고, apache2handler에서 활성화한 모든 모듈을 나열하는 Ctrl F를 통해 "Loaded Modules"를 찾습니다. "mod_rewrite"가 포함되어 있으면 이미 지원되는 것입니다. 더 이상 필요하지 않습니다. 설정을 계속하세요.
"mod_rewrite"가 켜져 있지 않으면 Apache 설치 디렉터리 "/apache/conf/"에서 httpd.conf 파일을 열고 Ctrl F를 사용하여 "LoadModule rewrite_module"을 찾은 다음 앞에 있는 "#"을 삭제합니다.
찾을 수 없다면 "LoadModule" 영역으로 이동하여 마지막 줄에 "LoadModule rewrite_module,modules/mod_rewrite.so"를 추가하고(전용 줄 필수) Apache 서버를 다시 시작합니다.

2. Apache 서버가 .htaccess를 지원하도록 합니다

로컬 APACHE 서버가 ".htaccess"를 지원하도록 만드는 방법은 무엇입니까? 실제로 Apache의 httpd.conf 설정을 수정하여 APACHE가 .htaccess를 지원하도록 만들 수 있습니다. httpd.conf 파일을 엽니다(어디서? APACHE 디렉터리의 CONF 디렉터리에 있음).
텍스트 편집기로 연 후

를 검색하세요.

코드 복사 코드는 다음과 같습니다.

옵션 FollowSymLinks
AllowOverride 없음

으로 변경되었습니다.

코드 복사 코드는 다음과 같습니다.

옵션 FollowSymLinks
모두 무시 허용

그렇습니다.
3. .htaccess 파일 생성
.htaccess 파일을 만드는 가장 쉬운 방법이 하나 있습니다:
메모장으로 열고, 파일 – 다른 이름으로 저장을 클릭하고, 파일명 창에 ".htaccess"를 입력하고, 녹색 부분 전체에 주목하세요,
즉, 영어 따옴표를 포함하고 저장을 클릭합니다.
4.다시 쓰기 규칙 학습
새 .htaccess 파일을 생성한 후 해당 파일에 다음 내용을 작성합니다.
#rewriteengine의 RewriteEngine은 다시 쓰기 엔진 스위치를 켜고 끄는 것입니다
RewriteRule ([0-9]{1,})index.php?id=1
RewriteRule을 설명하겠습니다. RewriteRule은 정규 표현식을 지원하는 재작성 규칙입니다. 위의 ([0-9]{1,})는
숫자를 나타냅니다. 단어로 구성되어 있으며 끝 표시로 숫자로 끝나는 것을 나타냅니다! 자, 이제 의사 정적 페이지를 구현할 수 있습니다: RewriteEngineonRewriteRule([a−zA−Z]1,)−([0−9]1,).htmlindex.php?action=1&id=2
([a-zA-Z]{1,})-([0-9]{1,}).html은 규칙이고 index.php?action=1&id=2는 대체할 형식이며 1은
하나의 괄호는 값과 일치하고, 2는 두 번째 값을 나타내는 식입니다! ! 처리 PHP 스크립트를 작성합니다: index.phpPHP 코드 echo '당신의 작업은 다음과 같습니다: ′._GET['action'];
에코 '
';
echo '귀하의 ID는 다음과 같습니다:' . $_GET['id'];
?>
좋습니다. 이제 브라우저에 다음을 입력해 보겠습니다.
localhost/page-18.html
출력은 다음과 같습니다.
귀하의 작업은 페이지
입니다. 귀하의 ID는 18

Apache의 httpd.conf를 확인하면 LoadModule rewrite_module module/mod_rewrite.so 줄이 없습니다. 이 모듈을 수동으로 생성해야 합니다.

아파치 소스 패키지 경로는 /ftp/httpd2.2

아파치 설치 경로:/usr/local/apache/

1. mod_rewrite 모듈 추가

코드 복사 코드는 다음과 같습니다.

# find . -name mod_rewrite.c //아파치 소스코드 설치 디렉터리에서 mod_rewrite.c 파일 찾기
./modules/mappers/mod_rewrite.c
# cd /ftp/httpd2.2/modules/mappers //mod_rewrite.c 파일이 포함된 디렉터리를 입력하세요
# /usr/local/apache/bin/apxs -c mod_rewrite.c //apxs는 현재 Apache를 사용하고 있는 bin 디렉토리의 절대 경로를 지정해야 합니다
# /usr/local/apache/bin/apxs -i -a -n mod_rewrite mod_rewrite.la

오류가 없으면 Apache의 모듈 디렉터리(/usr/local/apache/modules)에서 mod_rewrite.so 파일을 컴파일해야 합니다.

httpd.conf 파일을 편집하고 다음과 같이 httpd.conf에 mod_rewrite.so의 로딩 문이 이미 포함되어 있는지 확인합니다.

LoadModule mod_rewrite_module 모듈/mod_rewrite.so

2.아파치를 다시 시작하세요

1. 다음과 같은 오류가 발생하는 경우:

httpd: /usr/local/apache/conf/httpd.conf의 54행에 구문 오류가 있습니다. /usr/local/apache/modules/mod_rewrite.so 파일에서 API 모듈 구조 `mod_rewrite_module'을 찾을 수 없습니다. / usr/local/apache/modules/mod_rewrite.so: 정의되지 않은 기호: mod_rewrite_module

필요

LoadModule mod_rewrite_module 모듈/mod_rewrite.so

으로 변경되었습니다.

LoadModule rewrite_module 모듈/mod_rewrite.so

2. 아래와 같은 오류가 발생하는 경우

httpd: /usr/local/apache/conf/httpd.conf의 54행에 구문 오류가 있습니다. rewrite_module 모듈이 내장되어 있어 로드할 수 없습니다.

은 모듈이 내장되어 있어 전송할 필요가 없음을 나타냅니다. 주석 처리

#LoadModule rewrite_module 모듈/mod_rewrite.so

3. 가상 사이트에 대한 URL 재작성 활성화

1. httpd-vhost.conf를 편집하고 해당 사이트 태그에

을 추가합니다.

코드 복사 코드는 다음과 같습니다.

디렉토리 /웹사이트/webA
모두 무시 허용
/디렉토리

예:

코드 복사 코드는 다음과 같습니다.

가상호스트 *:80
DocumentRoot /website/webA
ErrorLog 로그/webA.com-error_log
CustomLog 로그/webA.com-access_log 공통
디렉토리 /웹사이트/webA
모두 무시 허용
/디렉토리
/가상호스트

4. 사이트의 재작성 규칙을 ".htaccess"라는 파일 이름으로 사이트의 루트 디렉터리에 저장합니다.

5. 아파치를 다시 시작하세요

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