安装 Nginx

想在 CentOS 系统上安装 Nginx ,你得先去加入一个资源库。像这样:

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

使用 vim 命令去打开 /etc/yum.repos.d/nginx.repo ,假设 nginx.repo 不存在,就会去创建一个这种文件,打开以后按一下小 i 键。进入编辑模式,然后复制粘贴以下这几行代码,完毕以后按 esc 键退出。再输入 :wq (保存并退出)

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

完毕以后,我们就能够使用 yum 命令去安装 nginx 了,像这样:

yum install nginx

安装好以后測试一下 nginx 服务:

service nginx status

应该会返回:

nginx is stopped (nginx 已停止)

再測试一下 nginx 的配置文件:

nginx -t

应该会返回:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

... syntax is ok。... test is successful,说明配置文件没问题。同一时候这个结果里你能够找到 nginx 的配置文件 nginx.conf 所在的位置。

操纵 nginx 服务

操纵服务,能够使用使用 service 命令,它能够启动(start),重新启动(restart)。或停止服务(stop),比方要启动 nginx 服务:

service nginx start

服务启动以后,你就能够在浏览器上使用server的 IP 地址,或者指向这个地址的域名訪问server指定的文件夹了。你会看到类似以下的这些文字。

Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to nginx.org. Commercial support is available at nginx.com. Thank you for
using nginx.

配置 nginx 虚拟主机

安装完 nginx 以后。第一件想到的事应该就是去创建虚拟主机,虚拟主机同意我们在同一台server上执行多个站点。我们能够为不同的域名绑定不同的文件夹,訪问这个域名的时候,会打开相应文件夹里面的东西。之前介绍过为 Apache
server创建虚拟主机
,以下来看一下为 nginx 配置虚拟主机。先进入到 nginx 配置文件文件夹:

cd /etc/nginx/conf.d

复制这个文件夹里的 default.conf ,复制以后的名字能够使用你的虚拟主机名字。

比方创建一个 nginx.ninghao.net 的虚拟主机。拷贝文件能够使用 cp 命令,像这样:

cp default.conf nginx.ninghao.net.conf

再去编辑一下这个复制以后的配置文件,能够使用 vim 命令:

vim nginx.ninghao.net.conf

你会看到像这种代码:

server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
...
}

server_name 就是主机名,也就是跟这个虚拟主机绑定在一块儿的域名。我事先把 nginx.ninghao.net 指向了服务器。这个虚拟主机就是为它准备的。所以,server_name 后面的东西就是 nginx.ninghao.net 。

紧接着 server_name 以下能够是一个 root,就是这个虚拟主机的根文件夹,也就是站点所在的文件夹。比方我们要把 nginx.ninghao.net 这个站点的文件放在/home/www/nginx.ninghao.net 以下,那么这个 root 就是这个路径。

然后去掉 location / 里面的 root 这行代码。再在 index 后面加上一种索引文件名称。也就是默认打开的文件。这里要加上一个 index.php ,这样訪问 nginx.ninghao.net 就能够直接打开 root 文件夹以下的 index.php 了。

稍后我们再去安装 php 。

改动之后,看起来像这样:

server {
listen 80;
server_name nginx.ninghao.net;
root /home/www/nginx.ninghao.net;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main; location / {
index index.php index.html index.htm;
}
...
}

这个配置文件先改动到这,稍后,我们再回来继续改动一下它。

保存一下,按 esc 。输入 :wp(保存并退出)。如今虚拟主机应该就能够使用了。主机的域名是 nginx.ninghao.net,訪问它的时候,打开的是 /home/www/nginx.ninghao.net 这个文件夹里面的东西,你能够在这个文件夹下放点东西。

重新启动 nginx 或者又一次载入 nginx 能够让配置文件生效。

service nginx reload

如今,打开浏览器,输入你为虚拟主机设置的域名,看看能否打开你指定的文件夹里的东西。

配置 php-fpm

要让 nginx 可以运行 php 文件,须要去安装一下 php-fpm,它直接包括在了 CentOS
资源库里。所以直接使用 yum 命令能够安装它:

yum install php-fpm

完毕以后,能够检查一下 php-fpm 的执行状态。使用 service 命令:

service php-fpm status

返回:

php-fpm is stopped(php-fpm 已停止)

启动 php-fpm 相同能够使用 service 命令:

service php-fpm start

让 nginx 能够运行 php

如今我们应该就能够让 nginx 去运行 php 了。只是你须要改动一下 nginx 的配置文件。之前我们在配置虚拟主机的时候。创建了一个 nginx.ninghao.net.conf 的配置文件,须要去改动下 nginx 的这个配置文件,才干去运行 php 。使用 vim 命令去编辑它:

vim /etc/nginx/conf.d/nginx.ninghao.net.conf

注意你的配置文件不一定叫 nginx.ninghao.net.conf,应该是你自己命名的配置文件。打开以后,找到以下这段字样的代码:

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#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;
#}

这是 nginx 默认给我们的用来运行 php 的配置。从 location 開始取消凝视,会让这个配置生效,然后我们还得简单去改动一下:

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
# root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

注意 root 那里仍然是被凝视掉的。还有 SCRIPT_FILENAME 后面改动了一下,把 /scripts 换成了 $document_root 。

保存并退出。然后又一次启动 nginx:

service nginx restart

測试能否够运行 php

如今,我们已经安装了 php-fpm,并改动了 nginx 的配置文件让它能够去运行 php。以下,我们得去測试一下,能够使用 php 的 phpinfo(); 函数。方法是在你的虚拟主机根文件夹以下,创建一个 php 文件,命名为 phpinfo.php,然后在这个文件中输入:

<?

php phpinfo(); ?

>

保存文件并退出。

在浏览器里打开刚才创建的这个 php 文件。我这里应该是 http://nginx.ninghao.net/phpinfo.php

打开以后,你应该能看到像以下这种界面。假设能,说明
nginx 已经能够运行 php 了。

为系统加入资源库

前面我们使用 yum 命令去安装了一些东西,用起来非常easy。yum + 要安装的东西 + install。它事实上是一个资源包的管理工具,用它安装东西的时候。会检查这个东西所依赖的其他的东西,在安装的同一时候,也会去安装这些被依赖的东西。CentOS 本身带了一些资源库。但并非全部的东西都在这些资源库里,所以,我们能够给系统手工的加入一些资源库,这样使用 yum 命令,就能够非常方便的去安装在资源库里的东西了。

在这里能够找到可用的资源库:http://iuscommunity.org/pages/Repos.html ,你要依据自己的系统的版本号去下载相应的资源库,然后安装在系统里面。

查看系统的版本号能够这样做:

cat /etc/redhat-release

我这里使用的是 CentOS 系统,所以返回了:

CentOS release 6.3 (Final)

说明我用的是 CentOS 6 ,而且是 64 位的,打开上面的资源库地址,找到 Release Packages 。然后找到 CentOS 6 这个区域以下的链接,我们用这个 epel 资源库。

打开这个地址以后。复制 Packages 以下的链接 epel-release-6-5.noarch 。然后回到我们连接到server的终端工具,Windows 用户应该用的是 putty 。用 cd
命令进入到一个文件夹里面,比方用户的根文件夹,能够这样:

cd ~

然后使用 wget 命令,把刚才复制的链接里的资源库下载下来:

wget http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/epel-release-6-5.noarch.rpm

 ls 命令能够查看一下当前这个文件夹以下的东西,你应该能够看到 epel-release-6-5.noarch.rpm(也或者是你选择要下载的资源库)。下载好以后,去安装一下:

rpm -ivh epel-release-6-5.noarch.rpm

查看一下系统里面的资源库:

yum repolist

你会看到 epel 这个资源库,它就是我们刚才安装的。系统里的资源库地址是在:/etc/yum.repos.d,在这里,你相同能够找到epel.repo

这样我们就能够使用 yum 命令去安装很多其它的东西了。

安装 mysql

mysql 能够管理站点用到的数据库,WordPress 和 Drupal 也都支持 mysql 数据库。所以我们的 Web 执行环境里,须要安装一个 mysql 。之前我们已经加入了资源库,所以能够直接使用 yum 命令去安装  mysql :

yum install mysql-server

安装完毕后。使用 service 命令启动 mysql 服务:

service mysqld start

然后我们须要简单配置一下 mysql ,默认安装以后 mysql 的 root 用户是没有password的,对于生产环境来说。这肯定是不行的。另外另一些安全相关的设置,能够使用以下这行命令去配置一下,它是一个向导。问你一些问题,你要给出答案,比方是否要设置 root 用户的password。 password是什么等等。

mysql_secure_installation

Enter current password for root (enter for none):

解释:输入当前 root 用户password,默觉得空,直接回车。

Set root password? [Y/n]  y

解释:要设置 root password吗?输入 y 表示愿意。

Remove anonymous users? [Y/n]  y

解释:要移除掉匿名用户吗?输入 y 表示愿意。

Disallow root login remotely? [Y/n]  y

解释:不想让 root 远程登陆吗?输入 y 表示愿意。

Remove test database and access to it? [Y/n]  y

解释:要去掉 test 数据库吗?输入 y 表示愿意。

Reload privilege tables now? [Y/n]  y

解释:想要又一次载入权限吗?输入 y 表示愿意。

安装 php 扩展

如今,我们有了能够提供 web 服务的 nginx ,而且安装了 php-fpm ,配置了 nginx 能够让它去执行 php 。也安装了数据库管理系统。只是在执行真正的站点的时候,我们还须要为 php 安装一些额外的扩展,比方 处理 mysql 数据库的 mysql 扩展,缓存功能的 apc 扩展,处理图像的 gd 扩展等等。

安装它们相同能够使用 yum 命令。

yum install php-pecl-apc php-mysql php-gd php-mcrypt php-pear php-mbstring php-xmlrpc php-dom

上面安装了一些 php 的扩展,假设你发如今安装站点的时候提示须要安装其他的扩展,相同能够使用 yum 命令去安装。安装完毕以后,须要重新启动一下 php-fpm :

service php-fpm restart

文件夹与文件的权限问题

站点上面有些文件夹或文件须要有写入权限,这样你得为这些文件夹和文件分配合适的权限,一般能够把它们的拥有者设置成 php 和 nginx 使用的用户。默认 nginx 的用户就是 nginx ,而 php-fpm 使用的用户默认是 apache

我们能够把它们改成一个统一的用户,能够改动 php-fpm 的用户为 nginx 。你能够使用以下的命令去查看一下 nginx 和 php-fpm 所使用的username:

ps aux|grep php
ps aux|grep nginx

改动所使用的用户,能够通过使用 nginx 和 php-fpm 的配置文件,nginx 的配置文件是:  /etc/nginx/nginx.conf 。php-fpm 的配置文件是:/etc/php-fpm.conf,还有在 /etc/php-fpm.d/* 这个文件夹里的全部文件都是 php-fpm 的配置文件。

默认这个文件夹里有一个 www.conf 。你能够编辑这个文件来改动
php-fpm 所使用的username称。使用 vim 命令:

vim /etc/php-fpm.d/www.conf

打开文件以后你能够搜索下关键词 user 或 apache。输入 :/user 或 :/apache 。会搜索到结果。按小 n 能够继续向下查找,按大N 能够向上查找。直到你看到:

user = apache

把它改动成:

user=nginx

esc 退出,再输入 :wq ,重新启动下 php-fpm。这样我们的 nginx server还有 php-fpm 会使用同一个用户:nginx,你能够把要能够有写入权限的文件夹与文件的拥有者改动成 nginx 即可了。能够使用 chown 命令:

chown -R nginx 文件夹名/文件名称

总结

好来,如今我们就已经拥有一台 LNMP 环境的server了。这个操作手冊里提供到的相关配置。还有非常多能够优化一下,比方 nginx 的配置文件,能够针对 Drupal 来做一些优化。

在兴许的文章里面,我会再具体的去解释一下这些配置文件的使用。


nginx + mysql + php-fpm 环境的更多相关文章

  1. 搭建windows环境下(nginx+mysql+php)开发环境

    搭建windows环境下(nginx+mysql+php)开发环境   1. 所需准备应用程序包        1.1 nginx 程序包nginx-1.0.4.zip或其他版本(下载地址: http ...

  2. LNMP(linux+nginx+mysql+php)服务器环境配置【转载】

    本文转载自 园友David_Tang的博客,如有侵权请联系本人及时删除,原文地址: http://www.cnblogs.com/mchina/archive/2012/05/17/2507102.h ...

  3. CentOS 7 下 JDK1.8+Maven+Nginx+MySql+Git+Redis环境安装

    CentOS 7 下 JDK1.8+Maven+Nginx+MySql+Git+Redis环境安装 安装目录准备 新建data目录,用来放下载的软件 mkdir -p /data 切换到该data目录 ...

  4. Docker + node(koa) + nginx + mysql 线上环境部署

    在上一篇 Docker + node(koa) + nginx + mysql 开发环境搭建,我们进行了本地开发环境搭建 现在我们就来开始线上环境部署 如果本地环境搭建没有什么问题,那么线上部署的配置 ...

  5. ubuntu14.04 LEMP(linux+nginx+mysql+php5)构建环境

    Install LEMP (Linux, Nginx, MySQL and PHP) Stack on Ubuntu Linux 14.04 LTS by VIVEK GITE on DECEMBER ...

  6. Windows下Nginx+Mysql+Php(wnmp)环境搭建

    前言 最近想在windows下使用nginx搭建web环境,本来想用套件(WNMP)一键安装,但后来放弃了,觉得还是自己动手,丰衣足食的好,而且套件的局限性太大.所以后来就各种搜索,看到前辈写关于wn ...

  7. LNMP(linux+nginx+mysql+php)服务器环境配置

    一.简介 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为 “engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服 ...

  8. CentOS 7 yum nginx MySQL PHP 简易环境搭建

    用centos自带的yum源来安装nginx,mysql和php,超级方便,省去编译的麻烦,省去自己配置的麻烦,还能节省非常多的时间. 我们先把yum源换成国内的阿里云镜像源(当然不换也可以),先备份 ...

  9. Mac OS + Nginx + Mysql + PHP 本地环境搭建

    本文是用Mac系统下搭建的环境,使用Linux的童鞋也不要在意,因为很相似,只有下载安装的方式有一点区别.直接进入正文: 1.首先我们需要下载Homebrew,Homebrew简称brew,是Mac ...

  10. CentOS 7 yum nginx MySQL PHP7 简易环境搭建(精)

    用centos自带的yum源来安装nginx,mysql和php,超级方便,省去编译的麻烦,省去自己配置的麻烦,还能节省非常多的时间. 我们先把yum源换成国内的阿里云镜像源(当然不换也可以),先备份 ...

随机推荐

  1. HTML form without CSRF protection,HTML表单没有CSRF保护

    HTML form without CSRF protection =HTML表单没有CSRF保护 CSRF是伪造客户端请求的一种攻击,CSRF的英文全称是Cross Site Request For ...

  2. ci框架中model简单的mysql操作

    <?php class SingerModel extends CI_Model { function SingerModel() { //会将数据库对象赋值给CI_Controller的db属 ...

  3. 三维重建:GitHub百度Apollo 2.0

    GitHub:https://github.com/ApolloAuto/apollo 1. 关于Apollo的数据:Apollo的数据会如何开放? 自动驾驶数据将包括具有高分辨率图像和像素级别标注的 ...

  4. jQuery鼠标划入划出

    今天来简单的谈谈jQuery的一个划入划出的方法,.首先划入划出能想到的东西有哪些呢,. 1:hover 2:mouseenter/mouseleave 3:mouseover/mouseout. 一 ...

  5. Ceres

    sudo apt-get install liblapack-dev libsuitesparse-dev libcxspares3.1.2 libgflags-dev libggoogle-glog ...

  6. Getting start with dbus in systemd (03) - sd-bus.h 使用例子 (systemd version>=221)

    sd-bus.h 例子 注意: sd-dbus 是systemd提供的lib,但是这个lib,只有在systemd>v221版本后才可以使用,centos 219版本太低,所以不能使用. 参考: ...

  7. ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法(去掉15px空白间距)

    但是在ios8中,设置setSeparatorInset:UIEdgeInsetsZero 已经不起作用了.下面是解决办法: 首先在viewDidLoad方法加入以下代码: if(leftTable! ...

  8. 40条常见的移动端Web页面问题解决方案

    1.安卓浏览器看背景图片,有些设备会模糊.想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍).例如一个div的宽高是100100,背景图必须得200200,然后b ...

  9. 我的第一次"闭包"应用

    结论: 闭包可以当作强类型语言如C++.Java的全局变量使用,非常巧妙 需求: ssm项目,使用pagehelper分页,在写前一页.后一页.第一页.最后一页等页面跳转时,遇到了问题,如果查询全部的 ...

  10. [POJ1155]TELE(树形背包dp)

    看到这道题的第一眼我把题目看成了TLE 哦那不是重点 这道题是树形背包dp的经典例题 题目描述(大概的): 给你一棵树,每条边有一个cost,每个叶节点有一个earn 要求在earn的和大于等于cos ...