当前位置:首页 > 技术文章 > 正文内容

Centos7学习笔记(十九)- lnmp组合的安装与集成

ivker_lee4年前 (2021-10-12)技术文章344

一、安装

学习环境下,nginx采用官方安装

sudo yum install yum-utils

vi /etc/yum.repos.d/nginx.repo

编辑以下内容进去:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

其中,$releasever填写RHEL/Centos的系统版本

sudo yum install nginx


安装PHP7.1版本

yum install epel-release -y
rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php71w php71w-fpm php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysqlnd php71w-mbstring php71w-bcmath php71w-pecl-memcached php71w-pecl-mongodb php71w-pecl-redis php71w-opcache php71w-mcrypt php71w-xml php71w-embbedded

  

二、nginx与php的集成

主要涉及3个指令:fastcgi_pass、fastcgi_index、fastcgi_param。以下是示例来说明用法:

location ~ .*\.php(\/.*)*$ {                      《==========location匹配.php结尾的文件名并匹配其后续参数
             fastcgi_pass unix:/run/php-fpm/www.sock;        《==========fastcg_pass指令指示nginx把php交由谁来处理,这里是交给本地unix类型文件处理。也可以写作127.0.0.1:9000(IP地址加php-fpm运行的端口)            
             fastcgi_index   index.php;                    《==========php程序文件的索引文件是什么
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;      《===========这里写法固定。SCRIPT_FILENAME是固定的变量,$document_root$fastcgi_script_name表示把前面定义的root下的php文件名传递出去
             include fastcgi_params;                        《=================这里其实是用include包括了一个文件进来,是/etc/nginx下的factcgi_params文件。
     }

打开/etc/nginx/fastcgi_params文件,可以看到

fastcgi_param  QUERY_STRING       $query_string;

fastcgi_param  REQUEST_METHOD     $request_method;

fastcgi_param  CONTENT_TYPE       $content_type;

fastcgi_param  CONTENT_LENGTH     $content_length;


fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  REQUEST_URI        $request_uri;

fastcgi_param  DOCUMENT_URI       $document_uri;

fastcgi_param  DOCUMENT_ROOT      $document_root;

fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REQUEST_SCHEME     $scheme;

fastcgi_param  HTTPS              $https if_not_empty;


fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;


fastcgi_param  REMOTE_ADDR        $remote_addr;

fastcgi_param  REMOTE_PORT        $remote_port;

fastcgi_param  SERVER_ADDR        $server_addr;

fastcgi_param  SERVER_PORT        $server_port;

fastcgi_param  SERVER_NAME        $server_name;


# PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param  REDIRECT_STATUS    200;

其实这里用fast_param指令定义了一堆的变量。


三、附件上传大小限制


nginx有一个

client_max_body_size=200m


PHP有2个

php.ini文件中,

post_max_size =200M

upload_max_filesiz =200M

四、集成时的用户与权限


1、ningx进程的用户

默认在/etc/nginx/nginx.conf文件中,

user nginx;

2、php-fpm进程的用户

默认在/etc/php-fpm.d/www.conf文件中

user = apache

group = apache

3、统一新建一个www的用户

sudo groupadd -r -g 49 www

sudo useradd -r -u 49 -g 49 -c "www user" -d /usr/share/www -s /sbin/nologin www

4、给/www/html目录授权

sudo chown -R www:www /www/html/

5、更改上述1、2中的用户后,重启nginx和php-fpm

sudo systemctl restart nginx

sudo systemctl restart php-fpm


以上做的好处:

可以将nfs上的共享目录,rsync的nfs备份目录,都统一授权给www(提前在对应服务器上建立好www账户),解决权限、用户容易混乱的问题。

五、nginx、php和mysql分离


1、需要在新mysql服务器上,授权一个用户远程登录。

grant all privileges on *.* to www@"%" identified by 'Langrenqingge123';

分享给朋友:

相关文章

 Centos7学习笔记(十七)- iptable防火墙

Centos7学习笔记(十七)- iptable防火墙

本文大部分内容摘录自https://www.cnblogs.com/f-ck-need-u/p/7397146.html1、syn flood攻击查看在linux系统中,可以用以下命令查看是否遭受syn flood攻击。netstat -tnlpa | grep tcp | awk '{print $6}' | sort | uniq -c2、防火墙数...

Nginx常用编译模块

Nginx常用编译模块

    因为某些特殊需求,最近在折腾网站支持TLS1.3。因此做一些笔记。    首先,要支持TLS1.3,需要openssl在1.1.0以上版本。需要系统重新编译安装。其次,需要nginx调用新版本openssl,用“nginx -V”命令可以查看调用的openssl版本详情。然后下载对应版本的nginx源码,重新编译nginx。    以下罗列nginx编译常用编译模块:&...

Centos7学习笔记(九)- 基础系统优化

Centos7学习笔记(九)- 基础系统优化

本部分内容是针对运维管理过程中,为了达到规范、便捷、增强基础安全性等目的,而对初始安装的生产(也包括测试)用操作系统,做各项系统优化、规范工作。(持续更新。。。)1、做好服务器的用途规划(含IP规划)和磁盘目录(比如一般备份用的服务器,独立建立/data目录)2、如有必要,尽量做本地hosts解析;或者搭建本地dns解析服务器,所有非dns服务器dns指向该服务器。3、分组各服务器,各组指定更改yum源为不同的公网yum源(比如阿里源、163源、清华源等),如有可能,自行搭建yum源服务器,所有...

 Centos7学习笔记(十八)- nginx基础与模块

Centos7学习笔记(十八)- nginx基础与模块

一、安装安装分为2种,yum安装和源码包编译安装。yum又分为官方源安装和epel源安装。官方的参考官方文档,主要执行以下3步:sudo yum install yum-utilssudo vi /etc/yum.repo.d/nginx.repo[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ g...

 Centos7学习笔记(十四)- SSH部分

Centos7学习笔记(十四)- SSH部分

1、数字签名了解ssh之前,先了解什么是数字签名?http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.htmlhttp://www.youdzone.com/signature.html参看这2篇文章,通俗易懂的解释了什么是数字签名。简单的讲,就是有一个CA中心,它可以颁发“数字证书”,这个证书,可以证明其后的公钥真伪性,以便客户端正确识别。2、SSH基本原理与运用(一)以下部分,抄录于“阮一峰”博客,链接:htt...

Centos7学习笔记(一)

Centos7学习笔记(一)

1、安装部分新知a、LVM——逻辑卷管理,作用:动态管理磁盘分区空间,缺点:影响高并发下的磁盘性能b、CentOS 7安装之前,修改网卡名称:在安装界面,按“tab”键,调整内核参数,添加“net.ifnames=0 biosdevname=0”这2个参数值(如果是安装好系统后修改,则需几步:1、重命名/etc/sysconfig/network-script/ifcfg-ens33为ifcfg-eth0,并修改内容将DEVICE和NAME值修改为eth0;2、修改/etc/default/gr...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。