Ubuntu在线安装nginx+php7.2

安装nginx

apt install nginx
service nginx start        ##  启动nginx
service nginx stop         ##  关闭nginx
service nginx restart      ##  重启nginx
service nginx reload       ##  重载nginx
service nginx status       ##  nginx运行状态
nginx -t                   ##  nginx配置检测,提示successful,说明nginx各项配置没有错误,可以重启或重载,否则,请根据错误提示修改
说明:

nginx默认配置文件目录 /etc/nginx/site-enables/ 该目录下的配置文件都会被读取,一般正式环境会选择新建一个单独的配置文件,配置文件后缀.conf
下面安装php,稍后再修改nginx的监听php的配置

安装php

add-apt-repository ppa:ondrej/php   ## 添加安装源
apt-get update                      ## 更新安装源
### php 5.6
apt install php5.6                 
apt install php5.6-fpm            

### php 7.2
apt install php7.2                 
apt install php7.2-fpm
apt install php5.6-gd php5.6-xml php5.6-curl php5.6-mysql php5.6-zip php5.6-mbstring    ## 安装php扩展
apt install php7.2-gd php7.2-xml php7.2-curl php7.2-mysql php7.2-zip php7.2-mbstring
注意:

安装php和xml扩展的时候可能会报错,这是因为安装这两个程序都会默认安装apache2,而我们在 第一步 就已经安装了nginx;apache和nginx再安装后都会自动运行,
两者的默认端口均为80端口,在nginx已经运行的状态下,apache就会报错,反之亦然!

解决方法:

  1. 无视,因为我们用不到apache,但是遇到服务器重启的时候可能会导致nginx 不可用,所以该方法不可取
  2. 出现错误后直接卸载apache即可" apt-get --purge remove apache2 "
  3. nginx安装完成后先把nginx服务停止,然后再安装php以及相关扩展 “service nginx stop” ,然后再用上面的命令卸载apache即可,也可修改apache的默认监听端口,只要与nginx不一样就行,最后启动nginx
php配置:

配置路径 /etc/php/7.2/fpm/php.ini

vim /etc/php/7.2/fpm/php.ini 
upload_max_filesize = 20M            ## 上传文件限制,默认2M,这里修改为20M
post_max_size = 20M                  ## POST方法可以接受的信息最大量,默认2M,这里修改为20M
memory_limit = 2048M                 ## php内存限制,默认128M,这里修改为2G,视服务器配置而定,这里服务器内存为4G

重启fpm

service php7.2-fpm restart

修改nginx监听php

这里使用fpm.sock的方式,并新建配置文件"demo.conf"

vim /etc/nginx/sites-enabled/demo.conf
server {
    listen 80;

    root /var/www/html;                      

    index index.html index.htm index.nginx-debian.html index.php;

    server_name wangyandashabi.com;  
        
        client_max_body_size 20m;                
          
    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {   

        include snippets/fastcgi-php.conf;
            
        fastcgi_pass unix:/run/php/php7.2-fpm.sock; 
            
    }                                                

}

重启nginx

测试

web目录下新建php测试文件

vim /var/www/html/test.php

<?php phpinfo(); ?>

打开浏览器访问该页面 http://ip/domain/test.php 即可查看配置是否正确,配置完成后删除测试文件

修改php上传文件大小限制

编辑/etc/php/7.2/fpm/php.ini 修改如下配置

file_uploads = On
post_max_size = 8M
upload_max_filesize = 2M

## 参考配置
max_execution_time = 600
max_input_time = 600
memory_limit = 1024M

PHP-FPM进程数管理

编辑 /etc/php/7.2/fpm/pool.d/www.conf

## 静态方式下开启的php-fpm进程数量
pm.max_children = 100

## 动态方式下的起始php-fpm进程数量
pm.start_servers = 30

## 动态方式下的最小php-fpm进程数
pm.min_spare_servers = 20

## 动态方式下的最大php-fpm进程数
pm.max_spare_servers = 100

#每个子进程在处理了多少个请求数量之后就重启
pm.max_requests = 500