Maison >développement back-end >Problème PHP >Comment compiler et installer nginx et php

Comment compiler et installer nginx et php

藏色散人
藏色散人original
2022-12-19 09:34:395124parcourir

Comment compiler et installer nginx et php : 1. Installez les packages dépendants via la commande yum install ; 2. Téléchargez le package de code source, décompressez-le et compilez-le ; 3. Modifiez le fichier de configuration de l'hôte virtuel ; systemctl pour démarrer ; 5. Téléchargez php Et décompressez et compilez.

Comment compiler et installer nginx et php

L'environnement d'exploitation de ce tutoriel : système windows10, version php7.2.33, ordinateur DELL G3

Comment compiler et installer nginx et php ?

nginx et php compilent et installent

nginx compile et installe

Installer les packages de dépendances

yum install -y gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel

Téléchargez le package de code source et décompressez

[root@web03 ~]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
[root@web03 ~]# tar xf nginx-1.18.0.tar.gz
[root@web03 ~]# cd nginx-1.18.0/

Compilez le code source

[root@web03 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
[root@web03 nginx-1.18.0]#  make && make install
[root@web03 nginx-1.18.0]# cd /usr/local/nginx/
[root@web03 nginx]# tree
.
├── conf
│   ├── fastcgi.conf
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── html
│   ├── 50x.html
│   └── index.html
├── logs
└── sbin
    └── nginx

Configuration de base

[root@web03 nginx]# useradd -s /sbin/nologin -M www
[root@web03 conf]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
[root@web03 nginx]# mkdir conf/conf.d
# 拆分默认配置和虚拟主机
user  www;
worker_processes  auto;
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;
    server_tokens off;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;
    include conf.d/*.conf;   
}
#虚拟主机配置文件
[root@web03 conf]# vim conf.d/www.conf
server {
    listen       80;
    server_name  localhost;
    charset utf-8;
    location / {
        root   html;
        index  index.html index.htm;
    }
    error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
    location ~ \.php$ {
        proxy_pass   http://127.0.0.1;
    }
    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME      
        $document_root$fastcgi_script_name;
        include        fastcgi_params;
        proxy_set_header   Referer           $http_referer;
        proxy_set_header   Cookie            $http_cookie;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   X-Forwarded-For   
       $proxy_add_x_forwarded_for;
    }
}

Démarrez nginx

nginx
nginx -s reload 重启

Configurer le démarrage de systemctl

[root@web03 conf]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/bin/rm -f /usr/local/nginx/logs/nginx.pid 
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
[Install]
WantedBy=multi-user.target

php binaire

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php71w

php compiler et installer

paquet de dépendances

téléchargement du code source

[root@web03 ~]# wget http://hk1.php.net/get/php-7.2.33.tar.gz
[root@web03 ~]# tar xf php-7.2.33.tar.gz
[root@web03 ~]# cd php-7.2.33/

compile

yum install bzip2 bzip2-devel -y
yum install  curl curl-devel -y
yum install php-mcrypt  libmcrypt  libmcrypt-devel -y
yum install readline-devel -y 
./configure --prefix=/usr/local/php7 --enable-fpm \
--with-zlib \
--enable-inline-optimization \
 --disable-debug \
--disable-rpath \
 --enable-shared \
--enable-opcache \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl \
--with-zlib \
--enable-zip \
--with-bz2 \
--with-readline 
make && make install

configuration

ln -s /usr/local/php/bin/php /usr/bin/php
php -i | grep ini
Configuration File (php.ini) Path => /usr/local/php/lib
Scan this dir for additional .ini files => (none)
# 移动php.ini, 从源码拷贝
[root@web03 ~]# cp php-7.2.33/php.ini-production /usr/local/php/lib/php.ini
php -i | grep ini
Loaded Configuration File => /usr/local/php/lib/php.ini 已经加载配置文件
# php-fpm
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
# 更改www.conf
sed -i 's#nobody#www#g' www.conf

démarrage du système

[root@web03 conf]# cat /usr/lib/systemd/system/php-fpm.service
[Unit]
Description=php-fpm
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -INT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# 启动
[root@web03 etc]# systemctl daemon-reload
[root@web03 etc]# systemctl start php-fpm.service

test nginx

[root@web03 sbin]# cd /usr/local/nginx/html/
[root@web03 html]# cat index.php 
<?php
phpinfo()
?>
systemctl restart nginx

tester mysql

<?php 
$link=mysql_connect("172.25.90.14","root","redhat"); 
if(!$link) echo "FAILD!连接错误,用户名密码不对"; 
else echo "OK!可以连接"; 
?>

Apprentissage recommandé : "Tutoriel vidéo PHP

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!

Déclaration:
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