找回密码
 骑士注册

QQ登录

微博登录


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

2014-11-27 09:22    评论: 32 收藏: 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
查看其它分页:

发表评论


最新评论

我也要发表评论

[1]
odo [Iron|Windows 7] 发表于 2017-01-06 22:47 的评论:
$ sudo yum php php-fpm php-mysql    此处命令是不是少了个install??
[2]
linux [Chrome 55.0|Mac 10.11] 发表于 2017-01-08 00:29 的评论:
确实
odo [QQ Browser 9.5|Windows 7] 2017-01-08 19:42 1 回复
原文,作者也是少了,挺粗心的哈...新手安装,肯定会莫名其妙。^_^
[1]
灰度龙 发表于 2015-06-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;这行后,重启正常。请问这行是怎么意思呢?
linux 2015-06-14 23:19 回复
有关 try_files 的解释可参见: http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files
在 0.7.51 之后,才支持 =404 这样的数字参数,所以请确认你没写错,你的 nginx 版本足够新。
[1]
IAMblacker 发表于 2015-03-07 16:53 的评论:
最后放test.php的文件夹位置错了~~~nginx配置文件里面是/usr/share/nginx/html,小编你写放在 /var/www/html/ 目录~~~~
linux 2015-03-07 19:12 回复
谢谢指正!我修改啦~~
roach_sinai 2014-11-28 15:33  新浪微博网友评论 回复
@蓝蓝小脚丫 挺好的!
朝花夕拾.. 2014-11-28 09:12 回复
谢谢分享
[1]
火云仙圣 发表于 2014-11-27 11:33 的评论:
回复@Linux中国:@Linux中国 即便不是你杜撰的,你也最好改正,错误的东西你也要传播吗?百度都没有,这不是理由!lemp lnmp希望你百度下
来自 - 江西南昌 的 MSIE/Windows 用户 2014-11-28 08:11 12 回复
百度了,lemp也可以这么叫,Nginx 发音为 Engine X....
来自 - 广东佛山 的 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  新浪微博网友评论 1 回复
不知道何时出现了一个LEMP的缩写法,究竟应该称之为LNMP还是LEMP?支持LNMP的点"支持",支持LEMP的请"评论"。//@RSnoder:LEMP是LNMP的小号吗?
威谷子V 2014-11-27 11:33  新浪微博网友评论 回复
@有道云笔记收藏
JohnFuck 2014-11-27 11:33  新浪微博网友评论 回复
微博不是人工发的吧
Linux中国 2014-11-27 11:33  新浪微博网友评论 回复
回复@火云仙圣:又不是我杜撰的。
RSnoder 2014-11-27 11:33  新浪微博网友评论 回复
LEMP是LNMP的小号吗?
ClaireTan 2014-11-27 10:33  新浪微博网友评论 回复
有空看!
青松梁 2014-11-27 10:33  新浪微博网友评论 回复
不是LNMP吗
守候_65434 2014-11-27 10:33  新浪微博网友评论 回复
很及时 很有用
再地铁上 2014-11-27 10:33  新浪微博网友评论 回复
是lnmp
火云仙圣 2014-11-27 10:33  新浪微博网友评论 4 回复
@Linux中国 人家是首字母组合,哪有把音标写上去的,不要杜撰好吗!你也不是权威
火云仙圣 2014-11-27 10:33  新浪微博网友评论 回复
不要瞎起名字啊
Yugive13 2014-11-27 10:33  新浪微博网友评论 回复
学学先
shanlinzi 2014-11-27 10:33  新浪微博网友评论 回复
为什么不叫lnmp组合
返回顶部

分享到微信朋友圈

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