Nginx+php(FastCGI)+Memcached+MySQL+APC는 고성능 서버를 구축하는 현재 주류 방법입니다! 대형 및 중형 웹사이트에 적합하며 소규모 웹마스터도 이 조합을 사용할 수 있습니다!
Nginx는 고성능과 안정성에서 Apache를 능가하며, 국내 최대 전자지도 MapBar, Sina Blog, Sina Podcast, NetEase News 등 포털 채널 6개방, 56.com, 다른 영상 공유 사이트, Discuz! 공식 포럼, Shuimu 커뮤니티 등 잘 알려진 포럼, Douban, YUPOO Photo Album, Domestic SNS, Thunder Online 등 신흥 Web 2.0 웹사이트 및 더 많은 웹사이트에서 Nginx 구성을 사용하고 있습니다.
필수 설치 패키지 다운로드: 여기서는 소스 코드 패키지를 사용하여 컴파일하고 설치합니다. 이 블로그는 다운로드를 통합합니다.
http://wgkgood.gicp.net/download/nginx-0.7.61.tar.gz
http://wgkgood.gicp.net/download/pcre-8.01.tar.gz
http://wgkgood.gicp.net/download/memcache-2.2.5.tgz
http://wgkgood.gicp.net/download/libevent-1.4.12-stable.tar.gz
http://wgkgood.gicp.net/download/APC-3.1.4.tgz
/usr/src에 다운로드
mysql-5.1.41.tar.gz 및 php-5.3.5.tar.gz라는 두 가지 패키지도 있습니다. [다른 유사한 버전도 사용 가능합니다! ] 공식 홈페이지에서 다운로드 가능합니다.
1. Nginx를 정식으로 설치합니다. [nginx를 설치하기 전에 재작성, 정규화, 웹페이지 압축 등을 지원하는 pcre 패키지와 zlib를 설치해야 합니다.]
CD /usr/src
tar xzf pcre-8.01.tar.gz
CDPCRE-8.01
./configure –PRefix=/usr/local/pcre
만들다
설치하다
(2) 그런 다음 nginx를 설치합니다.
useradd www && cd /usr/src && tar xzf nginx-0.7.61.tar.gz &&cd nginx-0.7.61 && ./configure –prefix=/usr/local/nginx –with-http_stub_status_module –with-openssl=/usr / –with-pcre=/usr/src/pcre-8.01 –user=www –group=www &&make &&make install
[nginx 참고* –with-pcre=/usr/src/pcre-8.01은 설치 경로가 아닌 소스 코드 패키지의 압축을 풀기 위한 경로를 가리킵니다. 그렇지 않으면 보고됩니다.
make[1]: ***[/usr/local/pcre/Makefile] 오류 127 오류]
2. 다음으로 mysql을 설치하세요
cd /usr/src && tar xzf mysql-5.1.41.tar.gz && cd mysql-5.1.41 && ./configure –prefix=/usr/local/mysql/ –enable-assembler –with-extra-charsets=complex –enable-thread-safe-client –with-big-tables –with-readline –with-ssl –with-embedded-server –enable-local-infile –with-plugins=innobase && make &&make install
(2) mysql 설치가 완료되면 mysql 사용자 및 그룹을 생성하고 데이터베이스를 초기화한 후 데이터베이스를 시작한다.
cd /usr/local/mysql && useradd mysql && chown -R mysql:mysql /usr/local/mysql && /usr/local/mysql/bin/mysql_install_db –user=mysql && chown -R mysql:mysql var/ && ./ bin/mysqld_safe –user=mysql &
그게 다야. [mysql이 시작될 때 오류가 발생하면 /usr/local/mysql/var 디렉터리에서 mysql에 권한이 있는지 확인하세요.]
3. PHP를 설치합니다:
cd /usr/src &&tar xzf php-5.3.5.tar.gz && cd php-5.3.5 && ./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/ php/etc –with-mysql=/usr/local/mysql –with-mysqli=/u
sr/local/mysql/bin/mysql_config –with-iconv-dir=/usr/local –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-li
bxml-dir=/usr –enable-xml –disable-rpath –enable-discard-path –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem
–enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-fpm –enable-sockets && make &&make install
설치가 완료되었습니다! [여기에서는 –enable-fastcgi를 이 매개변수에 추가할 필요가 없습니다. 다른 이전 버전에서는 이를 추가해야 합니다. 오류가 보고되면 해당 이유를 찾아보세요. 특정 오류 보고]
4. php-5.3.5 설치 후 Nginx와 php(FastCGI)를 통합하여 fastCGI 지원
사용자 www www;
작업자 프로세스 8;
error_log /usr/local/logs/nginx/error.log crit;
pid /usr/local/nginx/nginx.pid;
#이 프로세스에서 열 수 있는 최대 파일 설명자의 값을 지정합니다.
작업자_r한계_no파일 51200;
이벤트
{
epoll을 사용하십시오;
작업자 연결 51200;
}
http
{
mime.types를 포함합니다.
default_type 애플리케이션/옥텟-스트림;
#문자셋 gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
Large_client_header_buffers 4 32k;
client_max_body_size 8m;
파일 보내기;
tcp_nopush 켜기;
keepalive_timeout 60;
tcp_nodelay 켜기;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
압축을 푼다;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types 텍스트/일반 애플리케이션/x-javascript 텍스트/CSS 애플리케이션/xml;
gzip_variable;
#limit_zone 크롤러 $binary_remote_addr 10m;
섬기는 사람
{
들어라 80;
서버 이름 wgkgood.gicp.net;
색인 index.php index.htm index.html;
루트 /usr/webapps/www;
#limit_conn 크롤러 20;
위치 ~ .*.(php|php5)?$
{
#fastcgi_pass 유닉스:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fcgi.conf를 포함합니다;
}
위치 ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
30일에 만료됩니다.
}
위치 ~ .*.(js|css)?$
{
1시간 후에 만료됩니다.
}
log_format 액세스 '$remote_addr – $remote_user [$time_local] “$request” '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /usr/local/logs/nginx/access.log 액세스;
}
}
Nginx 구성이 완료되었습니다! nginx를 시작합니다. /usr/local/nginx/sbin/nginx. nginx를 다시 시작하는 명령은 다음과 같습니다. /usr/local/nginx/sbin/nginx –s reload
이 구성 파일은 참고용입니다. Zhang Yan 선생님께 감사드립니다!
(2) fcgi.conf 파일을 다음과 같이 구성합니다.
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $서버_주소;
fastcgi_param SERVER_PORT $서버_포트;
fastcgi_param SERVER_NAME $서버_이름;
# PHP만 해당, PHP가 –enable-force-cgi-redirect로 빌드된 경우 필수
fastcgi_param REDIRECT_STATUS 200;
5. PHP 구성 파일을 구성합니다.
cd /usr/local/php5/etc/ && cp php-fpm.conf.default php-fpm.conf
그런 다음 프롬프트에 따라 php-fpm.conf의 옵션을 수정합니다.
구성이 완료되면 php-fpm을 시작하십시오.
다음 cp /usr/src/php-5.3.5/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
그런 다음 /etc/init.d/php-fpm start를 시작합니다.
6. APC 구성을 설치합니다.
cd /usr/src && tar xzf APC-3.1.4.tgz &&cd APC-3.1.4
/usr/local/php5/bin/phpize
./configure –enable-apc –enable-apc-mmap –with-php-config=/usr/local/php5/bin/php-config
&&만들다&& 설치하기
설치 후 /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/에 apc.so가 생성됩니다.
7. fastcGI가 memcached를 지원하도록 memcached를 설치합니다.
먼저 libevent를 설치하고,
cd /usr/src && tar xzf libevent-1.4.12-stable.tar.gz && cd libevent-1.4.12-stable && ./configure –prefix=/usr/local/libevent &&make && make install
그런 다음 memcached를 설치하십시오.
tar xzf memcache-2.2.5.tar.gz && cd memcache-2.2.5 && /usr/local/php5/bin/phpize && ./configure –prefix=/usr/local/memcached –with-libevent=/usr/ 로컬/libevent –with-php-config=/usr/local/php5/bin/php-config &&make &&make 설치
설치 후 /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/에 memcache.so 모듈이 생성됩니다.
8. 다음으로 php.ini를 수정하세요.
기본 php.ini는 /usr/local/php5/lib/php.ini에 있습니다.
Extension_dir = "./"
다음으로 수정
Extension_dir =”/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626″
끝에 다음을 추가합니다.
확장자=apc.so
Extension=memcache.so //여기서 캐시 모듈이 참조됩니다.
[APC]
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64M
apc.최적화=1
apc.num_files_hint = 0
apc.ttl=7200
apc.user_ttl=7200
apc.gc_ttl = 3600
apc.cache_by_default = 켜짐
이제 설치가 완료되었습니다!
nginx와 php-fpm을 다시 시작하고 테스트 페이지로 액세스하세요.
이 글은 참고용입니다! 틀린 부분이 있으면 정정해주세요! 함께 배워보세요!
기사 출처: http://blog.mgcrazy.com/?p=627 재인쇄 시 출처 링크를 표기해주세요.