Home >Operation and Maintenance >Nginx >How to install PHP7.4 and Nginx on Centos

How to install PHP7.4 and Nginx on Centos

WBOY
WBOYforward
2023-05-20 08:55:05960browse

Preparation

1. Download the required installation package

wget
wget

2. Install the required extension

yum install -y gcc gcc-c++ make cmake bison autoconf wget lrzsz libtool libtool-ltdl-devel freetype-devel libjpeg.x86_64 libjpeg-devel libpng-devel gd-devel python-devel patch sudo openssl* openssl openssl-devel ncurses-devel bzip* bzip2 unzip zlib-devel libevent* libxml* libxml2-devel libcurl* curl-devel readline-devel sqlite-devel libsodium-devel https://dl.fedoraproject.org/pub/epel/7/x86_64/packages/o/oniguruma-5.9.5-3.el7.x86_64.rpm https://dl.fedoraproject.org/pub/epel/7/x86_64/packages/o/oniguruma-devel-5.9.5-3.el7.x86_64.rpm

Install php

1. Unzip - enter the directory - generate the compiled file

tar -zxvf php-7.4.0.tar.gz
cd php-7.4.0
./configure --prefix=/usr/local/php \
  --with-config-file-scan-dir=/usr/local/php/etc/ \
  --with-mhash --with-pdo-mysql \
  --with-openssl --with-mysqli \
  --with-iconv --with-zlib \
  --enable-inline-optimization \
  --disable-debug --disable-rpath \
  --enable-shared --enable-xml \
  --enable-bcmath --enable-shmop \
  --enable-sysvsem --enable-sysvshm --enable-mbregex \
  --enable-mbstring --enable-ftp \
  --enable-pcntl --enable-sockets \
  --with-xmlrpc --enable-soap \
  --without-pear --with-gettext \
  --enable-session --with-curl \
  --enable-opcache --enable-fpm \
  --without-gdbm --enable-fast-install \
  --disable-fileinfo --with-sodium

2. Compile and install

make && make install

3. Configuration file

1. Copy the configuration file to the installation directory

cp ~/php-7.4.0/php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

2. Modify the php configuration file php.ini

vim /usr/local/php/etc/php.ini

The content is modified as follows:

;不显示错误,默认
display_errors = off

;在关闭display_errors后开启php错误日志(路径在php-fpm.conf中配置),默认
log_errors = on

;字符集,默认
default_charset = "utf-8"

;文件上传大小,默认值太小,建议修改10m
upload_max_filesize = 2m

;maximum size of post data that php will accept. 表单最大值,默认是8m,如果表单含有多图上传,大小可能不够。超过该大小后台收不到 表单数据
post_max_size = 8m

;设置php的扩展库路径,默认被注释了,之后一个文件夹 于 你/usr/local/php/lib/php/extensions/ 下的文件夹同名。
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/"

;设置php的时区
date.timezone = prc

;开启opcache,默认是0
[opcache]
; determines if zend opcache is enabled
opcache.enable=1

3. Modify the configuration file php-fpm of php-fpm. conf

vim /usr/local/php/etc/php-fpm.conf

The contents are modified as follows

; 去掉里分号,方便以后重启。建议修改
;default value: none
; 下面的值最终目录是/usr/local/php/var/run/php-fpm.pid
; 开启后可以平滑重启php-fpm
pid = run/php-fpm.pid

; 设置错误日志的路径,可以默认值
; note: the default prefix is /usr/local/php/var
; default value: log/php-fpm.log, 即/usr/local/php/var/log/php-fpm.log
error_log = /var/log/php-fpm/error.log

; log等级,可以默认值
; possible values: alert, error, warning, notice, debug
; default value: notice
log_level = notice

; 后台运行,默认yes,可以默认值
; default value: yes
;daemonize = yes

; 引入www.conf文件中的配置,可以默认值
include=/usr/local/php/etc/php-fpm.d/*.conf

4. Modification

vim /usr/local/php/etc/php.ini

The content is modified as follows:

; 设置用户和用户组,默认都是nobody。可以默认值
user = nginx
group = nginx

; 设置php监听
; 下面是默认值,不建议使用。可以默认值
listen = 127.0.0.1:9000
; 根据nginx.conf中的配置fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
;listen = /var/run/php-fpm/php-fpm.sock

######开启慢日志。可以默认值
slowlog = /var/log/php-fpm/$pool-slow.log
request_slowlog_timeout = 10s

4. php-fpm operation

/usr/local/php/sbin/php-fpm -t    # php-fpm检测配置文件是否正确
/usr/local/php/sbin/php-fpm     # php-fpm启动
kill -int `cat /usr/local/php/var/run/php-fpm.pid`   # php-fpm关闭
kill -usr2 `cat /usr/local/php/var/run/php-fpm.pid`   #php-fpm平滑重启

Install nginx

1. Unzip - enter the directory - generate the compiled file

tar -zxvf nginx-1.17.6.tar.gz
cd nginx-1.17.6
./configure \
  --prefix=/usr/local/nginx \
  --with-http_stub_status_module \
  --with-http_ssl_module \
  --with-http_realip_module \
  --with-http_sub_module \
  --with-http_gzip_static_module \
  --with-pcre

2. Compile && Install

make
make install

Test /usr/ local/nginx/sbin/nginx -t

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful #测试成功

3. Configuration file

1. Configure nginx.conf and execute vim /usr/local/nginx/conf/nginx.conf

The content is modified as follows

#user nobody;
worker_processes 1;
error_log /www/logs/nginx/error.log;
error_log /www/logs/nginx/error_notice.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;
  #access_log logs/access.log main;
  sendfile    on;
  #tcp_nopush   on;
  #keepalive_timeout 0;
  keepalive_timeout 65;
  #gzip on;
  #显示目录
  #autoindex on;
  #显示文件大小
  #autoindex_exact_size on;
  #显示文件时间
  #autoindex_localtime on;
  include /www/conf/vhosts/*.conf;
}

2. Add website configuration file

vim /www/conf/vhosts/default.conf

File content As follows

server{
  listen 80;
  server_name localhost,www.test.com;
  root /www/web/default;
  location / {
    #开启 url 美化
    if (!-e $request_filename){
      rewrite ^/(.*) /index.php last;
    }
    index index.html index.php;
  }
  location ~ \.php$ {
    include fastcgi.conf;
    fastcgi_pass 127.0.0.1:9000;
    try_files $uri = 404;
  }
}

4. Test configuration

Run /usr/local/nginx/sbin/nginx -t. If the test fails, return to check whether there are errors in the execution steps

5 , nginx operation

/usr/local/nginx/sbin/nginx -t     # 检测配置文件是否正确
/usr/local/nginx/sbin/nginx       # 启动
/usr/local/nginx/sbin/nginx -s stop   # 关闭
/usr/local/nginx/sbin/nginx -s reload  #平滑重启

The above is the detailed content of How to install PHP7.4 and Nginx on Centos. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete