Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So stellen Sie Nginx-, PHP- und virtuelle Hostkonfigurationen in einer CentOS-Umgebung bereit

So stellen Sie Nginx-, PHP- und virtuelle Hostkonfigurationen in einer CentOS-Umgebung bereit

王林
王林nach vorne
2023-05-20 14:25:061269Durchsuche

Bereitstellungszeit: 24.07.2012
OS-Umgebung: Centos 6.1
nginx: nginx-1.2.2
php: php5.3.14
0. Abhängigkeitspakete installieren

Code kopieren Der Code lautet wie folgt:

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

1 www-Benutzer hinzufügen, um nginx auszuführen

Code kopieren Der Code lautet wie folgt:

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

2. Erstellen Sie ein temporäres Verzeichnis

Kopieren Sie den Code. Der Code lautet wie folgt:

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

3. Laden Sie die neueste stabile Version des Nginx-Quellcodes herunter

Kopieren Sie den Code. Der Code lautet wie folgt:

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

4. Entpacken, kompilieren, installieren

Code kopieren Der Code lautet wie folgt:

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 konfigurieren

Code kopieren Der Code lautet wie folgt:

vim /opt/web/nginx/conf/ nginx.conf
# Geben Sie den Startbenutzer an:
user www www;
# Anzahl der Prozesse, glaubt der Autor von nginx. Nur einer, ändern Sie ihn entsprechend Ihrem eigenen Datenverkehr
worker_processes 1;
# Legen Sie das Fehlerprotokoll fest:
#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;
events {
use 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_log logs/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_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# Serverfehlerseiten auf die statische Seite /50x.html umleiten
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# Proxy Die PHP-Skripte werden an den Apache übergeben, der 127.0.0.1:80 überwacht.
#
#location ~ .php$ {
# :9000
#
location ~ .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;
}
# Zugriff auf .htaccess-Dateien verweigern, wenn das Dokumentstammverzeichnis von Apache mit dem von Nginx übereinstimmt. und portbasierte Konfiguration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index .htm;
# }
#}
# https server
#
#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;
# location / {
# root html;
# index index.html index.htm;
# }
#}
proxy_read_timeout 200;
# nur erneut versuchen, wenn ein Kommunikationsfehler aufgetreten ist, kein Timeout
# auf dem Tornado-Server (um die Weitergabe von „Queries of Death“ zu vermeiden
# an alle Frontends)
proxy_next_upstream error;
proxy_set_header x-scheme $scheme;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header host $host;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_ for ;
#Führen Sie die virtuelle Hostdatei ein
include /opt/web/nginx/conf/sites/ *.conf;
}

6. Erstellen Sie das Verzeichnis, in dem die Konfigurationsdatei der virtuellen Maschine gespeichert ist


Kopieren Sie den Code. Der Code lautet wie folgt:

mkdir / opt/web/nginx/conf/sites

Wenn Sie nach dieser Konfiguration einen neuen virtuellen Host hinzufügen müssen, fügen Sie die Konfigurationsdatei direkt zum Verzeichnis nginx/conf/sites/ hinzu.
Zum Beispiel: Jetzt haben Sie den Domänennamen www.jb51.net.
Erstellen: /opt/ web/nginx/conf/ Der Inhalt der Datei „sites/www.jb51.net.conf“
lautet wie folgt:

Kopieren Sie den Code. Der Code lautet wie folgt:

server {
listen 80;
client_max_body_size 10m;
#Mehrere Domänennamen werden durch Leerzeichen getrennt, der erste ist der Standardname
Servername www.jb51.net jb51.net;
charset utf-8;
index index.html index.htm index.php;
# Definieren Sie das Stammverzeichnis
set $root /var/webroot/www.jb51.net/;
# Legen Sie den Site-Pfad fest
root $root;
# Verhindern Sie das Durchsuchen von Verzeichnissen
autoindex off;
if ($host != 'www.jb51.net' ) {
rewrite ^/(.*)$ //www.jb51.net/ $1 permanent;
}
# Verhindern, dass .htaccess-Dateien angefordert werden
location ~ /.ht {
deny all;
}
error_page 404 / 404.html;
index index.html index.htm;
location /uploads/ {
alias /data/webroot/www.jb51.net/uploads/;
}
try_files $uri @uwsgi;
location @uwsgi{
# Andere Anfragen an uwsgi weiterleiten
include uwsgi_params;
uwsgi_pass unix:/tmp/360ito_uwsgi.sock;
proxy_set_header ed_for;
#proxy_pass http://localhost:5000;
}
# Anfragen vom Typ PHP weiterleiten Give fastcgi
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
# Zugriffsprotokoll:
access_log /var/log/nginx/access .www.jb51.net.log;
# Laden Sie die .htaccess-Rewrite-Datei. Beachten Sie, dass Variablenpfade hier nicht unterstützt werden.
# können nicht als include $ geschrieben werden root/www.jb51.net/.htaccess;
# include /var/webroot/ www.jb51.net/.htaccess;
# Domainnamensprung aktivieren. Wenn der Zugriffsfehler auftritt, springen andere Domainnamen automatisch zu www .jb51.net
# Beachten Sie, dass ich hier nur spreche, wenn ein Zugriffsfehler auftritt, sodass eine 301-Umleitung hier nicht implementiert werden kann!
server_name_in_redirect on;
}

7. Installieren Sie die neueste Version von PHP (php5.3.14)


Kopieren Sie den Code. Der Code lautet wie folgt:

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

Ausführung:


Code kopieren Der Code lautet wie folgt:

. Wenn ein Fehler gemeldet wird, ist es möglich, dass Ihr Autoconf nicht Version 2.13 ist. Für Fehler der PHP5.3-Serie müssen Sie Autoconf-Version 2.13 installieren

Kopieren Sie den Code. Der Code lautet wie folgt:

centos: # yum install autoconf213
debian: # apt-get install autoconf2.13

Umgebungsvariablen festlegen


Code kopieren Der Code lautet wie folgt:

# centos :
export php_autoconf="/usr/bin/autoconf-2.13"

# debian:

export php_autoconf="/usr/bin/autoconf2.13"

Erneut ausführen: ./buildconf --force Wenn buildconf: autoconf-Version 2.13 (ok)
erscheint, es bedeutet Erfolg.
Kompilieren und installieren Sie PHP

Kopieren Sie den Code. Der Code lautet wie folgt:

./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- group=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
- -with-iconv-dir
--with-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-produktion /opt /web/php/etc/php.ini
cd /opt/web/php/etc
cp php-fpm.conf.default php-fpm.conf

Ändern Sie php-fpm.conf, um das zu aktivieren Folgende Zeilen, das heißt, entfernen Sie die vorhergehenden Zeilen Das Semikolon (;)


Code kopieren Der Code lautet wie folgt:

pid = run/php-fpm.pid
error_log = log/php-fpm.log

log_level = bemerken

listen = 127.0.0.1:9000

listen erlaubte_clients = 127.0.0.1

listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamisch
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] = /usr/local/bin:/usr /bin:/bin
env[tmp] = / tmp
env[tmpdir] = /tmp
env[temp] = /tmp

8. Starten Sie php-fpm


Kopieren Sie den Code. Der Code lautet wie folgt:

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

Nginx starten

Code kopieren Der Code lautet wie folgt:

/opt/web/nginx/sbin/nginx

9. Testen Sie es

Kopieren Code Der Code lautet wie folgt:

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

Eingeben und speichern

Code kopieren Der Code lautet wie folgt:

phpinfo() ;

?>

10. Geben Sie in die Adressleiste des Browsers ein: http://php.jb51.net/tz.php
Bei Erfolg können Sie die von phpinfo() ausgegebenen Informationen sehen                                                                                                                                       

Das obige ist der detaillierte Inhalt vonSo stellen Sie Nginx-, PHP- und virtuelle Hostkonfigurationen in einer CentOS-Umgebung bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen