Masa penyebaran: 24-07-2012
persekitaran os: centos 6.1
nginx: nginx-1.2.2
php: php5.3.14
0 Pasang pakej pergantungan
Salin kod Kod adalah seperti berikut:
yum install openssl-devel pcre-devel zlib-devel libjpeg-devel libpng-devel freetype-devel gcc make
1 pengguna www untuk Laksanakan nginx
Salin kod Kod adalah seperti berikut:
useradd -m -r -s /sbin/nologin -d /opt/web/ www
2. Cipta direktori Sementara
Salin kod Kod adalah seperti berikut:
mkdir -p /var/tmp/nginx/client/
mkdir -p / var/tmp/nginx/proxy/
mkdir -p /var/tmp/nginx/fcgi/
3 Muat turun versi stabil terkini kod sumber nginx
Salin. kod Kodnya adalah seperti berikut:
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.2.2.tar.gz
4. Nyahzip, susun, pasang
Salin kod Kod adalah seperti berikut:
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
-- dengan-http_ssl_module
--dengan-http_stub_status_module
--dengan-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/
buat
buat pemasangan
5 🎜>
# Tentukan pengguna permulaan:
pengguna www www ;
# Bilangan proses, pengarang nginx rasa satu sudah memadai, ubah suai mengikut trafik anda sendiri
proses_pekerja 1;
# Tetapkan log ralat:
#error_log logs/error.log notice;
#error_log logs/error.log info;
error_log /var/log/nginx/error.default .log;
pid /opt/web/nginx/nginx.pid;
acara {
gunakan epoll;
worker_connections 1024;
}
http {
charset utf- 8;
include mime.types;
default_type application/octet-stream;
# log_format utama '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# log access_log/access.log utama;
hantar fail dihidupkan;
tcp_nopush dihidupkan;
tcp_nodelay dihidupkan; ;
gzip_proxied mana-mana;
gzip_types text/plain text/css text/xml
application/x -javascript application/xml
application/atom+xml text/javascript;
server {
dengar 80;
server_name localhost;
charset utf-8;
#access_log logs/host .access.log main;
lokasi / {
root html;
indeks indeks. html index.htm;
}
#error_page 404 /404.html;
# ubah hala halaman ralat pelayan ke halaman statik /50x.html
#
error_page 500 502 503 504 /50 .html;
lokasi = /50x.html {
root html;
}
# proksi skrip php untuk mendengar apache pada 127.0.0.1:80
#
#lokasi ~ .php$ {
# proxy_pass http://127.0.0.1;
#}
# lulus skrip php ke pelayan fastcgi mendengar pada 127.0.0.1:9000
#
lokasi ~ . php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php ;
#fastcgi_param script_name /scripts$fastcgi_script_name>;;}
# tolak akses kepada fail .htaccess, jika akar dokumen Apache
# bersetuju dengan nginx
#
lokasi ~ /.ht {
nafikan semua;
}
}
# hos maya lain menggunakan gabungan konfigurasi berasaskan ip-, nama- dan port
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# lokasi / {
# root html;
# index index.html index.htm;
# }
# }
# https pelayan
#
#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; 🎜># lokasi / {
# root html;
# index index.html index.htm;
# }
#}
proxy_read_timeout 200;
# hanya cuba semula jika terdapat ralat komunikasi, bukan masa tamat
# pada pelayan puting beliung (untuk mengelakkan penyebaran "pertanyaan kematian"
# ke semua bahagian hadapan)
ralat proksi_seterusnya_hulu;
proxy_set_header x-scheme $scheme;
proxy_set_header x-real-ip $ remote_addr;
proxy_set_header hos $host;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
#Perkenalkan fail hos maya
include /opt/web/nginx/conf/sites;*
}
6. Cipta direktori tempat fail konfigurasi mesin maya disimpan
Salin kod Kod adalah seperti berikut:
mkdir /opt /web/nginx/conf/sites
Selepas konfigurasi ini, jika anda perlu menambah hos maya baharu, tambah fail konfigurasi terus ke direktori nginx/conf/sites/
Sebagai contoh: Sekarang terdapat nama domain www.jb51.net
Buat: /opt/ Kandungan fail web/nginx/conf/sites/www.jb51.net.conf
adalah seperti berikut:
Salin kod Kod adalah seperti berikut:
pelayan {
dengar 80;
klien_max_body_size 10m;
#Berbilang nama domain dipisahkan oleh ruang, yang pertama ialah lalai
nama_pelayan www.jb51.net jb51.net;
charset utf-8;
index index.html index.htm index.php;
# Tentukan direktori akar
set $root /var/webroot/www.jb51.net/;
# Tetapkan laluan tapak
root $root;
# Halang penyemakan imbas direktori
autoindex dimatikan;
jika ($host != 'www.jb51.net') {
tulis semula ^/ (.*)$ //www.jb51.net/$1 kekal;
}
# Halang fail .htaccess daripada diminta
lokasi ~ /.ht {
nafikan semua;
}
error_page 404 /404.html;
index index.html index .htm;
lokasi /uploads/ {
alias /data/webroot/www.jb51.net/uploads/;
}
try_files $uri @uwsgi;
lokasi @uwsgi{
# Majukan permintaan lain untuk uwsgi
serta uwsgi_params;
uwsgi_pass unix:/tmp/360ito_uwsgi.sock_>x; -real-ip $remote_addr;
proxy_set_header host $host;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
#proxy_pass http://localhost:5000;
#Forward 🎜 taip permintaan ke fastcgi
lokasi ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
serta fastcgi.conf>;# Log akses:
access_log /var/log /nginx/access.www.jb51.net.log;
# Muatkan fail tulis semula .htaccess tidak disokong di sini # tidak boleh ditulis sebagai termasuk $root/www.jb51.net/.htaccess; ralat berlaku, nama domain lain secara automatik akan melompat ke www.jb51.net
# Ambil perhatian bahawa apa yang saya katakan di sini ialah lompatan hanya akan berlaku apabila ralat akses berlaku, jadi ubah hala 301 tidak boleh dilaksanakan di sini!
server_name_in_redirect on;
}
7 Pasang versi terkini php (php5.3.14)
Salin kod Kod adalah seperti berikut:
cd /usr /local/src/
tar xjvf php-5.3 .14.tar.bz2
cd php-5.3.14
Pelaksanaan:
Salin kod Kod adalah seperti berikut:
./buildconf - -force
jika Jika ralat dilaporkan, mungkin autoconf anda bukan versi 2.13 Untuk pepijat siri php5.3, anda perlu memasang autoconf versi 2.13:
Salin kod Kod adalah seperti berikut:
centos: # yum install autoconf213
debian: # apt-get install autoconf2.13
Tetapkan pembolehubah persekitaran
# centos:
# debian:
eksport php_autoconf="/usr /bin/autoconf2.13"
Jalankan semula: ./buildconf - -force, jika buildconf: autoconf versi 2.13 (ok)
muncul, ini bermakna kejayaan.Kompil dan pasang php
Salin kod Kod adalah seperti berikut:
./configure
--prefix=/opt/web/php
--with-config -file-path=/opt/web/php/etc
--with-config-file-scan-dir=/opt/web/php/etc/conf.d
--with-fpm-user=www
--with-fpm-group=www--with-mysql=/opt/db/percona-server-5.5.14-rel20 .5
--dengan-mysqli=/opt/db/percona-server-5.5.14-rel20.5/bin/mysql_config
--dengan-iconv-dir
--dengan-freetype- dir
- -dengan-jpeg-dir
--dengan-png-dir
--dengan-zlib
--dengan-libxml-dir
--dayakan-xml
--dayakan-mbstring
--dengan-gd
--dayakan-gd-native-ttf
--dengan-openssl
--dayakan-pengoptimuman-sebaris
buat && buat pemasangan
cp php .ini-production /opt/web/php/etc/php.ini
cd /opt/web/php/etc
cp php-fpm.conf.default php-fpm.conf
Ubah suai php-fpm.conf untuk membolehkan baris berikut, iaitu, keluarkan koma bertitik sebelumnya (;)
Salin kod Kod adalah seperti berikut:
pid = run/php-fpm.pid
log_level = notice
listen = 127.0.0.1:9000
dengar.pemilik = www
kumpulan dengar = wwwmode dengar = 0666
pengguna = www
kumpulan = www
pm = dinamik
pm.max_children = 50
pm.start_servers = 5
pm. min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
env[hostname] = $hostname
env[path] = /us /local/bin:/usr/bin:/ bin
env[tmp] = /tmp
env[tmpdir] = /tmp
env[temp] = /tmp
8. Mulakan php-fpm
Salin kod Kod adalah seperti berikut:
/opt/web/php/sbin/php-fpm
Mulakan nginx
Salin kod Kod adalah seperti berikut:
/opt/web/nginx/sbin/nginx
9 >Salin kod Kod adalah seperti berikut:
Salin kod Kod adalah seperti berikut:
10. Masukkan: http://php.jb51.net/tz.php dalam bar alamat penyemak imbas
Jika berjaya, anda boleh melihat output maklumat oleh phpinfo()
Atas ialah kandungan terperinci Bagaimana untuk menggunakan konfigurasi nginx, php dan hos maya dalam persekitaran CentOS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!