Commencer
Avant Le serveur a construit un lamp
environnement, et je souhaite passer à un nginx
plus puissant que le logiciel serveur, et je souhaite également mettre à niveau php5 vers php7
Pas besoin d'entrer dans les détails lors de l'installation de nginx : sudo apt-get install nginx
, modifiez le port Apache avant de démarrer ng.
Installez php7
Téléchargez le code source sur http://php.net/downloads.php et décompressez-le.
# cd php7*** # ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-mcrypt=/usr/include --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache # make # make install
Afin de ne pas entrer en conflit avec 5, les dossiers sont tous en php7 et la dépendance de la réponse d'installation a provoqué une erreur lors du processus d'installation.
Connexion avec nginx
nginx lui-même ne peut pas traiter les scripts php et doit être envoyé à l'interpréteur php pour traitement. nginx envoie généralement la demande au processus de gestion fastcgi pour traitement. Le processus de gestion fascgi sélectionne le résultat du traitement du sous-processus cgi et le renvoie à nginx.
# cp php.ini-production /usr/local/php7/etc/php.ini # cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm # chmod +x /etc/init.d/php7-fpm # cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf # cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
Démarrez php-fpm
# service php7-fpm start
Si vous rencontrez un chemin de fichier journal qui n'existe pas, créez-le manuellement et accordez l'autorisation d'écriture.
# service php7-fpm start Starting php-fpm [07-Apr-2016 11:16:11] ERROR: [pool www] cannot get gid for group 'nobody' [07-Apr-2016 11:16:11] ERROR: FPM initialization failed failed
Lorsque vous rencontrez cette erreur, ajoutez un groupe personne groupadd nobody
et redémarrez.
Configuration de nginx
C'est à ce moment-là que l'accès au fichier php devient un fichier de téléchargement, car ng n'est pas configuré pour le traitement des réponses.
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }