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

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

WBOY
풀어 주다: 2023-05-13 12:40:06
앞으로
699명이 탐색했습니다.

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
--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:
user www www;
# 프로세스 수, nginx 작성자는 방문 횟수에 따라 하나면 충분하다고 생각 수정
worker_processes 1;
# 오류 로그 설정:
#error_loglogs/error.log 통지;
#error_log 로그/error.log 정보;
error_log /var/log/nginx/error.default.log;
pid /opt /web/nginx/nginx.pid;
events {
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 any;
gzip_types text/plain text/css text/xml
application/x-javascript application /xml
application/atom+xml text/javascript;
server {
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;
}
# PHP 스크립트를 127.0에서 수신하는 Apache로 프록시 .0.1:80
#
#location ~ .php$ {
# Proxy_pass http://127.0.0.1;
#}
# 127.0.0.1:9000
#
location을 수신하는 fastcgi 서버에 PHP 스크립트를 전달합니다 ~ . 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;
}
# .htaccess에 대한 액세스 거부 파일, Apache의 문서 루트
#가 nginx의 문서 루트
#와 일치하는 경우
#
location ~ /.ht {
deny all;
}
}
# IP, 이름 및 포트 기반 구성을 혼합하여 사용하는 또 다른 가상 호스트
#
#서버 {
# 듣기 8000;
# 듣기 somename:8080;
# server_name somename 별칭 another.alias;
# 위치 / {
# 루트 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;
# 토콜 SSLV2 SSLV3 tlsv1;
# ssl_ciphers high:!anull:!md5;
# ssl_prefer_server_hers on ;
# location / {
# root 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿