Centos7 安装 Nginx+PHP+Mysql

Nginx 是一款免费、开源、高性能的HTTP服务器。Nginx 因性能稳定、功能丰富、配置简单、资源消耗低而著称。本文介绍如何在Linux服务器(CentOS 7)上安装Nginx、MySQL和PHP7(或者PHP5),简称LNMP。

Centos7 安装 Nginx+PHP+Mysql

安装Nginx

一、安装gcc

nginx编译依赖gcc环境,centos7上没有gcc环境,则用yum安装gcc:

yum install gcc-c++

二、安装pcre pcre-devel

是一个perl库,nginx的http模块视图pcre来解析正则表达式:

yum install -y pcre pcre-devel

三、安装zlib

zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包内容进行gzip:

yum install -y zlib zlib-devel

四、安装OpenSSL

OpenSSL是一个安全套接字层密码库,包括主要的密码算法,常用的密钥和证书封装管理功能以及SSL协议:

yum install -y openssl openssl-devel

五、安装nginx

1、下载安装包

官网下载nginx安装包.tar.gz格式,地址:http://nginx.org/en/download.html

2、解压

依次执行如下命令:

tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1

3、配置

nginx-1.10.1 版本中你就不需要去配置相关东西,默认就可以了,也可以自定义配置目录

a、使用默认设置:

./configure

b、自定义配置:

./configure \
--prefix=/usr/local/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--pid-path=/usr/local/nginx/conf/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
#建议使用第一种配置方式

4、编译安装

 make && make install

查找安装路径:

whereis nginx

六,启动、停止nginx

cd /usr/local/nginx/sbin/
./nginx 
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

查询nginx进程:

ps aux|grep nginx

七、重启nginx

1.先停止再启动(推荐):

对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:

./nginx -s quit
./nginx

2.重新加载配置文件:

当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:

./nginx -s reload

启动成功后,可以在浏览器看到 welcome to nginx

八、设置开机自启动

即在rc.local 增加启动代码就行

 vi /etc/rc.local

在最后添加代码:

 /usr/local/nginx/sbin/nginx

设置执行权限

 chmod 755 rc.local

安装php-fpm

Nginx本身不能处理PHP,作为web服务器,当它接收到请求后,不支持对外部程序的直接调用或者解析,必须通过FastCGI进行调用。

如果是PHP请求,则交给PHP解释器处理,并把结果返回给客户端。PHP-FPM是支持解析php的一个FastCGI进程管理器。

提供了更好管理PHP进程的方式,可以有效控制内存和进程、可以平滑重载PHP配置。

一、安装依赖包

yum install libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel

二、安装php

1、下载安装包

地址:http://www.php.net/downloads.php

2、解压安装包

tar xvf php-7.2.5.tar.bz2 -C /var/src

3、配置

cd /var/src/php-7.2.5
./configure --prefix=/usr/local/php7 \
--with-config-file-scan-dir=/etc/php.d \
--with-config-file-path=/etc \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--with-openssl \
-enable-xml \
--enable-sockets \
--enable-fpm \
--with-mcrypt \
--with-bz2

4、编译安装

make && make install

5、添加php和php-fpm配置文件

cp /usr/local/src/php-7.2.5/php.ini-production /etc/php.ini
cd /usr/local/php7/etc/
cp php-fpm.conf.default php-fpm.conf
sed -i 's@;pid = run/php-fpm.pid@pid = /usr/local/php7/var/run/php-fpm.pid@' php-fpm.conf

6、添加php-fpm启动脚本

cp /usr/local/src/php-7.2.5/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

7、添加php-fpm至服务列表并设置开机自启

chkconfig --add php-fpm     
chkconfig --list php-fpm     
chkconfig php-fpm on

8、启动服务

service php-fpm start

三、配置nginx对fastcgi的支持
1、备份默认的配置文件

cp /usr/local/nginx/conf/nginx.conf.default /usr/local/nginx/conf/nginx.conf

2、修改配置,支持php格式文件

vi /usr/local/nginx/conf/nginx.conf

将如下代码的#号删除

#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;

将如下代码

location / {
    root   html;
    index  index.html index.htm;
}

改为:

location / {
    root   html;
    index  index.php index.html index.htm;
}

将如下代码改为

#location ~ \.php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#    include        fastcgi_params;
#}

改为:

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #include        fastcgi_params;
    include         fastcgi.conf;
}

重新载入nginx的配置文件

cd /usr/local/nginx/sbin
./nginx -s reload

浏览器测试效果

在 /usr/loacl/nginx/html新建index.php,内容如下

$conn=mysqi_connect('127.0.0.1','root','root');
if ($conn){
  echo "LNMP platform connect to mysql is successful!";
}else{
  echo "LNMP platform connect to mysql is failed!";
}
phpinfo();

在浏览器访问测试:

可以输出php配置信息,则配置成功

上一篇:URL设置原则 下一篇:关闭apache自动目录列表功能的三种方法

评论

评论(0)

暂无评论