打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CentOS 7下安装LNMP服务器 – 戊辰人博客
LNMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作用。正如其名称所暗示的, LNMP 包是由 Linux、nginx、MariaDB/MySQL 和 PHP 组成的。在传统的 LAMP 包中使用的 Apache HTTP 协议服务器性能低下而且难于大规模集群,相比来说 nginx 的高性能及轻量级等特性,正是其的替代方案。 MariaDB 是一款社区支持驱动的 MySQL 数据库的分支,其功能更多性能更佳。PHP,服务端编程语言,具体是由 PHP FastCGI 的增强版 PHP-FPM 组件来处理,生成网页动态内容。
这篇文章里,我将示范如何在 CentOS 操作平台上安装 LNMP 包。我的安装的目标是 CentOS 7 这个操作平台。
第一步: Nginx
1. 安装 Nginx
因为在CentOS 7的默认源中没有 Nginx ,所以我们要导入Nginx官方源,官方文档原文链接:http://nginx.org/en/linux_packages.html
创建/etc/yum.repo.d/nginx.repo 文件,内容如下:
1
2
3
4
5
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
安装:
1
yum install nginx
2. 启动 Nginx
安装完成后,nginx 是不会自动启动的。现在让我们来启动它吧,还要做些配置让其可以随着操作系统启动而启动。我们也需要在防火墙里打开 TCP/80 端口,以使得可以远程访问 nginx 的 web 服务。所有这些操作、设置都只需要输入如下命令就可实现。
01
02
03
04
05
06
07
08
09
10
11
# 启动
systemctl start nginx
# 加入开机启动
systemctl enable nginx
# 开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 载入防火墙规则,使刚才的规则生效
firewall-cmd --reload
3. 测试 Nginx
nginx 的默认文档要目录是 /usr/share/nginx/html。默认的 index.html 文件一定已经在这目录下了。让我们检测下是否可以访问到这个测试 web 页,输入 http://nginx的ip地址/ 访问。
如果您看到的是如上所示的页面的话,说明 nginx 已经正常启动。继续往下。
第二步: MariaDB
下一步就是安装 LNMP 包的数据库组件。CentOS/RHEL 6 或早期的版本中提供的是 MySQL 的服务器/客户端安装包,但 CentOS/RHEL 7 已使用了 MariaDB 替代了默认的 MySQL。作为 MySQL 的简单替代品,MariaDB 保证了与 MySQL 的 API 和命令行用法方面最大的兼容性。下面是关于怎么在 CentOS  7上安装和配置 MaraDB/MySQL 的操作示例。
如下所示操作来安装 MariaDB 服务/客户端包以及启动 MariaDB 服务。
1
2
3
4
5
6
7
8
# 安装
yum install mariadb-server
# 启动
systemctl start mariadb
# 加入开机启动
systemctl enable mariadb
第三步: PHP
PHP 是 LNMP 包中一个重要的组件,它负责把存储在 MariaDB/MySQL 服务器的数据取出生成动态内容。为了 LNMP 需要,您至少需要安装上 PHP-FPM 和 PHP-MySQL 两个模块。PHP-FPM(FastCGI 进程管理器)实现的是 nginx 服务器和生成动态内容的 PHP 应用程序的访问接口。PHP-MySQL 模块使 PHP 程序能访问 MariaDB/MySQL 数据库。
安装PHP模块
在CentOS 7上安装命令为:
1
yum install php php-fpm php-mysql
在 CentOS 6 和 CentOS 7 中,在安装 PHP 包的同时会把 Apache web 服务器(即 httpd)当做它的依赖包一起安装。这会跟 nginx web 服务器起冲突。这个问题会在下一节来讨论。
取决于您的使用情况,可以使用 yum 命令来定制您的 PHP 引擎,也许会想安装下面的任意一个扩展 PHP 模块包。
php-cli: PHP 的命令行界面。从命令行里测试 PHP 时非常有用。
php-gd: PHP 的图像处理支持。
php-bcmath: PHP 的数学支持。
php-mcrypt: PHP 的加密算法支持 (例如 DES、Blowfish、CBC、 CFB、ECB ciphers 等)。
php-xml: PHP 的 XML 解析和处理支持。
php-dba: PHP 的数据抽象层支持。
php-pecl-apc: PHP 加速器/缓存支持。
安装时,在CentOS 7中,要查看可用的 PHP 模块的完整列表的话,可以运行:
1
yum search php-
启动 PHP-FPM
1
2
systemctl start php-fpm
systemctl enable php-fpm
第四步: 配置 LNMP 组合包
1. 禁用httpd服务
1
systemctl disable httpd
2. 配置 Nginx
接下来,让我们配置 nginx 虚拟主机,使得 nginx 可以通过 PHP-FPM 来处理 PHP 的任务。用文本编辑器打开 /etc/nginx/conf.d/default.conf ,然后按如下所示修改。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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 的核数,请运行下面这命令:
1
grep processor /proc/cpuinfo | wc -l
如果您的 CPU 是 4 核的,就如下所示修改 /etc/nginx/nginx.conf 文件。
1
worker_processes  4;
3. 配置 PHP
接下来,让我们对 PHP 的配置文件 /etc/php.ini 做自定义设置。更具体的就是在 /etc/php.ini 文件中增加以下两行。
1
2
cgi.fix_pathinfo=0
date.timezone = "PRC"
为了安全起见,我们希望的是 PHP 解释器只是处理指定文件路径的文件任务,而不是预测搜索一些并不存在的文件任务。上面的第一行起的就是这个作用。(LCTT 译注:原文用的时区是“America/New York”,根据国内情况,应该用 PRC或 Asia 下的中国城市。)
第二行定义的是 PHP 中日期/时间相关函数使用相关的默认时区。使用本指南,找出您所在的时区,并设置相应 date.timezone 的值。
4. 测试 PHP
最后,让我们来测试下 nginx 是否能处理 PHP 页面。在测试之前,请确保重启 nginx 和 PHP-FPM。
1
2
3
4
5
# 先检查nginx配置是否正确
nginx -t
# 如有配置错误,先改正错误后再执行下面的命令
systemctl restart nginx
systemctl restart php-fpm
创建一个叫名叫 test.php 的文件,然后写入如下内容,并放入 /usr/share/nginx/html 目录。
1
<?php phpinfo(); ?>
打开浏览器,输入 http://nginx的IP地址/test.php 。
如果您能看到如上所示的页面,说明设置的 LNMP 完全成功!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
云服务器 手动搭建 LNMP 环境(CentOS 7)
流行架构
阿里云腾讯云服务器手动配置WordPress网站教程
Centos 7.3搭建LNMP环境
RHEL / CentOS 7 安裝 Nginx, MySQL, PHP (LEMP) | Linux 技術手札
ubuntu 18.04 安装 LNMP
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服