>운영 및 유지보수 >엔진스 >CentOS 환경에서 nginx, php 및 가상 호스트 구성을 배포하는 방법

CentOS 환경에서 nginx, php 및 가상 호스트 구성을 배포하는 방법

王林
王林앞으로
2023-05-20 14:25:061285검색

배포 시간: 2012-07-24
os 환경: centos 6.1
nginx: nginx-1.2.2
php: php5.3.14
0 종속성 패키지 설치

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

yum install openssl-devel pcre-devel zlib-devel libjpeg-devel libpng-devel freetype-devel gcc make

1. nginx를 실행하려면 www 사용자를 추가하세요

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

useradd -m -r -s /sbin/nologin - d /opt/web/ www

2. 임시 디렉터리 만들기

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

mkdir -p /var/tmp/nginx/client/
mkdir -p /var/tmp/nginx/proxy/
mkdir -p /var/tmp/nginx/fcgi/

3.nginx 소스 코드의 최신 안정 버전을 다운로드하세요

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

cd /usr/local/src/
wget http://nginx.org /download/nginx-1.2.2.tar.gz

4.압축해제, 컴파일, 설치

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

tar vxzf nginx-1.2.2.tar.gz
cd nginx-1.2.2/
./configure
--prefix=/opt/web/nginx
--error-log-path=/var/log/nginx/ error.log
--pid-path=/var/run/nginx/nginx.pid
--lock-path=/var/lock/nginx.lock
--user=www
--group=www
-- with-http_ssl_module
--with-http_stub_status_module
--with-http_gzip_static_module
--http -log-path=/var/log/nginx/access.log
--http-client-body-temp-path=/var/ tmp/nginx/client/
--http-proxy-temp-path=/var /tmp/nginx/proxy/
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/
--http -uwsgi-temp-path=/var/tmp/nginx/uwsgi/
make
make install

5. nginx 구성

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

vim /opt/web/nginx/conf/ nginx.conf
# 시작 사용자 지정:
user www www;
# nginx 작성자가 믿는 프로세스 수 단 하나, 자신의 트래픽에 따라 수정하세요.
worker_processes 1;
# 오류 로그 설정:
#error_log 로그/error.log 공지;
#error_log 로그/error.log 정보;
error_log /var/log/nginx/error .default.log;
pid /opt/web/nginx/nginx.pid;
이벤트 {
사용 epoll;
worker_connections 1024;
}
http {
charset utf-8;
include mime.types;
default_type application/ octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# access_loglogs/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
gzip_min_length 1000;
gzip_proxied 임의;
gzip_ 유형 텍스트/일반 텍스트/css 텍스트 /xml
application/x-javascript 애플리케이션/xml
application/atom+xml 텍스트/javascript;
서버 {
listen 80;
server_name localhost;
charset utf-8;
#access_loglogs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# 서버 오류 페이지를 정적 페이지로 리디렉션 /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# 프록시 127.0.0.1:80
#
#location ~ .php$ {
# Proxy_pass http:/ /127.0.0.1;
#}
#에서 수신하는 Apache에 대한 PHP 스크립트는 127.0.0.1에서 수신하는 fastcgi 서버에 PHP 스크립트를 전달합니다. :9000
#
위치 ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php ;
#fastcgi_param script_filename /scripts$fastcgi_script_name;
#include fastcgi_params;
include fastcgi.conf;
}
# 아파치의 문서 루트
#가 nginx의 문서 루트
#
location과 일치하는 경우 .htaccess 파일에 대한 액세스를 거부합니다. ~ /.ht {
deny all;
}
}
# ip-, name-을 혼합하여 사용하는 또 다른 가상 호스트 및 포트 기반 구성
#
#server {
# Listen 8000;
# Listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index .htm;
# }
#}
# https 서버
#
#server {
# Listen 443;
# server_name localhost ;
# SSL on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols sslv2 sslv3 tlsv1;
# ssl_ciphers high:!anull :!md5;
# ssl_prefer_server_ciphers on;
# 위치 / {
# 루트 html;
# index index.html index.htm;
# }
#}
proxy_read_timeout 200;
# 토네이도 서버에서 시간 초과가 아닌 통신 오류가 있는 경우에만 재시도
#("죽음의 쿼리"
#를 모든 프런트엔드에 전파하는 것을 방지하기 위해)
proxy_next_upstream error;
proxy_set_header x-scheme $scheme;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header 호스트 $host;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_ for ;
#가상 호스트 파일 소개
include /opt/web/nginx/conf/sites/ *.conf;
}

6. 가상 머신 구성 파일이 저장되는 디렉터리를 만듭니다

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

mkdir / opt/web/nginx/conf/sites

이 구성 후에 새 가상 호스트를 추가해야 하는 경우 nginx/conf/sites/ 디렉터리에 직접 구성 파일을 추가하세요.
예: 이제 도메인 이름이 www.jb51.net
Create: /opt/가 됩니다. web/nginx/conf/ sites/www.jb51.net.conf 파일
내용은 다음과 같습니다.

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

server {
listen 80;
client_max_body_size 10m;
#여러 도메인 이름은 공백으로 구분되며 첫 번째는 기본값입니다.
server_name www.jb51.net jb51.net;
charset utf-8;
index index.html index.htm index.php;
# 루트 디렉터리 정의
set $root /var/webroot/www.jb51.net/;
# 사이트 경로 설정
root $root;
# 디렉토리 검색 방지
autoindex off;
if ($host != 'www.jb51.net' ) {
rewrite ^/(.*)$ //www.jb51.net/ $1 영구;
}
# .htaccess 파일이 요청되는 것을 방지
location ~ /.ht {
deny all;
}
error_page 404 / 404.html;
index index.html index.htm;
location /uploads/ {
별칭 /data/webroot/www.jb51.net/uploads/;
}
try_files $uri @uwsgi;
location @uwsgi{
# uwsgi
include uwsgi_params;
uwsgi_pass unix:/tmp/360ito_uwsgi .sock;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header 호스트 $host;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded로 다른 요청 전달 _for;
#프록시_패스 http://localhost:5000;
}
# PHP 유형 요청 전달 fastcgi
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
# 액세스 로그:
access_log /var/log/nginx/access .www.jb51.net.log;
# .htaccess 다시 쓰기 파일을 로드합니다. 여기서는 변수 경로가 지원되지 않습니다
# include $로 쓸 수 없습니다. root/www.jb51.net/.htaccess;
# include /var/webroot/ www.jb51.net/.htaccess;
# 도메인 이름 점프를 활성화한 다음 액세스 오류가 발생하면 다른 도메인 이름이 자동으로 점프합니다. www.jb51.net
# 참고로 여기서 말하는 것은 접속 오류가 발생한 경우에만 점프한다는 것이므로 여기서는 301 리디렉션을 구현할 수 없습니다!
server_name_in_redirect on;
}

7. 최신 버전의 PHP(php5.3.14)를 설치하세요.

코드를 복사하세요. 코드는 다음과 같습니다.

cd /usr/local/src/
wget http://cn .php.net/get /php-5.3.14.tar.bz2/from/this/mirror
tar xjvf php-5.3.14.tar.bz2
cd php-5.3.14

실행:

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

./buildconf --force

오류가 보고되면 autoconf가 버전 2.13이 아닐 수 있습니다. php5.3. 시리즈 버그의 경우 autoconf 버전 2.13을 설치해야 합니다.

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

centos: # yum install autoconf213

debian: # apt-get install autoconf2.13

환경 변수 설정


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

# centos :

export php_autoconf="/usr/bin/autoconf-2.13"
# debian:
export php_autoconf="/usr/bin/autoconf2.13"

다시 실행: ./buildconf --force.buildconf: autoconf 버전 2.13 (ok)

이 나타나면 성공을 의미합니다.
php 컴파일 및 설치

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

./configure

--prefix=/opt/web/php
--with-config-file-path=/opt/web/php /etc
-- with-config-file-scan-dir=/opt/web/php/etc/conf.d
--enable-fpm
--with-fpm-user=www
--with-fpm- 그룹=www
- -with-mysql=/opt/db/percona-server-5.5.14-rel20.5
--with-mysqli=/opt/db/percona-server-5.5.14-rel20.5/ bin/mysql_config
- -iconv-dir
--freetype-dir
--with-jpeg-dir
--with-png-dir
--with-zlib
--with-libxml-dir
--enable-xml
--enable-mbstring
--with-gd
--enable-gd-native-ttf
--with-openssl
--enable-inline-optimization
make && make install
cp php.ini ini-production /opt /web/php/etc/php.ini
cd /opt/web/php/etc
cp php-fpm.conf.default php-fpm.conf

php-fpm.conf를 수정하여 다음 줄, 즉 이전 줄을 제거합니다. 세미콜론(;)


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

pid = run/php-fpm.pid

error_log = log/php-fpm.log
log_level = 공지
listen = 127.0.0.1:9000
listen. allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = Dynamic
pm. max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
env[호스트 이름] = $hostname
env[경로] = /usr/local/bin:/usr /bin:/bin
env[tmp] = / tmp
env[tmpdir] = /tmp
env[temp] = /tmp

8. php-fpm


을 시작하세요. 코드는 다음과 같습니다.

/opt/web/php/sbin/php-fpm

nginx 시작


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

/opt/web/nginx/sbin/nginx

9 테스트해 보세요


복사하세요. code 코드는 다음과 같습니다.

vim /var/webroot/www.jb51.net/tz .php

입력 및 저장


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

phpinfo() ;
?>

10. 브라우저 주소 표시줄에 http://php.jb51.net/tz.php를 입력하면 phpinfo()에 의해 출력되는 정보를 볼 수 있습니다.

위 내용은 CentOS 환경에서 nginx, php 및 가상 호스트 구성을 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제