陈奇网络工作室

在CentOS7.2中构建NginxPHPMariadb环境

建设工作站服务器

最近有部署ERP PHP-web测试页环境的需求,需要部署nginx php的CGI套接字模式、mysql环境。 要确定是否存在服务端口,请直接安装yum install -y net-tools (如果系统上尚未安装netstat,因为您已经习惯使用netstat命令)

实验环境:

Linux版: CentOS 7.2

nginx版本: nginx-1.10.1

PHP版本: php-5.6.5

Mysql版本: MariaDB-5.5.52

一.首先引入nginx

安装了相关的依赖软件包

openssl-devel、zlib-devel、pcre-devel

程序默认以nobody身份运行,并使用nginx用户运行。 首先添加nginx组和用户,不创建主目录,不允许登录系统

#groupaddnginx

# useradd-m-s/sbin/nolog in-gnginxnginx

要安装nginx,请使用nginx-1.10.1.tar.gz

#tarxfnginx-1.10.1.tar.gz

#cdnginx-1.10.1

指定安装目录和运行时使用的所有者和所属组,并启用状态监视模块等

#./configure\\\\& quot;

--prefix=/usr/local/nginx\\\\

- PID-path=/usr/local/nginx/logs/nginx.PID\\

- lock-path=/var/lock/nginx.lock\\

--user=nginx\\\\

--group=nginx\\\\

--with-http_ssl_module\\\\& quot;

--with-http_flv_module\\\\& quot;

- with-http _ stub _ status _ module\\

- with-http _ gzip _ static _ module\\ & amp; quot;

- http-client-body-temp-path=/var/tmp/nginx/\\& amp; quot;

- http-proxy-temp-path=/var/tmp/nginx/proxy/\ & amp; quot;

- http-fastcgi-temp-path=/var/tmp/nginx/fcgi/\ \

- http-uw SGI-temp-path=/var/tmp/nginx/uw SGI\\

- http-scgi-temp-path=/var/tmp/nginx/scgi\\

--with-pcre

大致配置结果

配置摘要

usingsystemPCRElibrary

通用系统组件库

md5:usingOpenSSLlibrary

sha1:usingOpenSSLlibrary

通用系统库

nginxpathprefix:/usr/local/nginx

nginx binary file:/usr/local/nginx/sbin/nginx

nginxmodulespath:/usr/local/nginx/modules

nginxconfigurationprefix:/usr/local/nginx/conf

nginxconfigurationfile:/usr/local/nginx/conf/nginx.conf

nginx pidfile:/var/run/nginx/nginx.PID

nginxerrorlogfile:/usr/local/nginx/logs/error.log

nginxhttpaccesslogfile:/usr/local/nginx/logs/access.log

nginxhttpclientrequestbodytemporaryfiles:/var/tmp/nginx/client /

nginxhttpproxytemporaryfiles:/var/tmp/nginx/proxy /

nginxhttpfastcgitemporaryfiles:/var/tmp/nginx/fcgi /

nginxhttpuwsgitemporaryfiles:/var/tmp/nginx/uw SGI

nginxhttpscgitemporaryfiles:/var/tmp/nginx/scgi

上述配置完成后,编译并安装

#makemakeinstall

# mkdir/var/tmp/nginx/client/- PV

编译并安装后,/usr/local下会出现名为nginx的目录。 进入这个目录的话目录会非常简单。

配置文件存储在conf目录中,web文件存储在html中,日志文件存储在logs中。

sbin目录中只能运行一个程序nginx

二.引入php环境

答: a. FastCGI是http服务器和动态脚本语言之间可扩展、快速通信的接口

b. Nginx是一个轻量级的http服务器,必须使用第三方FastCGI处理器才能分析PHP

c. PHP-FPM是第三方FastCGI进程管理器,作为PHP的修补程序开发,在安装过程中也必须与PHP源代码一起编译。

也就是说,PHP-FPM被编译成PHP内核,因此在处理性能方面更为出色; 同时,它在更高的并发处理方面也优于spawn-fcgi引擎。

因此,建议使用Nginx PHP/PHP-FPM组合分析PHP。

首先安装php依赖软件包

yum install-ygccgcc-clib xml2 libxml2- develautoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreeetype-develzllibzlibzlibjpe

解压缩下载的tar软件包

#tar-xvzfphp-5.6.5.tar.gz

进入解冻后的php-5.6.5

#cdphp-5.6.5

#./configure-- prefix=/usr/local/PHPenable-fpmenable-mbstringwith-MySQL=MySQL ndwith-mysqli=

#makemakeinstall

查看php版本

#php-v

PHP5.6.5(CLI ) built:Jan10201703:53:13 ) ) ) ) ) ) ) ) PHP5.6.5(CLI ) built:Jan10201703:53:13 ) ) )

版权所有( c ) 1997-2014ThePHPGroup

ZendEnginev2.6.0,版权所有( c ) 1998-2014ZendTechnologies

如果不能,可以通过在php可执行文件中创建软链接并将其复制到/usr/bin/php或复制到/usr/bin/下来验证php的版本

# ln-s/usr/local/PHP/bin/PHP/usr/bin/PHP

或者

# CP-RAF/usr/local/PHP/bin/PHP/usr/bin/PHP

将php配置文件php.ini和安装目录中名为php.ini-development的配置文件模板复制到php目录中

# CP-RAF PHP-5.6.5/PHP.ini-development/usr/local/PHP/lib/PHP.ini

当然,还需要配置php-fpm。 安装php时,已经创建了配置模板。 位于/usr/local/PHP/etc/php-fpm.conf.default中,所以复制此模板并将其命名为PHP-fpm.conf就可以了,然后抓住它

这是一个可执行文件,可以直接运行php-fpm来执行。 还有netstat -an| grep php-fpm,你看,果然是9000号端口在监听

# CP-RAF/usr/local/PHP/etc/PHP-fpm.conf.default/usr/local/PHP/etc/PHP-fpm.conf

#whereisphp-fpm

PHP-FPM的结构与优化

PHP的全局配置文件是php.ini,在上一步中将其复制到/usr/local/php/lib/php.ini下。 根据每个APP应用的需要,可以正确配置php.ini。

以PHP-FPM引擎的性能分析为中心进行说明。

根据上面指定的安装路径,PHP-FPM的缺省配置文件为/usr/local/PHP/etc/PHP-fpm.conf。

php-fpm.conf是XML格式的纯文本文件,内容简单易懂。 这里重点介绍几个重要的配置标签。

标签listen_address是fastcgi进程配置为监听的IP地址和端口。默认值为127.0.0.1:9000,可以更改端口

value name=listen _ address 127.0.0.1:9000/value

标签display_errors用于设置是否显示PHP错误消息。 默认值为0,不显示错误消息。 如果设置为1,则可以显示PHP错误消息。

value name=display _ errors0/value

标签user和group用于设置运行FastCGI进程的用户和用户组。 请注意,此处指定的用户和用户组将与在Nginx配置文件中指定的用户和用户组相匹配。

valuename=usernobody/value

valuename=groupnobody/value

标签max_children用于设置FastCGI的进程数。 根据官方的建议,对于内存小于2GB的服务器,只能开启64个进程,而对于内存大于4GB的服务器,可以开启200个进程。

valuename=max_children5/value

request_terminate_timeout标签用于设置FastCGI执行脚本的时间。 默认值为0s,即无限运行,可以根据情况进行修改。

value name=request _ termin ate _ time out 0s/value

标签rlimit_files用于设置PHP-FPM打开的文件描述符的限制,默认值为1024。 此标签的值必须与Linux内核打开的文件数量相关联。 例如,要将此值设置为65535,请单击,

在Linux命令行中: quot; ulimit-HSN65536\\& quot; 中选择另一种天花板类型。

value name=rlimit _ files 1024/value

标签max_requests指示每个children处理的最大请求数,缺省设置为500。

value name=max _ requests 500/value

allowed_clients标签用于设置允许访问FastCGI进程解析器的IP地址。 如果不在此指定IP地址,则不接受从Nginx转发的PHP解析请求。

value name=allowed _ clients 127.0.0.1/value

在管理FastCGI进程并配置php-fpm后,可以启动FastCGI进程

/usr/local/php/sbin/php-fpm

FastCGI进程启动后,它接收的IP地址和端口也会启动,并可以通过ps和netstat查看相关信息

由于Nginx本身不解析PHP,因此要实现Nginx对PHP的支持,实际上必须将对PHP页面的请求传递到fastCGI进程监听的IP地址和端口。

如果将php-fpm视为动态APP应用服务器,则Nginx实际上是反向代理服务器。 Nginx通过反向代理功能实现PHP的分析,这是Nginx实现PHP动态分析的原理

Nginx配置文件的路径为/usr/local/nginx/conf/nginx.conf。 以下是在Nginx上支持PHP分析的示例虚拟主机配置示例

# VI/usr/local/nginx/conf/nginx.conf

fastcgi_param命令指定PHP动态程序所在的主目录,即在$fastcgi_script_name之前指定的路径。 这里是/usr/local/nginx/html目录

FastCGI_params文件是FastCGI进程参数设置文件,在安装Nginx后缺省生成。 本节使用include命令包括fastcgi参数配置文件

配置Nginx FastCGI后,需要添加一些FastCGI优化指令,以确保PHP环境在Nginx上快速稳定地运行。 优化的例子如下所示。

将以下代码添加到Nginx主配置文件的HTTP级别

location~\\\\.php${

roothtml;

fastcgi_pass127.0.0.1:9000;

fastcgi_indexindex.php;

fastcgi _ param script _ filename $ document _ root $ fastcgi _ script _ name;

includefastcgi_params;

# fastcgi _ cache _ path/usr/local/nginx/fastcgi _ cache levels=1:2keys _ zone=test:10 min active=5m;

fastcgi_connect_timeout300;

fastcgi_send_timeout300;

fastcgi_read_timeout300;

fastcgi_buffer_size64k;

fastcgi_buffers464k;

fastcgi_busy_buffers_size128k;

fastcgi _ temp _ file _ write _ size 128 k;

#fastcgi_cacheTEST;

fastcgi_cache_valid2003021h;

fastcgi_cache_valid3011d;

fastcgi_cache_validany1m;

}

说明上述代码的含义。

第一行代码指定FastCGI缓存的文件路径、目录结构级别、关键字区域的保存时间和非活动删除时间。

FastCGI_connect_timeout指定与后端fastcgi的连接的超时时间。

FastCGI_send_timeout指定向FastCGI发送请求的超时时间。 这是在两次握手完成后向fastcgi发送请求的超时时间。

FastCGI_read_timeout指定接收FastCGI响应的超时时间。 此值是在两次握手完成后接收fastcgi响应的超时时间。

FastCGI_buffer_size用于指定读取fastcgi响应的第一部分所需的缓冲区大小。 此值表示使用一个64KB的缓冲区读取响应的第一部分(响应标头),可以设置为fastcgi_buffers选项指定的缓冲区大小。

FastCGI_buffers指定本地缓冲fastcgi响应请求所需的缓冲区数量和大小。 如果PHP脚本生成的页面大小为256KB,则为缓存分配4个64KB的缓冲区。 如果页面大小大于256KB,则大于256KB的部分将缓存在fastcgi_temp指定的路径中,但这不是一个好方法,因为内存处理数据的速度比硬盘快。 通常,此值应该是站点中PHP脚本生成的页面大小的中间值。 如果站点中的大多数脚本生成的页面大小为256KB,则可以将此值设置为16 16k、4 64k等。

fastcgi_busy_buffers_size的默认值是fastcgi_buffers的两倍。

fastcgi_temp_file_write_size表示写入缓存文件时使用的数据块的大小,默认值是fastcgi_buffers的两倍。

FastCGI_cache意味着打开fastcgi缓存并为其分配名称。 打开缓存可以有效地减轻CPU的负担并防止502错误,但在某些情况下,打开缓存会带来许多问题。

fastcgi_cache_valid和fastcgi用于指定响应代码的缓存时间。 实例的值表示高速缓存200和302个响应1小时,301个响应1天,其他响应1分钟。

用Nginx测试PHP的分析功能

在本部分中,将在/usr/local/nginx/html目录下创建phpinfo.php文件。 内容如下。

? phpphpinfo (;

下次从浏览器访问http://ip/index.html时,默认情况下浏览器会显示“Welcome to Nginx! 显示“”。 表示Nginx正常工作。

然后,在浏览器中访问http://ip/phpinfo.php并成功解析PHP后,将显示PHP安装配置和功能列表的统计信息。

三. yum安装Mariadb数据库

删除所有与MySQL/MariaDB相关的rpm程序包

CentOS 7源中不再包含MySQL,而是更改为MariaDB。

1、使用rpm-QA搜索mariadb中的现有程序包:

如果存在,则使用rpm-enodepsmariadb-*将删除所有内容

2、使用rpm -qa | grep mysql查找mysql现有程序包:

如果存在,请使用yumremovemysqlmysql-server MySQL-libs compat-MySQL删除所有内容;

我推荐使用系统附带的mariadb,所以直接安装yum很方便

3、yum安装玛丽亚数据库

# yum install-ymariadbmariadb-server

注: mariadb是数据库客户端,mariadb-server是数据库服务器端

4、命令启动MariaDB服务

#systemctlstartmariadb

5、查看mariadb流程服务是否在跑

#ps-ef|grepmariadb

root 1013110095019:24 pts/200:00:00 grep-- color=automariadb

mysql10197100090Jan19? 15:56:01/usr/sbin/mysqld-- basedir=/usr-- datadir=/var/lib/MySQL-- plugin-dir=/usr/lib 64/mysqld

6、查看数据库状态

#systemctlstatusmariadb

7 .然后运行mysql_secure_installation初始化配置MariaDB :

#mysql_secure_installation

在这个阶段进入的话,root初始密码为空,回到车上就可以了。 我个人认为,此时可以选择修改和设置数据库的root密码。 而且,在以下设置中,我认为Disallow root login remotely、removetestdatabaseandaccesstoit除了n以外还可以是y

8、登录MariaDB,创建相应的数据库用户和数据库

)1)使用mysql -uroot -p登录,回车后系统会提示输入密码。

)2)创建新用户,其中$password填写自己设置的密码。 当然也可以稍后修改;

创建用户\\& amp; quot; git\\& quot; $password\\& quot; \& quot; localhost\\& quot; identifiedby\\& quot;

)3)安装存储引擎

Maria db [ none ] set storage _ engine=innodb;

(4)建立数据库

Maria db [ none ] createdatabasedatabase _ namecharactersetutf 8;

(5)用户权限设定

grantallprivilegeson *.* to\\ & amp; quot; root\\\& quot; \& quot; @\\& quot; \& #039; %\\& quot; identifiedby\\& quot; \\& quot; $password\\& quot;

#上面的定义可以是,root用户可以从任何计算机远程连接到数据库中的所有内容,拥有最高权限,并且有权允许他人进行远程连接。

经过以上操作步骤,即使lnmp环境基本上已经构建完毕。 然后,只需将APP应用程序代码放入Nginx的html中,并设置APP应用程序和数据库连接的配置文件即可。

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3