Maison > Opération et maintenance > Nginx > le corps du texte

Comment installer plusieurs versions de PHP pour Nginx sous le système Linux

WBOY
Libérer: 2023-05-11 19:34:04
avant
1302 Les gens l'ont consulté

version Linux : 64 bits centos 6.4

version nginx : nginx1.8.0

version php : php5.5.28 et php5.4.44

Notez que si php5.5 est la version principale et a été installé dans le /usr/ répertoire local/php, puis installez d'autres versions de php et spécifiez différents répertoires d'installation.

Installez php

# wget http://cn2.php.net/get/php-5.4.44.tar.gz/from/this/mirror
# tar zxvf php-5.4.44.tar.gz
# cd php-5.4.44
#./configure --prefix=/usr/local/php5.4.44 \
--with-curl \
--with-freetype-dir \
--with-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysql \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-mbregex \
--enable-mbstring \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip
# make && make install
# cp -r ./sapi/fpm/php-fpm.conf /usr/local/php5.4.44/etc/php-fpm.conf
# cp php.ini-development /usr/local/php5.4.44/lib/php.ini
# cp -r ./sapi/fpm/php-fpm /etc/init.d/php-fpm5.4.44
Copier après la connexion

Modifiez le port d'écoute de php-fpm.conf à 9001, car la version principale 5.5.28 écoute sur 9000.

; note: this value is mandatory.
listen = 127.0.0.1:9001
Copier après la connexion

Démarrez php-fpm

# /etc/init.d/php-fpm5.4.44
Copier après la connexion

L'installation de php est réussie et vérifiez la progression

#ps aux|grep php
Copier après la connexion

Comment installer plusieurs versions de PHP pour Nginx sous le système Linux

Maintenant, php-fpm a été démarré.

Configurer nginx

Ajouter une nouvelle configuration du port 8054 et pointer vers 9001 et le répertoire spécifié :

server {
    listen    8054;
    server_name localhost;


    location / {
      #root  html;
root /usr/www5.4.44;
      index index.html index.htm;
    }


    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
      root  html;
    }


location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param script_filename /usr/www5.4.44$fastcgi_script_name;
}
 
  }
Copier après la connexion

le fichier de configuration nginx nginx.conf est dans

# cd /usr/local/nginx/conf
Copier après la connexion

La configuration complète de nginx est la suivante :

#user nobody;
worker_processes 4;
 
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
 
#pid    logs/nginx.pid;
 
 
events {
  worker_connections 1024;
}
 
 
http {
  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;
 
  #keepalive_timeout 0;
  keepalive_timeout 65;
 
  #gzip on;
 
  server {
    listen    80;
    server_name localhost;
 
    #charset koi8-r;
 
    #access_log logs/host.access.log main;
 
    location / {
      #root  html;
			root /usr/www;
      index index.html index.htm;
    }
 
    #error_page 404       /404.html;
 
    # redirect server error pages to the static page /50x.html
    #
    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
      root  html;
    }
 
    # proxy the php scripts to apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #  proxy_pass  http://127.0.0.1;
    #}
 
    # pass the php scripts to fastcgi server listening on 127.0.0.1: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;
    #}
 
		location ~ \.php$ {
		root html;
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		include fastcgi_params;
		fastcgi_param script_filename /usr/www$fastcgi_script_name;
		}
 
    # deny access to .htaccess files, if apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #  deny all;
    #}
  }
	
	server {
    listen    8054;
    server_name localhost;
 
    location / {
      #root  html;
			root /usr/www5.4.44;
      index index.html index.htm;
    }
 
    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
      root  html;
    }
 
		location ~ \.php$ {
		root html;
		fastcgi_pass 127.0.0.1:9001;
		fastcgi_index index.php;
		include fastcgi_params;
		fastcgi_param script_filename /usr/www5.4.44$fastcgi_script_name;
		}
 
  }
 
 
	
  # another virtual host using mix of ip-, name-, and port-based configuration
  #
  #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 ssl;
  #  server_name localhost;
 
  #  ssl_certificate   cert.pem;
  #  ssl_certificate_key cert.key;
 
  #  ssl_session_cache  shared:ssl:1m;
  #  ssl_session_timeout 5m;
 
  #  ssl_ciphers high:!anull:!md5;
  #  ssl_prefer_server_ciphers on;
 
  #  location / {
  #    root  html;
  #    index index.html index.htm;
  #  }
  #}
 
}
Copier après la connexion

Redémarrer nginx

# /usr/local/nginx/sbin/nginx -s reload
Copier après la connexion

Notez que vous devez ouvrir un nouveau port dans le pare-feu, sinon vous ne pourrez pas accéder à :

Configuration du pare-feu

Notez que si vous souhaitez accéder à la page Web de la machine virtuelle sur un machine locale telle que xp, s'il s'agit de centos6, vous devez modifier le pare-feu pour démarrer le port 80

# cd /etc/sysconfig
Copier après la connexion

Modifiez le fichier iptables, ou éditez-le directement avec vim

# vim /etc/sysconfig/iptables
Copier après la connexion

Ajoutez la ligne suivante pour ouvrir le port 80 du pare-feu :

-a input -m state --state new -m tcp -p tcp --dport 8054 -j accept
Copier après la connexion

Redémarrez le pare-feu

# /etc/init.d/iptables restart
Copier après la connexion

Si le test est réussi, vérifiez phpinfo()

Comment installer plusieurs versions de PHP pour Nginx sous le système Linux

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal