In diesem Tutorial zeigen wir Ihnen, wie Sie Nginx mit PHP-FastCGI auf CentOS 6 installieren. Für diejenigen unter Ihnen, die es nicht wussten, Nginx ist einer der beliebtesten Webserver in der Welt und ist verantwortlich für das Hosten einiger der größten und verkehrsreichsten Websites im Internet. Es ist in den meisten Fällen ressourcenschonender als Apache und kann als Webserver oder Reverse-Proxy verwendet werden.
In diesem Artikel wird davon ausgegangen, dass Sie zumindest über Grundkenntnisse in Linux verfügen, wissen, wie man die Shell verwendet, und vor allem, dass Sie Ihre Website auf Ihrem eigenen VPS hosten. Die Installation ist recht einfach. Das werde ich tun zeigen Ihnen Schritt für Schritt die Installation von Nginx mit Fast-CGI auf einem CentOS 6-Server.
Nginx mit PHP-FastCGI auf CentOS 6 installieren
Schritt 1. Zur Installation müssen Sie zuerst die EPEL-yum-Repository-Informationen entsprechend Ihrer CentOS/RHEL-Version hinzufügen.
## RHEL/CentOS 6 32-Bit ## # wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm # rpm -ivh epel-release-6-8.noarch.rpm
## RHEL/CentOS 6 64-Bit ## # wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # rpm -ivh epel-release-6-8.noarch.rpm
Schritt 2. Nginx-Paket und Abhängigkeiten installieren.
Installation von Nginx mit folgendem Befehl:
yum update yum -y install nginx
Schritt 3. Installieren Sie die erforderlichen PHP-Pakete.
yum install php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy
Schritt 4. Spawn-fcgi installieren.
Jetzt installieren wir spawn-fcgi
mit dem folgenden Befehl unten:
yum install spawn-fcgi -y
Konfiguriere das Fast-CGI-Init-Skript:
nano /etc/init.d/php-cgi
#!/bin/sh # # php-cgi - php-fastcgi swaping via spawn-fcgi # # chkconfig: - 85 15 # description: Run php-cgi as app server # processname: php-cgi # config: /etc/sysconfig/phpfastcgi (defaults RH style) # pidfile: /var/run/php-cgi.pid . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 spawnfcgi="/usr/bin/spawn-fcgi" php_cgi="/usr/bin/php-cgi" prog=$(basename $php_cgi) server_ip=127.0.0.1 server_port=9000 server_user=nginx server_group=nginx server_childs=5 pidfile="/var/run/php_cgi.pid" # do not edit, put changes in /etc/sysconfig/phpfastcgi [ -f /etc/sysconfig/phpfastcgi ] && . /etc/sysconfig/phpfastcgi start() { [ -x $php_cgi ] || exit 1 [ -x $spawnfcgi ] || exit 2 echo -n $"Starting $prog: " daemon $spawnfcgi -a ${server_ip} -p ${server_port} -u ${server_user} -g ${server_group} -P ${pidfile} -C ${server_childs} -f ${php_cgi} retval=$? echo return $retval } stop() { echo -n $"Stopping $prog: " killproc -p ${pidfile} $prog -QUIT retval=$? echo [ -f ${pidfile} ] && /bin/rm -f ${pidfile} return $retval } restart(){ stop sleep 2 start } rh_status(){ status -p ${pidfile} $prog } case "$1" in start) start;; stop) stop;; restart) restart;; status) rh_status;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 3 esac
chmod +x /etc/init.d/php-cgi
Schritt 5. Konfigurieren Sie den Nginx-Webserver.
#nano /etc/nginx/conf.d/idroot.us.conf server { listen 80; server_name idroot.us www.idroot.us; access_log /var/www/idroot.us/logs/access.log ; error_log /var/www/idroot.us/logs/error.log ; location / { root /var/www/idroot.us/public_html; index index.php index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/idroot.us/public_html; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; root /var/www/idroot.us/public_html; fastcgi_param SCRIPT_FILENAME /var/www/idroot.us/public_html$fastcgi_script_name; include fastcgi_params; } location ~ /.ht { deny all; } }
Schritt 5. Nginx und PHP-FastCGI-Dienst starten.
etc/init.d/nginx start etc/init.d/php-cgi start
Wichtig :Aus Sicherheitsgründen sollten Sie die folgende Zeile in /etc/php.ini ändern/hinzufügen und Nginx neu starten:
cgi.fix_pathinfo=0
Herzlichen Glückwunsch! Sie haben Nginx und PHP-FastCGI erfolgreich installiert. Vielen Dank, dass Sie dieses Tutorial zur Installation von Nginx und PHP-FastCGI auf CentOS 6-Systemen verwendet haben. Für zusätzliche Hilfe oder nützliche Informationen empfehlen wir Ihnen, dies zu überprüfen die offizielle Nginx-Website.