(转自美团云知识库Chris)

简介

LNMP是Linux、Nginx、MySQL(MariaDB)和PHP的缩写,这个组合是最常见的WEB服务器的运行环境之一。本文将带领大家在CentOS 7操作系统上搭建一套LNMP环境。

本教程适用于CentOS 7.x版本。

在安装LNMP环境之前,您需要先对CentOS操作系统做一些初始化的工作,可以参考CentOS系统初始化设置


安装Nginx

美团云的CentOS系统模板中配置了内网源,下载速度较快,推荐使用yum安装Nginx:

sudo yum install nginx

按照提示,输入yes后开始安装。安装完毕后,Nginx的配置文件在/etc/nginx目录下。使用以下命令启动Nginx:

sudo systemctl start nginx

检查系统中firewalld防火墙服务是否开启,如果已开启,我们需要修改防火墙配置,开启Nginx外网端口访问。

sudo systemctl status firewalld

如果显示active (running),则需要调整防火墙规则的配置。

修改/etc/firewalld/zones/public.xml文件,在zone一节中增加:

<zone>
...
<service name="nginx"/>
<zone>

保存后重新加载firewalld服务:

sudo systemctl reload firewalld

您可以通过浏览器访问 http://<外网IP地址> 来确定Nginx是否已经启动。

最后将Nginx设置为开机启动:

sudo systemctl enable nginx.service

安装MySQL(MariaDB)

MariaDB是MySQL的一个分支,主要由开源社区进行维护和升级,而MySQL被Oracle收购以后,发展较慢。在CentOS 7的软件仓库中,将MySQL更替为了MariaDB。

我们可以使用yum直接安装MariaDB:

sudo yum install mariadb-server

安装完成之后,执行以下命令重启MariaDB服务:

sudo systemctl start mariadb

MariaDB默认root密码为空,我们需要设置一下,执行脚本:

sudo /usr/bin/mysql_secure_installation

这个脚本会经过一些列的交互问答来进行MariaDB的安全设置。

首先提示输入当前的root密码:

Enter current password for root (enter for none):

初始root密码为空,我们直接敲回车进行下一步。

Set root password? [Y/n]

设置root密码,默认选项为Yes,我们直接回车,提示输入密码,在这里设置您的MariaDB的root账户密码。

Remove anonymous users? [Y/n]

是否移除匿名用户,默认选项为Yes,建议按默认设置,回车继续。

Disallow root login remotely? [Y/n]

是否禁止root用户远程登录?如果您只在本机内访问MariaDB,建议按默认设置,回车继续。 如果您还有其他云主机需要使用root账号访问该数据库,则需要选择n

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

是否删除测试用的数据库和权限? 建议按照默认设置,回车继续。

Reload privilege tables now? [Y/n]

是否重新加载权限表?因为我们上面更新了root的密码,这里需要重新加载,回车。

完成后你会看到Success!的提示,MariaDB的安全设置已经完成。我们可以使用以下命令登录MariaDB:

mysql -uroot -p

按提示输入root密码,就会进入MariaDB的交互界面,说明已经安装成功。

最后我们将MariaDB设置为开机启动。

sudo systemctl enable mariadb

安装PHP

我们可以直接使用yum安装PHP:

sudo yum install php-fpm php-mysql

安装完成后我们将php-fpm启动:

sudo systemctl start php-fpm

将php-fpm设置为开机启动:

sudo systemctl enable php-fpm

php安装完成之后,需要设置一下php session的目录:

sudo mkdir /var/lib/php/session/
sudo chown -R apache:apache /var/lib/php/session/

这时php-fpm已经安装完毕,但是现在需要配置一下Nginx,在/etc/nginx/conf.d目录中新建一个名为php.conf的文件,其内容为:

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

然后执行以下命令使我们的配置生效:

sudo systemctl reload nginx

以上我们配置了Nginx的8000端口用来测试,如果您在美团云控制台创建机器时选择了绑定防火墙,需要检查该防火墙是否允许8000端口,如果不允许的话,您可以在防火墙设置中新增防火墙,并关联到该主机。

我们在/usr/share/php目录下新建一个名为phpinfo.php的文件用来展示phpinfo信息,文件内容为:

<?php echo phpinfo(); ?>

我们从浏览器打开 http://<外网IP地址>:8000/phpinfo.php,您就能看到phpinfo信息了,说明我们php环境已经部署成功:

验证PHP安装成功后,需要将此phpinfo.php文件删除,线上环境尽量不要暴漏使用的软件版本及路径信息,以防被入侵者利用。

CentOS 7 上搭建LNMP环境的更多相关文章

  1. docker下安装centos,并在其上搭建lnmp环境

    一.安装CentOs容器 1.进入docker下载CentOs,这里我使用的CentOs6.8 docker pull centos:6.8 2.创建容器 sudo docker run --priv ...

  2. 烂泥:学习centos之快速搭建LNMP环境

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 以前在centos下安装软件都是喜欢源码安装,不过昨天因为一个事情需要一个centos 下的LNMP环境.反倒不会搞了,今天特意记录下,以备后续使用. 一 ...

  3. CentOS 7上搭建Docker环境

    一.Docker介绍和安装 http://linux.cn/article-4340-1.html Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机 ...

  4. 如何在CentOS 7上搭建LAMP环境(使用YUM或编译)

    什么是LAMP? LAMP是Linux,Apache,MySQL和PHP的缩写. 它是一堆应用程序的堆栈,它们在Web服务器上一起工作以托管网站. 话虽如此,每个程序都有不同的目的: 在LAMP中, ...

  5. centos 6.5搭建LNMP环境

    1:查看环境: 1 2 [root@10-4-14-168 html]# cat /etc/redhat-release CentOS release 6.5 (Final) 2:关掉防火墙 1 [r ...

  6. CentOS 6.6搭建LNMP环境

    一.安装前 1.关闭linux的安全机制 vim /etc/selinux/config SELINUX=enforcing  改为  SELINUX=disabled 2.关闭iptables防火墙 ...

  7. 在CentOS 7上搭建Docker环境

      Preface       We commonly use VMware or VirtualBox to install our Virtual Machines before.For the ...

  8. Centos 7.6搭建LNMP环境的web服务器

    一.安装软件 1.1.MYSQL安装 下载mysql的repo源: wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rp ...

  9. 如何在 Debian 9 上搭建 LNMP 环境

    步骤一.安装Nginx Nginx在默认的Debian存储库中可用. 使用以下命令更新软件包索引并安装Nginx: sudo apt update sudo apt install nginx 安装过 ...

随机推荐

  1. USACO 1.4 ariprog 解题报告

    这是继虫洞之后又让我为难的一个 剪枝题目,无论如何,做的再快,也只能过6个点,最后三个点也TLE.后来参考了一下标答,大概思路是这样的. 朴素算法就不多说了,枚举a,b然后判断就行,网上说这样优化到位 ...

  2. 轻松搞定Ajax(分享下自己封装ajax函数,其实Ajax使用很简单,难是难在你得到数据后来怎样去使用这些数据)

    hey,guys!今天我们一起讨论下ajax吧!此文只适合有一定ajax基础,但还是模糊状态的同志,当然高手也可以略过~~~ 一.概念 Ajax(Asynchronous Javascript + X ...

  3. ZRender源码分析2:Storage(Model层)

    回顾 上一篇请移步:zrender源码分析1:总体结构 本篇进行ZRender的MVC结构中的M进行分析 总体理解 上篇说到,Storage负责MVC层中的Model,也就是模型,对于zrender来 ...

  4. hdu 2966 In case of failure k-d树

    题目链接 给n个点, 求出每个点到离它最近的点的距离. 直接建k-d树然后查询就可以  感觉十分神奇... 明白了算法原理但是感觉代码还不是很懂... #include <bits/stdc++ ...

  5. mono 判断系统的网络是否可用

    /**  * 判断系统的网络是否可用  * @return  */        private bool isNetworkConnected()        {            bool ...

  6. nginx的请求接收流程(一)

    今年我们组计划写一本nginx模块开发以及原理解析方面的书,整本书是以open book的形式在网上会定时的更新,网址为http://tengine.taobao.org/book/index.htm ...

  7. GDAL的RASTERIO功能

             为了能快速的显示大影像,最近一直在学习GDAL,GDAL确实是一个功能强大的开源库,其核心部分数据集和波段,下面这个图很详细的描述了它们之间的关系,还有其中的细节:     GDAL ...

  8. AdminCMD

    program AdminCMD; {$APPTYPE CONSOLE} uses Windows, ShellApi, SysUtils; function RunAsAdmin(const iEx ...

  9. 解决:getWeatherbyCityName(city),服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。

    原文:getWeatherbyCityName(city),服务器无法处理请求. ---> 未将对象引用设置到对象的实例. 解决方法:不要直接使用 “服务引用” , 添加为 “Web 引用” 最 ...

  10. zookeeper 各节点数据保证是弱一致性

    一致性保证: ZooKeeeper 是一个高性能的,可扩展的服务.不管是读和写操作是被设计成快速,虽然读比写快. 这样做的原因是在读的情况下,Zookeeper 可以提供旧的数据, 反过来又是由于Zo ...