Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


CentOS 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)

2014-11-27 09:22    评论: 29 收藏: 22 分享: 13    

第四步: 配置 LEMP 组合包

本教程的最后一步是调整 LEMP 组合包的配置。

使 Httpd 不可用

首先,让我们把早先随 PHP 包安装的 httpd 服务给禁用掉。

在 CentOS 7 系统上:

$ sudo systemctl disable httpd

在 CentOS 6 系统上:

$ sudo chkconfig httpd off 

配置 Nginx

接下来,让我们配置 nginx 虚拟主机,使得 nginx 可以通过 PHP-FPM 来处理 PHP 的任务。用文本编辑器打开 /etc/nginx/conf.d/default.conf ,然后按如下所示修改。

 $ sudo vi /etc/nginx/conf.d/default.conf 

server {
    listen       80;
    server_name  www.server_domain.com;
    root   /usr/share/nginx/html;
    index  index.php index.html index.htm;

    location / {
    }

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    }

    # nginx passes PHP scripts to FastCGI server via a TCP/9000 socket
    # this setting much be consistent with /etc/php-fpm.d/www.conf
    # try_files prevents nginx from passing bad scripts to FastCGI server
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

nginx 的默认工作线程数(在 /etc/nginx/nginx.conf 文件中指定的)是 1,让我们也来调整一下这个数字。通常来说我们创建的工作线程数应该和 CPU 核数相同。要确信您的 CPU 的核数,请运行下面这命令:

$ grep processor /proc/cpuinfo | wc -l

如果您的 CPU 是 4 核的,就如下所示修改 /etc/nginx/nginx.conf 文件。

$ sudo vi /etc/nginx/nginx.conf 

worker_processes  4;

配置 PHP

接下来,让我们对 PHP 的配置文件 /etc/php.ini 做自定义设置。更具体的就是在 /etc/php.ini 文件中增加以下两行。

cgi.fix_pathinfo=0
date.timezone = "PRC"

为了安全起见,我们希望的是 PHP 解释器只是处理指定文件路径的文件任务,而不是预测搜索一些并不存在的文件任务。上面的第一行起的就是这个作用。(LCTT 译注:原文用的时区是“America/New York”,根据国内情况,应该用 PRC或 Asia 下的中国城市。)

第二行定义的是 PHP 中日期/时间相关函数使用相关的默认时区。使用本指南,找出您所在的时区,并设置相应 date.timezone 的值

测试 PHP

最后,让我们来测试下 nginx 是否能处理 PHP 页面。在测试之前,请确保重启 nginx 和 PHP-FPM。

在 CentOS 7 系统上:

$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm 

在 CentOS 6 系统上:

$ sudo service nginx restart
$ sudo service php-fpm restart 

创建一个叫名叫 test.php 的文件,然后写入如下内容,并放入 /usr/share/nginx/html 目录。

<?php phpinfo(); ?>

打开浏览器,输入 http://nginx的IP地址/test.php 。

如果您能看到如上所示的页面,说明设置的 LEMP 完全成功!


via: http://xmodulo.com/install-lemp-stack-centos.html

作者:Dan Nanni 译者:runningwater 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

1234
查看其它分页:

发表评论


最新评论

我也要发表评论

linux 2015-6-14 23:19
1
灰度龙 发表于 2015-6-14 21:37 的评论:
配置nginx的default.conf文件完成后,重启出现如下错误:
nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
   Active: failed (Result: exit-code) since 日 2015-06-14 21:30:10 CST; 45s ago
     Docs: http://nginx.org/en/docs/
  Process: 4954 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCESS)
  Process: 6469 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
Main PID: 1695 (code=exited, status=0/SUCCESS)

6月 14 21:30:10 localhost.localdomain systemd[1]: Starting nginx - high performance web server...
6月 14 21:30:10 localhost.localdomain nginx[6469]: nginx: [emerg] invalid number of arguments in "try_files" directive in /e...onf:34
6月 14 21:30:10 localhost.localdomain nginx[6469]: nginx: configuration file /etc/nginx/nginx.conf test failed
6月 14 21:30:10 localhost.localdomain systemd[1]: nginx.service: control process exited, code=exited status=1
6月 14 21:30:10 localhost.localdomain systemd[1]: Failed to start nginx - high performance web server.
6月 14 21:30:10 localhost.localdomain systemd[1]: Unit nginx.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
当我去除不是很理解的:try_files $uri =404;这行后,重启正常。请问这行是怎么意思呢?
有关 try_files 的解释可参见: http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files
在 0.7.51 之后,才支持 =404 这样的数字参数,所以请确认你没写错,你的 nginx 版本足够新。
回复
灰度龙 2015-6-14 21:37
配置nginx的default.conf文件完成后,重启出现如下错误:
nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
   Active: failed (Result: exit-code) since 日 2015-06-14 21:30:10 CST; 45s ago
     Docs: http://nginx.org/en/docs/
  Process: 4954 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCESS)
  Process: 6469 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
Main PID: 1695 (code=exited, status=0/SUCCESS)

6月 14 21:30:10 localhost.localdomain systemd[1]: Starting nginx - high performance web server...
6月 14 21:30:10 localhost.localdomain nginx[6469]: nginx: [emerg] invalid number of arguments in "try_files" directive in /e...onf:34
6月 14 21:30:10 localhost.localdomain nginx[6469]: nginx: configuration file /etc/nginx/nginx.conf test failed
6月 14 21:30:10 localhost.localdomain systemd[1]: nginx.service: control process exited, code=exited status=1
6月 14 21:30:10 localhost.localdomain systemd[1]: Failed to start nginx - high performance web server.
6月 14 21:30:10 localhost.localdomain systemd[1]: Unit nginx.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
当我去除不是很理解的:try_files $uri =404;这行后,重启正常。请问这行是怎么意思呢?
4 回复
linux 2015-3-7 19:12
1
IAMblacker 发表于 2015-3-7 16:53 的评论:
最后放test.php的文件夹位置错了~~~nginx配置文件里面是/usr/share/nginx/html,小编你写放在 /var/www/html/ 目录~~~~
谢谢指正!我修改啦~~
回复
IAMblacker 2015-3-7 16:53
最后放test.php的文件夹位置错了~~~nginx配置文件里面是/usr/share/nginx/html,小编你写放在 /var/www/html/ 目录~~~~
6 回复
roach_sinai 2014-11-28 15:33  新浪微博网友评论
@蓝蓝小脚丫 挺好的!
回复
朝花夕拾.. 2014-11-28 09:12
谢谢分享
回复
来自 - 江西南昌 的 MSIE/Windows 用户 2014-11-28 08:11
1
火云仙圣 发表于 2014-11-27 11:33 的评论:
回复@Linux中国:@Linux中国 即便不是你杜撰的,你也最好改正,错误的东西你也要传播吗?百度都没有,这不是理由!lemp lnmp希望你百度下
百度了,lemp也可以这么叫,Nginx 发音为 Engine X....
12 回复
来自 - 广东佛山 的 Firefox/Windows 用户 2014-11-28 01:47
LEMP?LNMP?大家弄明白再评论吧,反正小编没乱搞
回复
GongBiao 2014-11-28 00:49
哇,LEMP这个高端呀,有时间要测试研究一下!
回复
顺便_粪 2014-11-27 13:02  新浪微博网友评论
Repost
回复
svolence 2014-11-27 12:03  新浪微博网友评论
@我的印象笔记
回复
火云仙圣 2014-11-27 11:33  新浪微博网友评论
回复@Linux中国:好吧,尊重原文也对。
回复
Linux中国 2014-11-27 11:33  新浪微博网友评论
回复@火云仙圣:国外原文如此,而且不是一个地方这样说,话说好像lnmp才是我们国内杜撰的。
回复
QQ920924960 2014-11-27 11:33  新浪微博网友评论
是LNMP吧?
回复
痴就是病字里一个知 2014-11-27 11:33  新浪微博网友评论
每次在openSUSE上部署都会有问题。到底是英语不过关。
回复
Linux中国 2014-11-27 11:33  新浪微博网友评论
不知道何时出现了一个LEMP的缩写法,究竟应该称之为LNMP还是LEMP?支持LNMP的点"支持",支持LEMP的请"评论"。//@RSnoder:LEMP是LNMP的小号吗?
1 回复
威谷子V 2014-11-27 11:33  新浪微博网友评论
@有道云笔记收藏
回复
火云仙圣 2014-11-27 11:33  新浪微博网友评论
回复@Linux中国:@Linux中国 即便不是你杜撰的,你也最好改正,错误的东西你也要传播吗?百度都没有,这不是理由!lemp lnmp希望你百度下
回复
JohnFuck 2014-11-27 11:33  新浪微博网友评论
微博不是人工发的吧
回复
Linux中国 2014-11-27 11:33  新浪微博网友评论
回复@火云仙圣:又不是我杜撰的。
回复
12下一页

热点评论

来自 - 江西南昌 的 MSIE/Windows 用户 2014-11-28 08:11
百度了,lemp也可以这么叫,Nginx 发音为 Engine X....
12
IAMblacker 2015-3-7 16:53
最后放test.php的文件夹位置错了~~~nginx配置文件里面是/usr/share/nginx/html,小编你写放在 /var/www/html/ 目录~~~~
6
灰度龙 2015-6-14 21:37
配置nginx的default.conf文件完成后,重启出现如下错误:
nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
   Active: failed (Result: exit-code) since 日 2015-06-14 21:30:10 CST; 45s ago
     Docs: http://nginx.org/en/docs/
  Process: 4954 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCESS)
  Process: 6469 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
Main PID: 1695 (code=exited, status=0/SUCCESS)

6月 14 21:30:10 localhost.localdomain systemd[1]: Starting nginx - high performance web server...
6月 14 21:30:10 localhost.localdomain nginx[6469]: nginx: [emerg] invalid number of arguments in "try_files" directive in /e...onf:34
6月 14 21:30:10 localhost.localdomain nginx[6469]: nginx: configuration file /etc/nginx/nginx.conf test failed
6月 14 21:30:10 localhost.localdomain systemd[1]: nginx.service: control process exited, code=exited status=1
6月 14 21:30:10 localhost.localdomain systemd[1]: Failed to start nginx - high performance web server.
6月 14 21:30:10 localhost.localdomain systemd[1]: Unit nginx.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
当我去除不是很理解的:try_files $uri =404;这行后,重启正常。请问这行是怎么意思呢?
4
火云仙圣 2014-11-27 10:33
@Linux中国 人家是首字母组合,哪有把音标写上去的,不要杜撰好吗!你也不是权威
4
Linux中国 2014-11-27 11:33
不知道何时出现了一个LEMP的缩写法,究竟应该称之为LNMP还是LEMP?支持LNMP的点"支持",支持LEMP的请"评论"。//@RSnoder:LEMP是LNMP的小号吗?
1
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。