Apache 서버 설치 및 구성. Linux에 웹 서버 설치

/ 브레이크

Apache 서버를 설정하는 방법은 무엇입니까? httpd.conf 파일은 무엇입니까? 이 튜토리얼에서는 이러한 질문에 답하고 서버 설정을 위한 기본 지시어를 보여 드리겠습니다.

서버 구성 파일

Apache 서버에는 세 가지 구성 파일이 있습니다. httpd.conf, srm.conf, access.conf. 일반적으로 이러한 파일은 디렉터리에 있습니다. /etc/httpd/conf(리눅스). 모든 서버 설정은 이 세 파일을 편집하는 것으로 구성됩니다. 이 파일들이 어떤 기능을 수행하는지 살펴보겠습니다.

  1. 파일 httpd.conf- 메인 서버 구성 파일입니다. 그것은 포함 기술적인 설명서버 운영.
  2. 파일에 있음 srm.conf서버에서 호스팅되는 문서의 매개변수가 지정됩니다.
  3. 파일 access.conf서버 액세스 매개변수를 포함합니다.

httpd.conf 파일

파일에는 서버 작동에 필요한 거의 모든 지시문이 포함되어 있습니다. 아래는 기본 지시어 Apache 서버 구성 파일:

서버 이름 - Apache 서버의 이름을 정의하는 지시문입니다. 또한 서버의 공식 이름은 브라우저의 주소 표시줄에 나타나는 형식으로 여기에 지정되어야 합니다. 이 이름은 다음에 등록되어야 합니다. DNS 서버귀하의 네트워크.

서버 유형 - 서버 유형을 정의하는 지시문입니다. 기본값은 독립 실행형입니다. 웹 서버에서 최대 성능을 얻으려면 이 옵션을 변경하지 마십시오.

ServerType 독립형

서버루트 - 이 지시문은 Apache 서버 구성 파일의 위치를 ​​지정합니다. 기본적으로 /etc/httpd 디렉토리는 이러한 목적으로 사용됩니다.

ServerRoot "D:/MyFolder/usr/local/Apache"

Pid파일 - 초기 서버 프로세스가 등록될 파일명을 지정하는 지시어이다. 이 파일에는 프로세스 식별자(PID)가 포함되어 있습니다. 자신만의 스크립트를 작성할 때 이 정보를 사용하여 서버를 중지하거나 다시 시작할 수 있습니다. 이 파일 Apache 서버가 독립형 모드에서 실행되는 경우에만 생성됩니다.

PidFile 로그/httpd.pid

시간 초과 - 서버가 일시 중지된 데이터 전송을 계속해서 재개하려고 시도하는 기간(초)을 지정합니다. Timeout 지시문의 의미는 데이터 전송뿐만 아니라 데이터 수신에도 적용됩니다. 대용량 파일을 수신해야 하는 경우 이 값을 늘리는 것이 좋습니다.

타임아웃 300

KeepAlive - 지속적인 연결, 즉 한 번에 둘 이상의 요청이 이루어지는 연결을 허용합니다.

연결 유지 켜기

MaxKeepAlive요청 - 지속적인 연결 중에 허용되는 최대 요청 수입니다. 한계를 제거하려면 0으로 설정하십시오. 성능을 향상시키려면 이 숫자를 상대적으로 높게 설정하는 것이 좋습니다.

MaxKeepAlive요청 100

KeepAlive시간 초과 - 지속적인 연결에 대한 시간 초과를 정의합니다.

KeepAliveTimeout 15

서버관리자 - 세트 이메일 주소귀하의 웹사이트의 웹마스터입니다. 오류가 있는 경우 이 주소로 메시지가 전송됩니다.

ServerAdmin 루트@localhos

시작서버 - 서버 시작 시 생성되는 자식 프로세스의 개수를 설정합니다. 매개변수는 동적이며 작동 중에 변경되므로 변경할 필요가 없습니다.

최소 예비 서버 - 요청 수신을 기다리는 유휴 하위 프로세스의 최소 수를 지정합니다. 새로운 프로세스를 만드는 것은 비용이 많이 드는 작업이며 대량요청은 서버에 추가 로드를 발생시킵니다.

MinSpareServers 8

MaxSpareServers – 요청 수신을 기다리고 있는 유휴 하위 프로세스의 최대 수를 지정합니다. 또한, 추가 프로세스가 많이 생성되면 최소한의 클라이언트 수로도 시스템에 과부하가 걸립니다.

MaxSpareServers 20

서버한도 – 이 지시어는 MaxClients의 최대값을 설정합니다. 이 값을 Maxclients 지시문의 값과 동일하게 설정하는 것이 좋습니다.

최대 클라이언트 - Prefork MPM의 가장 중요한 설정 파라미터이니 참고하시기 바랍니다. 지시어는 요청을 처리하기 위해 생성되는 최대 병렬 프로세스 수를 설정합니다. 값이 클수록 더 많은 요청을 동시에 처리할 수 있으며 더 많은 메모리가 소비됩니다. PHP로 동적 페이지를 사용하는 경우 프로세스당 16~32MB를 할당할 수 있습니다. 보다 정확하게 확인하려면 SSH 연결을 통해 ' 명령을 실행해야 합니다. ps -ylC httpd --정렬:rss'. 출력에서는 RSS 열에서 필요한 점유 메모리 값을 찾을 수 있는 테이블을 받게 되며, 이를 메가바이트 단위로 얻으려면 1024로 나누어야 합니다. 일반 정보메모리에 대해서는 'free -m' 명령을 실행할 수 있습니다. 이제 다음 공식을 사용하여 매개변수 자체의 대략적인 값을 계산할 수 있습니다.

최대 클라이언트≒ (RAM – 로드된_응용프로그램의 크기)/(프로세스의 크기), 또는
최대 클라이언트≥RAM* 70% / Max_memory_size_per_process.

MaxRequestsPerChild – 하위 프로세스가 다시 시작되기 전에 처리할 수 있는 요청 수를 설정합니다. 값은 항상 새 프로세스가 생성되지 않도록 충분히 커야 합니다. 그러나 Apache가 오랫동안 실행될 때 "메모리 누수"가 발생하는 경우 프로세스가 강제 종료되도록 제한(0 – 무제한)하는 것이 좋습니다.

폴더 준비 중

저는 모든 것을 놔두는 것을 별로 좋아하지 않으므로 먼저 프로그램과 웹사이트가 위치할 폴더를 만들어 보겠습니다.
"C:\" 드라이브(또는 더 편리한 위치)에 "Server" 폴더를 만듭니다.
C:\서버\
그 안에 2개의 폴더를 만들어 보겠습니다.
C:\Server\web - 프로그램이 포함될 폴더입니다.
C:\Server\domains – 당사 웹사이트는 이 폴더에 있습니다.
따라서 \web\ 폴더에 apache, php, mysql용 폴더 3개를 만듭니다.
C:\서버\웹\아파치\
C:\서버\웹\php\
C:\서버\웹\mysql\
다음으로 도메인 폴더로 이동하여 \localhost\ 폴더를 만듭니다.
C:\서버\도메인\로컬호스트\
폴더 안에는 2개의 하위 폴더가 있습니다: public_html – 사이트 파일용; 로그 - 대상 텍스트 파일, '누가' 사이트에 접속했는지, 사이트 운영상 어떤 오류가 발생했는지 기록합니다.
C:\서버\도메인\localhost\public_html\
C:\서버\도메인\localhost\로그\
이것으로 폴더 구조가 끝났습니다. Apache 구성으로 넘어 갑시다.

아파치 설정

을 위한 아파치 설치 Apache 자체(Cap)가 필요합니다. Windows 8.1 x64가 있으므로 Apache x64를 설치하겠습니다.
다운로드하려면 다음 링크를 따르세요.
www.apachelounge.com/download/win64
그리고 “httpd-2.4.6-win64.zip”을 다운로드하세요. 우리는 또한 필요합니다 정상 작동"분산 마이크로소프트 패키지비주얼 C++ 2010(x64)". 이렇게 하려면 다음 링크에서 다운로드하세요.
www.microsoft.com/ru-ru/download/details.aspx?id=14632
그리고 설치하세요.
Apache에서 아카이브를 다운로드한 후 열어 보겠습니다. 아카이브를 열면 "Apache24" 폴더가 보일 것입니다. 많은 폴더와 프로그램 파일이 나타나면 이전에 준비한 폴더에 모든 파일의 압축을 풉니다.
C:\서버\웹\아파치\
다음과 같아야 합니다.
C:\서버\웹\아파치\빈\
C:\서버\웹\아파치\cgi-bin\
C:\서버\웹\아파치\conf\
C:\서버\웹\아파치\오류\
C:\서버\웹\아파치\htdocs\
C:\서버\웹\아파치\아이콘\
C:\서버\웹\아파치\포함\
C:\서버\웹\아파치\lib\
C:\서버\웹\아파치\로그\
C:\서버\웹\아파치\수동\
C:\서버\웹\아파치\모듈\
\cgi-bin\, \htdocs\, \icons\ 및 \manual\과 같은 폴더는 필요하지 않습니다. 삭제할 수 있습니다.
폴더로 이동해 보겠습니다.
C:\서버\웹\아파치\conf\
그리고 Apache 구성 파일인 "httpd.conf"를 엽니다. 텍스트 편집기. 이 파일의 각 줄에는 Apache 구성을 위한 지시문이 포함되어 있으며 #(해시) 기호로 시작하는 줄에는 주석과 설명이 포함되어 있습니다. 설정을 시작해 보겠습니다.

아파치 구성 파일

# 아파치 지시어
ServerRoot “C:/Server/web/apache”
# 로컬 IP 포트(표준 80)에서 수신 대기
127.0.0.1:80 듣기
# 다음으로 Apache용 확장 라이브러리를 포함하겠습니다.
LoadModule rewrite_module 모듈/mod_rewrite.so
LoadModule php5_module "C:/Server/web/php/php5apache2_4.dll"
# php 확장자를 가진 파일은 php 스크립트로 처리되어야 한다고 Apache에게 알립니다.
AddHandler 애플리케이션/x-httpd-php .php
# PHP 설정 파일의 위치를 ​​지정합니다.
PHPIniDir “C:/서버/웹/php”
# 서버 이름을 변경합니다
서버 이름 127.0.0.1:80
# 디렉토리 접근 변경

옵션에는 인덱스 포함 FollowSymLinks
모두 무시 허용
모두에서 허용


# 우리 사이트의 디렉토리
DocumentRoot “C:/서버/도메인”
# 우선순위에 따른 인덱스 파일.

디렉토리색인 index.php index.html index.htm index.shtml

# 로그 파일용 폴더
오류 로그 “C:/Server/domains/logs/error.log”
CustomLog “C:/Server/domains/logs/access.log”
# phpMyAdmin에 대한 별칭을 추가하고 cgi에 대한 올바른 별칭을 추가합니다.

별칭 ​​/pma “C:/Server/domains/phpMyAdmin”
ScriptAlias ​​​​/cgi-bin/ “C:/Server/web/apache/cgi-bin/”

# cgi의 경로를 편집합니다

AllowOverride 없음
옵션 없음
모두 부여 필요

# 파일 형식


AddType 텍스트/html .shtml
AddOutputFilter에는 .shtml이 포함됩니다.
AddType 애플리케이션/x-httpd-php .php
AddType 애플리케이션/x-httpd-php-source .phps

# 기타 구성:



BrowserMatch "MSIE 10.0;" 불량_DNT


RequestHeader 설정 해제 DNT env=bad_DNT

이로써 httpd.conf 구성이 완료되었습니다.
Apache httpd.conf 구성 파일에는 추가 구성이 포함되었습니다.
conf/extra/httpd-mpm.conf 포함
conf/extra/httpd-autoindex.conf 포함
conf/extra/httpd-vhosts.conf 포함
conf/extra/httpd-manual.conf 포함
conf/extra/httpd-default.conf 포함
“C:\Server\web\apache\conf\extra\httpd-mpm.conf” 파일을 열고 빠르게 살펴보겠습니다.
# pid 파일을 저장할 위치를 나타냅니다:

Pid파일 “C:/Server/web/apache/logs/httpd.pid”

나머지 매개변수는 변경하지 않고 그대로 둡니다. "httpd-autoindex.conf" 파일을 열고 경로가 있는 줄만 변경해 보겠습니다.
별칭 ​​/icons/ "c:/Server/web/apache/icons/"

옵션 인덱스 MultiView
AllowOverride 없음
모두 부여 필요

Apache 호스트 파일

# 도메인 localhost를 예로 사용

DocumentRoot "C:/Server/domains/localhost/public_html"
서버 이름 로컬 호스트
오류 로그 "C:/Server/domains/localhost/logs/error.log"
CustomLog "C:/Server/domains/localhost/logs/access.log" 공통


# 미래를 위해 phpMyAdmin을 추가하세요(폴더를 만드는 것을 잊지 마세요)

DocumentRoot "C:/Server/domains/phpmyadmin/public_html"
서버 이름 로컬 호스트
오류 로그 "C:/Server/domains/phpmyadmin/logs/error.log"
CustomLog "C:/Server/domains/phpmyadmin/logs/access.log" 공통

이것으로 파일 편집이 완료됩니다. 다음으로 나머지 파일에서는 경로만 편집합니다.
파일 "httpd-manual.conf":
AliasMatch ^/manual(?:/(?:da|de|en|es|fr|ja|ko|pt-br|ru|tr|zh-cn))?(/.*)?$ "C:/ 서버/웹/아파치/수동$1"

"httpd-default.conf" 파일은 변경되지 않습니다. 이로써 Apache 구성 설정이 완료되었습니다.

PHP 설정

Windows 8.1 x64 및 Apache x64가 설치 및 구성되었으므로 php는 x64여야 합니다.
사이트로 이동해 보겠습니다.

최신 버전의 PHP 아카이브를 다운로드하세요. 모듈로 PHP가 필요합니다. 이렇게 하려면 Thread Safe를 다운로드하세요. 아카이브를 다운로드한 후 이를 열고 내용을 "C:\Server\web\php\" 폴더로 전송합니다. 2개를 만들어보자 빈 폴더"tmp" 및 "업로드". 다음으로, 이 폴더에서 "php.ini-development" 파일을 찾아 이름을 "php.ini"로 바꿉니다. 텍스트 편집기에서 파일을 열고 지시문을 변경합니다(파일의 주석 행은 세미콜론으로 시작함).

php.ini 설정

short_open_tag=켜짐
zlib.output_compression = 켜기
post_max_size = 64M
include_path = ".;C:\서버\웹\php\includes"
Extension_dir = "C:/서버/웹/php/ext"
upload_tmp_dir = "C:/서버/웹/php/업로드"
upload_max_filesize = 64M
확장자=php_bz2.dll
확장자=php_curl.dll
확장자=php_gd2.dll
확장자=php_mbstring.dll
확장자=php_mysql.dll
확장자=php_mysqli.dll
확장자=php_pdo_mysql.dll
확장자=php_sockets.dll
확장자=php_sqlite3.dll
; 섹션에는 서버의 시간대(http://php.net/date.timezone)가 표시됩니다.
date.timezone = "아시아/예카테린부르크"
session.save_path = "시작:/서버/웹/php/tmp/"


이것으로 php 설정이 완료되었습니다.

MySQL 설정

Windows에서 MySQL x64를 소켓으로 설치합니다. 다음에서 아카이브를 다운로드하세요. 최신 버전 MySQL x64:
dev.mysql.com/downloads/mysql
페이지 하단에서 Windows(x86, 64비트), ZIP 아카이브를 찾아 “다운로드” 버튼을 클릭하세요. 사이트의 등록 페이지로 리디렉션됩니다. MySQL 아카이브 다운로드를 시작하려면 페이지 하단의 "아니요, 다운로드를 시작하세요"를 클릭하세요. 아카이브를 다운로드한 후 이를 열고 폴더의 모든 내용을 "C:\Server\web\mysql\"로 전송합니다.
이제 MySQL 설정 파일(“C:\Server\web\mysql\my-default.ini”)을 엽니다. 우리는 모든 내용을 삭제하고 거기에 데이터를 입력합니다.
포트=3306
호스트=127.0.0.1
포트=3306
바인드 주소=127.0.0.1
명명된 파이프 활성화
basedir="C:/Server/web/mysql/"
datadir="C:/Server/web/mysql/data/"
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
그게 다야. 구성 파일에서 우리는 스크립트가 로컬 IP와 소켓 연결을 통해 서버에 액세스할 수 있음을 표시했습니다.
이제 할 일이 조금 남았습니다. 이를 위해 시스템 변수 "PATH"에 Apache 및 MySQL에 대한 경로를 추가해 보겠습니다.
  1. 마우스 커서를 화면 오른쪽 하단으로 드래그하세요.
  2. 검색 아이콘을 클릭하고 제어판을 입력하세요.
  3. 시스템->고급( 추가 옵션시스템)
  4. 시스템 변수 메뉴에서 환경 변수를 선택하고 PATH 변수를 찾아 클릭합니다.
  5. Apache 및 MySQL에 대한 경로를 입력하십시오.
;C:\서버\웹\아파치\빈;C:\서버\웹\mysql\bin
다음으로 Apache 및 MySQL 서비스를 설치하겠습니다. 이렇게 하려면 키보드 단축키 "Win ​​+ X"를 사용하면 왼쪽 하단에 드롭다운 메뉴가 나타납니다. "명령 프롬프트(관리자)"를 선택합니다.
안에 명령줄 Apache를 설치하려면 다음을 입력하세요.
httpd -k 설치
MySQL을 설치하려면:
mysqld.exe --install MySQL --defaults-file=”C:\Server\web\mysql\my-default.ini”
MySQL 사용자의 비밀번호를 설정해 보겠습니다. 이를 위해 서비스를 시작하겠습니다. MySQL 명령:
NET 시작 MySQL
서비스가 시작된 후 비밀번호를 설정하십시오.
mysqladmin –u 루트 비밀번호 YourPassword
“httpd-vhosts.conf” 파일에 두 개의 사이트를 등록했습니다. 브라우저가 이를 볼 수 있도록 하려면 사이트 이름을 “hosts” 파일에 추가해야 합니다. 폴더로 이동해 보겠습니다.
C:\Windows\System32\Drivers\etc\
텍스트 편집기로 "hosts" 파일을 열고(관리자 권한으로 실행) 파일 끝에 다음을 추가합니다.
127.0.0.1 로컬호스트
127.0.0.1 phpmyadmin
파일을 저장합니다.
Apache 및 MySQL 서비스 시작 및 중지의 편의를 위해 start-server.bat 및 stop-server.bat 파일을 생성합니다.
이를 위해 “C:\Server\” 폴더로 이동하여 이 두 파일을 생성해 보겠습니다.
"start-server.bat"의 내용:
@에코 꺼짐
NET 시작 Apache2.4
NET 시작 MySQL
"stop-server.bat"의 내용:
@에코 꺼짐
NET 중지 Apache2.4
NET 중지 MySQL
이제 Apache, PHP, MySQL 설정이 완료되었습니다. 서버를 테스트하기 위해 "C:\Server\domains\localhost\public_html" 폴더의 내용으로 "index.php" 파일을 생성해 보겠습니다.

다음으로 서버를 시작하겠습니다. 이를 위해 관리자 권한으로 "start-server.bat"를 실행하세요. 서버가 시작되면 브라우저를 열고 주소 표시줄에 "localhost"를 입력하세요.
PHP 정보 페이지가 나타납니다.

Linux에 웹 서버 설치:

  • Ubuntu가 있는 경우 "Ubuntu 16.10에 PHP 7, MariaDB/MySQL 및 phpMyAdmin(LAMP)을 사용하여 Apache 웹 서버를 설치하는 방법" 기사가 적합합니다.
  • Arch Linux를 사용하는 경우 "Arch Linux/BlackArch에 LAMP(Linux, Apache, MySQL/MariaDB, PHP7 및 phpMyAdmin) 설치" 기사가 적합합니다.

로컬 서버는 매우 유용한 도구입니다. 웹마스터, PHP 프로그래머, 침투 테스터에게 확실히 유용할 것입니다. 일반적인 웹 서버 설치에 포함된 모든 프로그램은 무료이며 오픈 소스입니다. 로컬 웹 서버는 최소한의 리소스를 소비하며 실제로 설치 및 구성이 매우 쉽습니다.

이 지침에서는 기성 어셈블리를 사용하지 않고 로컬 웹 서버를 설치하는 방법을 알려줍니다. 이 방법에는 장점이 있습니다. 그 중 가장 중요한 것은 설치하는 항목을 완벽하게 제어할 수 있다는 것입니다. 최신 버전의 소프트웨어를 사용할 수 있는 능력.

지침을 정확하게 따르면 모든 것이 확실히 효과가 있을 것입니다! Windows XP를 사용하는 사용자를 제외하고 이 운영 체제를 사용하는 경우 특별한 지침이 제공됩니다.

Windows 10에 설치하는 예를 보여드리겠습니다. 하지만 다른 버전의 Windows를 사용하는 경우에는 걱정하지 마세요. 절차는 모든 곳에서 동일합니다. 나는 글을 쓰는 시점에 프로그램의 최신(최신) 버전을 다운로드하겠습니다. 읽을 때쯤이면 새 버전이 출시될 예정이므로 다운로드하세요.

설치 단계:

다음과 같은 경우에도 유용할 수 있습니다.

1. 준비(서버에 포함된 프로그램 다운로드, 서버 구조 생성)

우리는 다음이 필요합니다:

  • 아파치(직접 웹 서버)
  • PHP- PHP 프로그램을 실행하기 위한 환경(거의 모든 웹사이트에 필요)
  • MySQL- 데이터베이스 관리 시스템(대부분의 웹사이트에서 필요함)
  • phpMyAdmin- 데이터베이스 관리를 위한 매우 편리한 도구

Apache 개발자의 공식 웹사이트는 httpd.apache.org입니다. 이 사이트에서 Apache를 다운로드할 수 있습니다. 그러나 공식 버전은 이전 컴파일러를 사용하여 구축되었으므로 새 버전의 PHP에서는 작동하지 않습니다. PHP 작성자는 apachelounge.com/download에서 Apache를 권장합니다. 따라서 이 지침에서는 apachelounge.com/download 사이트에서 Apache를 다운로드합니다.

64비트 버전의 Windows를 사용하는 경우 64비트 버전과 32비트 버전의 구성 요소를 모두 선택할 수 있습니다. 주요 규칙은 모든 구성 요소의 비트 크기가 동일해야 한다는 것입니다. 32비트 버전의 Windows를 사용하는 경우 모든 구성 요소는 32비트여야 합니다. 이는 PHP로 작성된 phpMyAdmin에는 적용되지 않습니다. PHP 프로그램의 경우 비트 심도 개념이 적용되지 않습니다.

MySQL의 무료 버전은 다음과 같습니다. MySQL 커뮤니티 서버. 페이지에서 다운로드 가능합니다. 같은 페이지에 실행 가능한 설치 프로그램이 있지만 ZIP 아카이브를 다운로드하는 것이 좋습니다. 다운로드 페이지에서 기존 계정에 등록하거나 로그인하라는 메시지가 표시되지만 반드시 그럴 필요는 없습니다. 링크를 클릭하세요." 아니요, 그냥 다운로드를 시작하세요" 비트 심도에 주의하세요.

또한 C++ 재배포 가능 Visual Studio 2017 파일도 필요합니다. Visual Studio 2017(또는 기타 이상)용 Visual C++ 재배포 가능 구성 요소인 경우 링크(64비트 버전을 다운로드하기 위한 직접 링크, 32비트 버전을 다운로드하기 위한 직접 링크)를 사용하여 공식 Microsoft 웹사이트에서 다운로드할 수 있습니다. 이 파일은 웹 서버에 필요합니다. 그리고 MySQL에는 Visual Studio 2015용 Visual C++ 재배포 가능 패키지가 필요합니다. 에서 다운로드할 수 있습니다.

그래서 다음 파일을 다운로드했습니다.

  • httpd-2.4.29-Win64-VC15.zip
  • php-7.2.0-Win32-VC15-x64.zip
  • mysql-8.0.11-winx64.zip
  • phpMyAdmin-4.7.6-모든 언어.zip
  • vc_redist.x64.exe
  • vcredist_x64.exe

파일 설치 vc_redist.x64.exe그리고 vcredist_x64.exe.

2. 웹 서버 구조 생성

서버의 디렉터리 구조를 만들어 보겠습니다. 주요 아이디어는 실행 파일과 웹 사이트 파일을 데이터베이스로 분리하는 것입니다. 백업을 포함한 서버 유지 관리에 편리합니다.

디스크 루트에서 기음:\디렉토리를 생성하다 섬기는 사람. 이 디렉터리에 2개의 하위 디렉터리를 만듭니다. 큰 상자(실행 파일의 경우) 및 데이터.

디렉토리로 이동 데이터거기에 하위 폴더를 만듭니다 DB(데이터베이스의 경우) 및 htdocs(웹사이트의 경우).

디렉토리로 이동 C:\서버\데이터\DB\거기에 빈 폴더를 만듭니다 데이터.

3. 아파치 2.4 설치

다운로드한 아카이브의 내용(보다 정확하게는 디렉토리만 아파치24), 압축을 풀다 C:\서버\bin\.

디렉토리로 이동 c:\서버\bin\Apache24\conf\그리고 파일을 열어보세요 httpd.conf모든 텍스트 편집기.

그 안에서 우리는 여러 줄을 교체해야 합니다.

SRVROOT "c:/Apache24" 정의

SRVROOT "c:/Server/bin/Apache24" 정의

#서버이름 www.example.com:80

서버 이름 로컬 호스트

DocumentRoot "$(SRVROOT)/htdocs"

DocumentRoot "c:/Server/data/htdocs/"

디렉토리색인 index.html

디렉토리색인 index.php index.html index.htm

# AllowOverride는 .htaccess 파일에 어떤 지시문을 배치할 수 있는지 제어합니다.

# "All", "None" 또는 키워드의 조합일 수 있습니다: # AllowOverride FileInfo AuthConfig Limit # AllowOverride None

# AllowOverride는 .htaccess 파일에 어떤 지시문을 배치할 수 있는지 제어합니다.

# "All", "None" 또는 키워드의 조합일 수 있습니다: # AllowOverride FileInfo AuthConfig Limit # AllowOverride All

#LoadModule rewrite_module 모듈/mod_rewrite.so

LoadModule rewrite_module 모듈/mod_rewrite.so

파일을 저장하고 닫습니다. 이제 Apache 설정이 완료되었습니다! 변경된 각 지시어에 대한 설명은 이 페이지에서 확인할 수 있습니다.

명령줄을 엽니다(Win+X 키를 동시에 눌러 수행할 수 있음). 거기에서 Windows PowerShell(관리자)을 선택하고 복사합니다.

C:\Server\bin\Apache24\bin\httpd.exe -k 설치

Apache 방화벽으로부터 요청이 수신되면 허용을 클릭합니다.

이제 명령줄에 입력하세요.

C:\Server\bin\Apache24\bin\httpd.exe -k 시작

그리고 Enter를 누르세요.

사용자 이름으로 root를 입력합니다. 비밀번호 필드를 비워두세요. 모든 것이 올바르게 완료되면 모든 것이 다음과 같이 보일 것입니다. 7. 서버 이용 및 데이터 백업카탈로그에서

c:\서버\데이터\htdocs\

폴더와 파일을 만듭니다. 예를 들면 다음과 같습니다. c:\Server\data\htdocs\test\ajax.php - 따라서 이 파일은 http://localhost/test/ajax.php 등에서 사용할 수 있습니다..

모든 사이트와 데이터베이스의 전체 백업을 생성하려면 디렉터리를 복사하기만 하면 됩니다. 큰 상자 C:\서버\데이터\

모듈을 업데이트하기 전에 폴더를 백업하십시오.

  • - 문제가 발생할 경우 이전 버전으로 쉽게 롤백할 수 있습니다.
  • 서버를 다시 설치하거나 업데이트할 때 구성 파일을 다시 구성해야 합니다. 이러한 파일의 복사본이 있으면 프로세스 속도가 크게 향상될 수 있습니다. 다음 파일을 백업하는 것이 좋습니다.
  • c:\서버\bin\Apache24\conf\httpd.conf
  • c:\서버\bin\mysql-8.0\my.ini

c:\서버\bin\PHP\php.ini

c:\서버\데이터\htdocs\phpMyAdmin\config.inc.php

모든 설정이 여기에 저장됩니다.

8. 추가 PHP 설정

스크립트가 사용할 수 있는 최대 메모리 양을 설정합니다.

Post_max_size = 8M

POST 메소드를 사용하여 전송할 때 허용되는 최대 데이터 양을 설정합니다.

;default_charset = "UTF-8"

인코딩을 설정합니다(기본적으로 해당 줄은 주석 처리되어 있습니다).

Upload_max_filesize = 2M

서버에 업로드되는 파일의 최대 크기입니다. 크기는 처음에는 매우 작은 크기(단 2MB)로 설정되어 있습니다. 예를 들어, phpMyAdmin에 데이터베이스를 로드하는 경우 이 설정 항목이 변경될 때까지 2MB보다 큰 파일을 업로드할 수 없습니다.

Max_file_uploads = 20

한 번에 업로드할 수 있는 최대 파일 수

Max_execution_time = 30

하나의 스크립트에 대한 최대 실행 시간

이러한 설정을 변경하는 것은 전적으로 선택 사항이지만 이에 대해 알아두면 유용합니다.

9. phpMyAdmin에 대한 추가 설정

우리는 이미 phpMyAdmin을 구성했으며 대부분의 사람들에게는 기본 기능으로 충분합니다. 그러나 phpMyAdmin 시작 페이지에는 "phpMyAdmin의 추가 기능이 완전히 구성되지 않았으며 일부 기능이 비활성화되었습니다."라는 메시지가 표시됩니다.

새로운 기능은 다음과 같습니다.

  • (관련) 테이블 간의 관계를 표시합니다.
  • 테이블에 대한 정보 추가(버전 2.3.0부터 관련 키 위로 커서를 이동할 때 도구 설명에 어떤 열이 표시되는지 특수 테이블 'table_info'에 설명할 수 있음)
  • PDF 다이어그램 생성(버전 2.3.0부터 phpMyAdmin에서 테이블 간의 관계를 보여주는 PDF 페이지를 생성할 수 있음)
  • 열 주석 표시(버전 2.3.0부터 각 테이블의 각 열을 설명하는 주석을 작성할 수 있습니다. 그리고 해당 주석은 "인쇄 미리 보기"에 표시됩니다. 버전 2.5.0부터 주석은 테이블 자체 페이지와 테이블에서 사용됩니다. 열(속성 테이블) 위에 도구 설명으로 표시되거나 보기 모드의 테이블 헤더에 포함된 모드 보기 테이블 덤프에도 표시될 수 있습니다.
  • 북마크 생성(버전 2.2.0부터 phpMyAdmin을 사용하면 사용자가 쿼리를 북마크에 추가할 수 있습니다. 이는 자주 사용하는 쿼리에 유용할 수 있습니다)
  • SQL 쿼리 기록(버전 2.5.0부터 phpMyAdmin 인터페이스를 통해 생성된 모든 SQL 쿼리 기록을 저장할 수 있음)
  • 디자이너(버전 2.10.0부터 디자이너 도구를 사용할 수 있으며 이를 통해 테이블 ​​간의 관계를 시각적으로 관리할 수 있습니다)
  • 최근에 사용한 테이블에 대한 정보
  • 자주 사용하는 테이블의 인터페이스를 사용자 정의합니다.
  • 추적(버전 3.3.x부터 추적 메커니즘을 사용할 수 있습니다. phpMyAdmin에서 실행된 모든 SQL 명령을 추적하는 데 도움이 됩니다. 데이터 조작 기록 및 명령 기록이 지원됩니다. 활성화되면 테이블 버전을 관리할 수 있습니다.)
  • 사용자 설정(버전 3.4.x부터 phpMyAdmin을 사용하면 사용자가 대부분의 설정을 지정하고 이를 데이터베이스에 저장할 수 있습니다)
  • 사용자 정의 메뉴(버전 4.1.0부터 할당된 메뉴 항목에만 접근할 수 있는 사용자 그룹을 생성할 수 있습니다. 사용자는 그룹에 할당될 수 있으며 해당 그룹에서 사용 가능한 메뉴 항목만 볼 수 있습니다)
  • 탐색 항목 숨기기/표시(버전 4.1.0부터 탐색 트리에서 항목을 숨기거나 표시할 수 있습니다).
  • 그리고 다른 사람들

이제 이러한 추가 기능을 완전히 구성하겠습니다. http://localhost/phpmyadmin/chk_rel.php 링크로 이동하여 "데이터베이스 생성"을 클릭하세요. 그 후에는 모든 새로운 기능이 활성화됩니다.

새로운 기능에 대한 몇 가지 스크린샷:

1) 디자이너

2) 추적

10. 메일 플러그 설치

C:\Server\bin\ 디렉터리에 Sendmail이라는 새 디렉터리를 만듭니다. 이제 이 디렉터리에 다음 내용을 포함하는 sendmail.php 파일을 만듭니다.

#!/usr/bin/env PHP

PHP 구성 파일을 엽니다. 여기에 있습니다. C:\서버\bin\PHP\php.ini. 그리고 거기에 한 줄을 추가합니다.

Sendmail_path = "C:\서버\bin\PHP\php.exe C:\서버\bin\Sendmail\sendmail.php --dir C:\서버\bin\Sendmail\emails"

파일을 저장하고 서버를 다시 시작하십시오. 좋습니다. 이제 보낸 모든 이메일이 디렉터리에 저장됩니다. C:\서버\bin\Sendmail\emails\

편지에는 확장자가 있습니다. .eml예를 들어 프로그램을 통해 열 수 있습니다. 천둥새. 또는 일반 텍스트 편집기.

11. Windows에서 PATH에 PHP 디렉터리 추가하기

이것이 완료되지 않으면 php_curl.dll, php_intl.dll, php_ldap.dll, php_pdo_pgsql.dll 및 php_pgsql.dll을 포함한 일부 PHP 모듈에 문제가 있을 수 있습니다. 적어도 서버가 시작될 때마다 로그에 다음 내용이 나타납니다.

PHP 경고: PHP 시작: 동적 라이브러리 "C:\\Server\\bin\\PHP\\ext\\php_curl.dll"을 로드할 수 없습니다. - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\ xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\ xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\ xbf\xbd\xef\xbf\xbd.\r\n 0행의 알 수 없음 PHP 경고: PHP 시작: 동적 라이브러리 "C:\\Server\\bin\\PHP\\ext\\php_intl.dll을 로드할 수 없습니다. " - \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef \xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in unknown on line 0 PHP 경고: PHP 시작: 동적 라이브러리를 로드할 수 없습니다. " C:\\Server\\bin\\PHP\\ext\\php_ldap.dll" - \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\ xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\ xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r 0행에 알 수 없는 \n PHP 경고: PHP 시작: 동적 라이브러리 "C:\\Server\\bin\\PHP\\ext\\php_pdo_pgsql.dll" - \xef\xbf\xbd\xef\xbf를 로드할 수 없습니다. \xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef \xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0 PHP 경고: PHP 시작: 동적 라이브러리 "C:\\Server\\bin\\PHP\를 로드할 수 없습니다. \ext\\php_pgsql.dll" - \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\ xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\ xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n 0행에 알 수 없음

이러한 경고를 방지하려면 시스템 환경 변수에 PHP 경로를 추가해야 합니다.

시작 버튼(또는 Windows 10에서는 무엇이라고 부르나요?)을 클릭하고 " 시스템 환경 변수 변경» 해당 설정 창을 엽니다.

거기에서 "를 클릭하세요. 환경 변수»:

창문에서 " 시스템 변수» 찾아서 클릭하세요 을 클릭한 다음 " 변화»:

항목을 맨 위로 이동합니다.

모든 창을 닫고 변경 사항을 저장합니다.

서버를 다시 시작하십시오.

12. 정지, 느린 트래픽 및/또는 서버 오류 비동기 AcceptEx 실패

로드 없이도 서버가 "정지"되는 경우 다시 시작할 때까지 웹 페이지가 표시되지 않으며 서버 로그에 Asynchronous AcceptEx failed 오류가 있습니다.

AH00455: Apache/2.4.9 (Win64) PHP/5.5.13 구성됨 -- 정상 작업 재개 AH00456: Apache Lounge VC11 서버 구축: 2014년 3월 16일 12:42:59 AH00094: 명령줄: "c:\\Server\\ bin\\Apache24\\bin\\httpd.exe -d C:/Server/bin/Apache24" AH00418: 상위: 하위 프로세스 4952를 생성했습니다. AH00354: 하위: 64개의 작업자 스레드를 시작합니다.

(OS 64)지정한 네트워크 이름은 더 이상 사용할 수 없습니다. : AH00341: winnt_accept: 비동기 AcceptEx가 실패했습니다.

(OS 64)지정한 네트워크 이름은 더 이상 사용할 수 없습니다. : AH00341: winnt_accept: 비동기 AcceptEx가 실패했습니다.

(OS 64)지정한 네트워크 이름은 더 이상 사용할 수 없습니다. : AH00341: winnt_accept: 비동기 AcceptEx가 실패했습니다.

(OS 64)지정한 네트워크 이름은 더 이상 사용할 수 없습니다. : AH00341: winnt_accept: 비동기 AcceptEx가 실패했습니다.

(OS 64)지정한 네트워크 이름은 더 이상 사용할 수 없습니다. : AH00341: winnt_accept: 비동기 AcceptEx가 실패했습니다.

(OS 64)지정한 네트워크 이름은 더 이상 사용할 수 없습니다. : AH00341: winnt_accept: 비동기 AcceptEx가 실패했습니다.

그런 다음 Apache 구성 파일에 추가합니다.

AcceptFilter http 없음 AcceptFilter https 없음 EnableSendfile 꺼짐 EnableMMAP 꺼짐

13. Windows의 Apache 웹 서버에서 cURL 구성

cURL이 무엇인지 모른다면 필요하지 않습니다. 저것들. 이 단계를 건너뛰셔도 됩니다.

cURL은 매우 많은 수의 프로토콜을 사용하여 원격 서버와 데이터를 교환할 수 있는 콘솔 유틸리티입니다. cURL은 쿠키를 사용할 수 있으며 인증을 지원합니다. 웹 애플리케이션에 cURL이 필요한 경우 종속성에서 이를 지정해야 합니다. 널리 사용되는 많은 애플리케이션에는 cURL이 필요하지 않습니다. 예를 들어 phpMyAdmin 및 WordPress에는 cURL을 구성할 필요가 없습니다. C:\서버\bin\PHP\php.ini cURL이 올바르게 구성되지 않으면 다음과 같은 오류가 발생합니다. 치명적인 오류: 정의되지 않은 함수 cur_multi_init() 호출...

컬 오류: SSL 인증서 문제: 로컬 발급자 인증서를 가져올 수 없습니다. C:\서버\bin\. 이들은 Apache, MySQL 및 PHP입니다. 서버 운영을 담당하지만 공식 웹사이트에서 다운로드하여 언제든지 다시 구성할 수 있는 프로그램입니다.

백업 복사본을 만들려면(예: 서버를 업그레이드하기 전) 서비스를 중지하세요.

C:\Server\bin\Apache24\bin\httpd.exe -k stop net stop mysql

그리고 폴더를 안전한 곳에 복사하세요. C:\서버\bin\.

그런데 전체 서버를 복사할 수 있습니다. 접는 사람 C:\서버\- 이 경우 실행 파일과 데이터(데이터베이스, 웹사이트)의 백업 복사본을 동시에 받게 됩니다.

복사가 완료되면 서비스를 다시 시작합니다.

C:\Server\bin\Apache24\bin\httpd.exe -k start net start mysql

15. 서버 업데이트

웹 서버를 구성하는 모든 구성 요소는 활발하게 개발되고 있으며 정기적으로 새 버전이 출시됩니다. 새 버전이 출시되면 하나의 구성 요소(예: PHP)를 업데이트하거나 한 번에 여러 개를 업데이트할 수 있습니다.

서버 삭제

더 이상 서버가 필요하지 않은 경우또는 다시 설치하려면 명령줄에서 순차적으로 실행하여 서비스를 중지하고 자동 시작에서 제거하십시오.

C:\Server\bin\Apache24\bin\httpd.exe -k 중지 c:\Server\bin\Apache24\bin\httpd.exe -k 제거 net stop mysql c:\Server\bin\mysql-8.0\bin\ mysqld --제거

서버 파일을 삭제하려면 폴더를 삭제하세요. C:\서버\. 경고: 이렇게 하면 모든 데이터베이스와 사이트가 삭제됩니다.

Windows 해킹으로부터 Apache 웹 서버를 보호하는 방법

PHP(버전 선택 가능), MySQL 및 phpMyAdmin. 이 사이트는 바로 여기에 호스팅되어 있습니다. 즉각 반응하고 자격을 갖춘 기술 지원, 한 번의 클릭으로 WordPress 및 기타 웹 응용 프로그램 설치,

Apache는 가장 널리 사용되는 무료 웹 서버입니다. 2016년 기준 전체 인터넷 사이트 중 33%, 약 3040억개 사이트에서 사용되고 있다. 이 웹 서버는 인기 있는 NCSA 서버를 대체하기 위해 1995년에 개발되었으며 많은 문제를 해결했습니다. 소문에 따르면 그의 이름은 NCSA 오류를 수정하던 중 엉성한 이름에서 유래했다고 합니다. 이제는 Windows, Linux 및 MacOS를 지원하고 충분한 유연성, 사용자 정의 및 기능을 제공하는 크로스 플랫폼 프로그램입니다. 이 프로그램은 모듈식 구조로 되어 있어 모듈을 사용하여 기능을 거의 무한정 확장할 수 있습니다.

몇 가지 명령을 사용하여 Linux에 Apache를 설치할 수 있지만 이 프로그램은 변경할 수 있는 매우 많은 설정과 활성화되면 더 잘 작동하는 모듈을 제공합니다. 이 문서에서는 Apache 설치 및 구성을 다루며 Ubuntu를 기본 시스템으로 사용하지만 다른 배포판에서도 이 단계를 반복할 수 있습니다. 프로그램 자체 설치뿐만 아니라 구성 방법, Apache 가상 호스트 설정 방법 및 가장 유용한 모듈도 살펴보겠습니다.

현재 프로그램의 최신 버전은 2.4이므로 Apache 2.4 설정을 고려해 보겠습니다. 이미 말했듯이 Linux에서는 프로그램이 말 그대로 몇 가지 명령으로 설치됩니다. Ubuntu에 설치하려면 먼저 시스템을 최신 버전으로 업데이트하세요.

sudo 적절한 업데이트
$ sudo 적절한 업그레이드

그런 다음 apache2를 설치하십시오.

sudo apt 설치 apache2

다른 배포판에서는 프로그램 패키지를 this 또는 httpd라고 부르며 설치해도 문제가 발생하지 않습니다.

설치가 완료된 후 컴퓨터를 켠 후 수동으로 시작하지 않도록 웹 서버를 시작에 추가해야 합니다.

sudo systemctl apache2 활성화

아파치 설정

Apache 구성이 단일 파일에 저장되던 시대는 지났습니다. 하지만 맞습니다. 모든 것이 자체 디렉터리에 배포되면 구성 파일을 탐색하는 것이 더 쉽습니다.

모든 설정은 /etc/apache/ 폴더에 포함되어 있습니다:

  • 파일 /etc/apache2/apache2.conf기본 설정을 담당합니다.
  • /etc/apache2/conf-available/*- 추가 웹 서버 설정
  • /etc/apache2/mods-available/*- 모듈 설정
  • /etc/apache2/sites-available/*- 가상 호스트 설정
  • /etc/apache2/ports.conf- 아파치가 실행되는 포트
  • /etc/apache2/envvars

보시다시피 conf, mods 및 site에 대한 두 개의 폴더가 있습니다. 이는 사용 가능하며 활성화되어 있습니다. 모듈이나 호스트를 활성화하면 사용 가능한 폴더에서 활성화 폴더로 연결되는 심볼릭 링크가 생성됩니다. 따라서 사용 가능한 폴더에서 설정을 수행하는 것이 좋습니다. 일반적으로 말하면, 이러한 폴더 없이도 할 수 있고 모든 것을 가져와서 구식 방식으로 하나의 파일에 덤프하면 모든 것이 작동하지만 지금은 아무도 그렇게 하지 않습니다.

먼저 기본 구성 파일을 살펴보겠습니다.

vi /eta/apache2/apache2.conf

시간 초과- 서버가 중단된 데이터 전송 또는 수신을 계속 시도하는 시간을 나타냅니다. 160초면 충분합니다.

연결 유지 켜기- 매우 유용한 매개변수로, 예를 들어 HTML 페이지 자체뿐만 아니라 이미지 및 CSS 파일과 같은 여러 파일을 하나의 연결로 전송할 수 있습니다.

MaxKeepAlive요청 100- 연결당 최대 요청 수는 많을수록 좋습니다.

KeepAliveTimeout 5- 연결 시간 초과는 일반적으로 페이지를 로드하는 데 5~10초이면 충분하므로 더 이상 설정할 필요가 없지만 모든 데이터가 로드되기 전에 연결을 끊을 필요도 없습니다.

사용자, 그룹- 프로그램이 실행될 사용자 및 그룹.

호스트 이름 조회- IP 주소 대신 로그에 도메인 이름을 기록합니다. 작업 속도를 높이려면 비활성화하는 것이 좋습니다.

로그레벨- 오류 로깅 수준. 기본적으로 경고가 사용되지만 로그가 더 느리게 채워지도록 하려면 오류를 활성화하면 됩니다.

포함하다- 모든 include 지시문은 위에서 설명한 구성 파일 연결을 담당합니다.

디렉토리 지시문은 파일 시스템의 특정 디렉토리에 대한 액세스 권한을 설정하는 역할을 합니다. 구문은 다음과 같습니다.


매개변수 값

여기에서는 다음과 같은 기본 옵션을 사용할 수 있습니다.

재정의 허용- .htaccess 파일을 이 디렉터리에서 읽어야 하는지 여부를 나타냅니다. 이 파일은 동일한 설정 파일이며 동일한 구문을 갖습니다. 모두 - 모든 것을 허용하고, 없음 - 이 파일을 읽지 않습니다.

문서 루트- 사용자에게 표시하기 위해 어떤 폴더 문서를 가져와야 하는지 설정합니다.

옵션- 이 폴더에서 어떤 웹 서버 기능을 허용해야 하는지 나타냅니다. 예를 들어 All - 모든 것을 허용하고, FollowSymLinks - 기호 링크를 따르고, Indexes - 인덱스 파일이 없는 경우 디렉터리의 내용을 표시합니다.

필요하다- 이 디렉토리에 액세스할 수 있는 사용자를 설정합니다. 모두 거부 필요 - 모든 사람을 거부하고, 모두 허용 필요 - 모든 사람을 허용합니다. 사용자를 명시적으로 지정하려면 all 대신 user 또는 group 지시문을 사용할 수 있습니다.

주문하다- 디렉토리에 대한 액세스를 제어할 수 있습니다. 허용, 거부 - 지정된 항목을 제외한 모든 사람을 허용하거나 거부, 허용 - 지정된 항목을 제외한 모든 사람을 거부합니다..ru의 두 가지 값을 허용합니다.

기본값에 만족하므로 여기서는 이러한 모든 지시문을 사용하지 않지만 .htaccess 파일에서는 매우 유용할 수 있습니다.

/etc/apache2/ports.conf 파일이 남았습니다.

여기에는 프로그램이 어떤 포트에서 작동해야 하는지 알려주는 Listen 지시문 하나만 포함되어 있습니다.

마지막 파일은 /etc/apache2/envvars입니다. 이 파일을 사용할 가능성은 거의 없으며 다른 구성 파일에서 사용할 수 있는 변수가 포함되어 있습니다.

htaccess를 통해 Apache 서버 설정

.htaccess 파일을 사용하면 Ubuntu 웹 서버가 특정 디렉터리에서 작동하도록 구성할 수 있습니다. 이 파일에 지정된 모든 명령어는 마치 태그에 래핑된 것처럼 실행됩니다. 만약 그것들이 메인 파일에 있었다면.

서버가 .htaccess의 지침을 읽으려면 기본 또는 가상 호스트 파일에 있는 이 폴더의 설정에 다음이 포함되어서는 안 된다는 점에 유의하는 것이 중요합니다. AllowOverride 없음모든 설정이 작동하려면 필요한 모두 무시 허용.

그렇지 않으면 모듈 활성화부터 단순히 폴더 액세스 변경까지 Apache 서버의 모든 구성을 여기에서 수행할 수 있습니다. 우리는 이미 모든 매개변수를 고려했으므로 몇 가지 예를 들어보겠습니다.

주문 거부, 허용
모두 거부

구성 폴더에 적용하는 데 중요한 이 폴더에 대한 모든 사람의 액세스를 거부합니다. 대부분의 경우 .htaccess는 요청을 즉시 변경할 수 있는 mod_rewrite 모듈과 함께 작동하는 데 사용됩니다.

RewriteEngine 켜기
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

그러나 이는 매우 광범위한 주제이므로 이 기사의 범위를 벗어납니다.

Apache 모듈 구성

이미 말했듯이 Apache는 모듈식 프로그램이므로 모듈을 사용하여 기능을 확장할 수 있습니다. 사용 가능한 모든 로더 모듈과 모듈 구성 파일은 /etc/apache/mods-available 폴더에 있습니다. 그리고 /etc/apache/mods-enable에서 활성화됩니다.

하지만 이러한 폴더의 내용을 분석할 필요는 없습니다. 모듈을 추가하여 Apache 2.4를 구성하는 작업은 특수 명령을 사용하여 수행됩니다. 다음 명령을 사용하여 실행 중인 모든 모듈을 볼 수 있습니다.

다음 명령을 사용하여 모듈을 활성화할 수 있습니다.

sudo a2enmod 모듈_이름

그리고 다음을 비활성화합니다.

sudo a2dismod 모듈 이름

모듈을 활성화 또는 비활성화한 후에는 Apache를 다시 시작해야 합니다.

sudo systemctl 다시 시작 apache2

이러한 명령 중 하나가 실행되면 확장명이 load인 모듈 파일에 대한 심볼릭 링크가 mods-available 디렉터리에 생성되거나 삭제됩니다. 이 파일의 내용을 보면 한 줄만 있습니다. 예를 들어:

vi /etc/apache2/mods-available/deflate.load

이는 apache2.conf 파일에 이 행을 추가하기만 하면 모듈이 활성화될 수 있음을 의미합니다. 그러나 혼란을 피하기 위해 그렇게 하는 것이 관례입니다.

모듈 설정은 동일한 폴더에 있으며, 로드 대신 .conf 확장자를 가진 파일에만 있습니다. 예를 들어 수축 압축에 대한 동일한 모듈의 설정을 살펴보겠습니다.

vi /etc/apache2/mods-available/deflate.conf

conf-available 폴더에 있는 파일은 동일한 모듈이며 Apache와 별도로 설치됩니다. 이는 PHP 모듈 또는 기타 프로그래밍 언어를 활성화하는 구성 파일일 수 있습니다. 여기에서는 모든 것이 정확히 동일하게 작동하며 이러한 모듈을 활성화 및 비활성화하는 명령만 약간 다릅니다.

a2enconf 모듈_이름

a2disconf 모듈 이름

보시다시피 모듈 활성화는 매우 간단합니다. 필수이지만 기본 모듈에서는 활성화되지 않은 몇 가지 모듈을 활성화해 보겠습니다.

sudo a2enmod가 만료됩니다
$ sudo a2enmod 헤더
$ sudo a2enmod 다시 쓰기
$ sudo a2enmod SSL

만료 및 헤더 모듈은 서버의 부하를 줄입니다. 마지막 요청 이후 문서가 변경되지 않은 경우 Not Modified 헤더를 반환합니다. 만료 모듈을 사용하면 브라우저가 수신된 문서를 캐시해야 하는 시간을 설정할 수 있습니다. Rewrite를 사용하면 요청된 주소를 즉시 변경할 수 있어 CNC 링크 등을 생성할 때 매우 유용합니다. 그리고 SSL 암호화 지원을 활성화하는 마지막 기능입니다. 설정을 완료한 후 apache2를 다시 시작하는 것을 잊지 마십시오.

Apache 가상 호스트 구성

하나의 물리적 시스템에서 하나의 웹사이트만 호스팅할 수 있다면 전혀 편리하지 않을 것입니다. Apache는 단일 컴퓨터에서 수백 개의 사이트를 지원하고 각 사이트에 대해 올바른 콘텐츠를 제공할 수 있습니다. 이를 위해 가상 호스트가 사용됩니다. 서버는 요청이 어느 도메인으로 들어오는지 확인하고 이 도메인의 폴더에서 필요한 콘텐츠를 제공합니다.

Apache 호스트 설정은 /etc/apache2/hosts-available/ 폴더에 있습니다. 새 호스트를 생성하려면 임의의 이름으로 파일을 생성하고(호스트 이름으로 끝나는 것이 더 좋음) 필요한 데이터로 채우면 됩니다. 이러한 매개변수를 모두 지시어로 래핑해야 합니다. VirtualHost.여기에 설명된 매개변수 외에도 다음이 사용됩니다.

  • 서버 이름- 기본 도메인 이름
  • 서버 별칭- 사이트에 액세스할 수 있는 추가 이름
  • 서버관리자- 관리자 이메일
  • 문서 루트- 이 도메인에 대한 문서가 포함된 폴더

예를 들어:

vi /etc/apache2/sites-available/test.site.conf

아파치 설정 아파치 설정

파일 "httpd.conf"
이 서버의 기본 구성 파일은 "httpd.conf"입니다. 이는 Apache 루트 디렉터리의 "conf" 디렉터리에 있습니다. 그래서 당신은 그를 조롱해야 할 것입니다. 나는 즉시 말할 것입니다. 영어를 이해하지 못한다면 이 파일에서 모든 주석과 설명을 제거하고 지시문 자체(그리고 주석이 달린 것도)만 남겨 두십시오. 이렇게 하면 이해하지 못하는 많은 설명을 뒤질 필요 없이 필요한 지침을 빠르게 찾을 수 있습니다. 파일의 구문은 매우 간단합니다. "값 지시어", 이 유형에 해당하지 않는 모든 행을 삭제할 수 있습니다.

주목! 일부 지시문은 다음과 같습니다.

등. 이 줄은 삭제할 필요가 없습니다!

"http.conf"의 주석 기호는 "#"(해시)입니다. 즉, "#" 다음 줄에 나타나는 모든 문자는 서버에서 인식되지 않습니다. 이렇게 하면 자신만의 의견을 추가할 수 있습니다. 주석 처리된 줄 앞에서 이 문자를 제거하면 서버에서 해당 줄을 읽을 수 있게 됩니다.

일반 설정
"httpd.conf" 파일을 편집해야 합니다. 일부 지시어의 값을 변경하고, 다른 지시어의 주석 처리를 제거하고, 다른 지시어를 추가하세요. 아래에서는 Apache 구성 파일에 있어야 하는 지시문과 해당 값 목록을 제공합니다.

서버 파일이 있는 디렉터리("DocumentRoot"와 혼동하지 마세요):

ServerRoot "C:/Server/Apache/Apache2"

Apache를 특정 포트에 바인딩합니다.

서버 관리자. 일부 서버 오류가 발생할 경우 표시되는 이메일 주소가 포함되어 있습니다.

나중에 모든 것이 제대로 작동할 수 있도록 내 지시를 엄격히 따르세요. "C:" 드라이브에 "Sites" 폴더를 만듭니다. 그 안에 이미 "localhost", "neebet", "mysite"와 같은 "home"디렉토리를 만듭니다. 각 폴더("localhost", "neebet", "mysite")에 "www"(html 문서 저장용), "cgi"(cgi 스크립트 저장용), 빈 access.log 파일(액세스 로그 서버) 디렉터리를 넣습니다. ) 및 error.log(서버 오류 로그).

이것이 왜 필요한지 나중에 이해하게 되겠지만 지금은 내가 말하는 대로 하십시오.

CGI 설정

cgi 스크립트 "C:Siteshomelocalhostcgi"를 사용하여 디렉터리의 별칭을 설정합니다. http://r.codenet.ru/?http://localhost/cgi/ 또는 http://r.codenet.ru/?http://localhost/cgi-bin/과 같은 경로를 지정하면 Apache가 액세스합니다. 디렉터리 "C:Siteshomelocalhostcgi":

ScriptAlias ​​​​/cgi/ "C:/Sites/home/localhost/cgi/"
ScriptAlias ​​​​/cgi-bin/ "C:/Sites/home/localhost/cgi/"

"http://virtual_host_name/cgi-bin/cgi-script.bat" 형식에 액세스할 때 가상 호스트에서 "C:Siteshomelocalhostcgi" 디렉터리도 사용할 수 있습니다. 예를 들어, 브라우저에 http://r.codenet.ru/?http://neebet/cgi-bin/cgitest.bat를 입력하면 "C:Siteshomelocalhostcgicgitest.bat" 파일에 있는 코드가 실행됩니다. , http://r.codenet.ru/?http://localhost/cgi/cgitest.bat에서도 사용할 수 있습니다. 가상 호스트에는 "http://virtual_host_name/cgi/cgi-script.bat"에서 사용할 수 있는 cgi 스크립트에 대한 자체 디렉토리가 있습니다. "cgi" 디렉토리는 브라우저에서 볼 수 없으며 직접 액세스할 때 "403" 오류를 받게 됩니다.

확장자가 "cgi", "bat", "exe"인 파일을 cgi 스크립트로 처리해야 함을 Apache에 알립니다.

언어 설정
"AddLanguage lang .lang" 형식의 나머지 줄을 주석 처리할 수 있습니다(물론 이러한 언어에 대한 지원이 필요하지 않은 경우).

인코딩 설정:

SSI 설정
SSI 활성화:

AddType 텍스트/html .shtml
AddHandler 서버 구문 분석 .shtml .html .htm

이제 주요 지시문이 설정되었습니다. 변경 사항을 적용하려면 Apache를 다시 시작하십시오.

가상 호스트
따라서 사이트의 문서를 저장하고 테스트하기 위해 "localhost" 디렉터리를 만들었습니다. 하지만 웹사이트가 두 개 이상이라면 어떻게 될까요? 물론 "localhost" 내부에 다른 사이트에 대한 디렉토리를 만들고 "http://localhost/site"에 액세스할 수 있지만 이것이 완전히 편리한 것은 아닙니다. 게다가 Apache에서는 가상 호스트를 사용하여 이 문제를 해결할 수 있습니다. 가상 호스트에는 두 가지 유형이 있습니다. 각각에 대해 별도의 IP 주소를 사용하는 것과 하나의 IP를 사용하는 것(이름 기반 호스트)입니다. 후자를 설정하는 방법을 설명하겠습니다.

"home" 디렉터리에 "neebet" 및 "mysite" 폴더가 이미 생성되었습니다. 이는 가상 호스트의 루트입니다. 여기에는 "www" 및 "cgi" 폴더, access.log 및 error.log 파일이 포함되어야 합니다. 즉, 모든 것이 "localhost" 디렉터리와 동일합니다. 모든 가상 호스트는 IP "127.0.0.1"을 사용합니다.

"httpd.conf" 파일에 다음을 추가합니다:

이름VirtualHost 127.0.0.1
#로컬호스트

서버Admin me@localhost
서버 이름 로컬 호스트
DocumentRoot "C:/Sites/home/localhost/www"
ScriptAlias ​​​​/cgi/ "C:/Sites/home/localhost/cgi/"
오류 로그 C:/Sites/home/localhost/error.log
CustomLog C:/Sites/home/localhost/access.log 공통

#네벳

서버관리자 me@neebet
서버 이름 neebet
DocumentRoot "C:/Sites/home/neebet/www"
ScriptAlias ​​​​/cgi/ "C:/Sites/home/neebet/cgi/"
오류 로그 C:/Sites/home/neebet/error.log
CustomLog C:/Sites/home/neebet/access.log 공통

#mysite

서버Admin me@mysite
서버 이름 mysite
DocumentRoot "C:/Sites/home/mysite/www"
ScriptAlias ​​​​/cgi/ "C:/Sites/home/mysite/cgi/"
오류 로그 C:/Sites/home/mysite/error.log
CustomLog C:/Sites/home/mysite/access.log 공통

블록에 추가할 수 있습니다." " 및 기타 매개 변수가 있지만 .htaccess를 사용하여 가상 호스트를 관리하는 것이 더 좋습니다. 또한 블록에 지정되지 않은 모든 매개 변수는 " " 또는 .htaccess에서는 기본 호스트(예: "localhost")에서 상속됩니다.

저것. 가상 호스트와 작동하도록 Apache를 구성했습니다. 물론 이름은 변경할 수 있지만 경로에 주의하세요!

이제 Windows가 가상 호스트의 존재를 어떻게 알아내는지 결정해 보겠습니다. 이렇게 하려면 "%WINDOWS%System32driversetc" 폴더에 저장된 "hosts" 파일("hosts.sam" 파일과 혼동하지 말 것)을 편집해야 합니다. 다음과 같이 보입니다.

# (C) 마이크로소프트사, 1993-1999
#
# 이것은 Windows용 Microsoft TCP/IP에서 사용되는 샘플 HOSTS 파일입니다.
#
# 이 파일에는 IP 주소와 호스트 이름의 매핑이 포함되어 있습니다.
# 각 요소는 별도의 줄에 있어야 합니다. IP 주소는 다음과 같아야 합니다.
#은 첫 번째 열에 있어야 하며 그 뒤에 적절한 이름이 와야 합니다.
# IP 주소와 호스트 이름은 하나 이상의 공백으로 구분되어야 합니다.
#
# 또한 일부 줄에는 주석이 포함될 수 있습니다.
# (이 줄과 같이) 노드 이름 뒤에 와야 하며 구분되어야 합니다.
# 기호 "#"을 사용합니다.
#
# 예를 들어:
#
# 102.54.94.97 rhino.acme.com # 원본 서버
# 38.25.63.10 x.acme.com # 클라이언트 노드 x
127.0.0.1 로컬호스트

여기에 두 줄을 추가해야 합니다.

127.0.0.1 네베트
127.0.0.1 마이사이트

이제 http://r.codenet.ru/?http://neebet에 접속하면 "C:Siteshome"의 내용이 로드됩니다.
eebetwww".

변경 사항을 적용하려면 Apache를 다시 시작하십시오.

© 2024 ermake.ru - PC 수리 정보 - 정보 포털