前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >centos7安装Lnmp(Linux+Nginx+MySql+Php)及Apache

centos7安装Lnmp(Linux+Nginx+MySql+Php)及Apache

作者头像
botkenni
发布2019-09-03 14:48:39
1.4K0
发布2019-09-03 14:48:39
举报
文章被收录于专栏:IT码农IT码农

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx是一个高性能的HTTP和反向代理服务器,Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,我们学习PHP,以及搭建我们自己的LNMP环境,不妨先在本机上尝试学习,下面我们一步一步来完成在CentOS7 下安装LNMP(Linux+Nginx+MySQL+PHP)及Apache。

一、安装httpd

代码语言:javascript
复制
[root@localhost ~]# yum install -y httpd

安装成功

代码语言:javascript
复制
Installed:
  httpd.x86_64 0:2.4.6-40.el7.centos.1                                          

Dependency Installed:
  apr.x86_64 0:1.4.8-3.el7                      apr-util.x86_64 0:1.5.2-6.el7   
  httpd-tools.x86_64 0:2.4.6-40.el7.centos.1    mailcap.noarch 0:2.1.41-2.el7   

Complete!

二、启动httpd服务

代码语言:javascript
复制
[root@localhost ~]# systemctl start httpd.service

安装完成之后使用以下命令启动httpd服务: #启动apache

代码语言:javascript
复制
systemctl start httpd.service

#停止apache

代码语言:javascript
复制
systemctl stop httpd.service

#重启apache

代码语言:javascript
复制
systemctl restart httpd.service

#设置apache开机启动

代码语言:javascript
复制
systemctl enable httpd.service

可以在浏览器中输入服务器所在的主机的IP即可看到apache的欢迎界面。要在另外一台主机上实现这种访问,需要关闭系统的防火墙。 在CentOS7中,修改防火墙的机制已经做了修改,在CentOS 6.x系统中可以使用以下命令:

代码语言:javascript
复制
service iptables stop

// 开机禁止启动

代码语言:javascript
复制
chkconfig iptables off

而在CentOS7中只能使用以下命令,如果使用上面的命令并不会报任何错误,但是起不到关闭防火墙的效果:

代码语言:javascript
复制
systemctl stop firewalld.service

//禁止防火墙开机启动

代码语言:javascript
复制
systemctl disable firewalld.service

三、安装MySql数据库

MySQL数据库,新版本已经更名为Mariadb,所以这里需要安装Mariadb,可以使用下面的命令进行安装:

代码语言:javascript
复制
[root@localhost ~]# yum install -y mariadb

安装成功

代码语言:javascript
复制
Installed:
  mariadb.x86_64 1:5.5.47-1.el7_2                                               

Dependency Updated:
  mariadb-libs.x86_64 1:5.5.47-1.el7_2                                          

Complete!

如果出现:

CentOS7.2安装mariadb-server,解决Failed to start mysqld.service: Unit not found

方法一:当输入命令

~]# systemctl start mariadb.service

要启动MySQL数据库是却是这样的提示

Failed to start mariadb.service: Unit not found

解决方法如下:

  首先需要安装mariadb-server

  ~]# yum install -y mariadb-server

  启动服务

  ~]# systemctl start mariadb.service

  添加到开机启动

  ~]# systemctl enable mariadb.service

进行一些安全设置,以及修改数据库管理员密码

  ~]# mysql_sceure_installation

至此完成!

可以测试一下

  ~]# mysql -u root -p

方法二:

centos7使用yum安装mariaDB(开源MySQL)无法启动的解决办法

centos7内置的MySQL镜像已经放弃Oracle公司的MySQL,改用MySQL的分支数据库mariaDB,使用以下安装mariadb:

yum install mariadb

然后使用命令systemctl start mariadb,提示如下:

Failed to start mariadb.service: Unit mariadb.service failed to load: No such file or directory

意思找不到mariadb这个服务。之所以找不到,是因为mariadb的安装本身就没有完成,执行以下命令,查看mariadb的依赖情况:

$ sudo yum search mariadb

看到以下结果:

执行以下,安装缺少的依赖包:

$ yum install mariadb-embedded mariadb-libs mariadb-bench mariadb mariadb-sever

然后再启动mariadb,正常,如果要设置开机自启动mariadb,使用以下命令:

$ systemctl enable mariadb

一定要记得,使用yum install命令安装mysql时,需要多加一个通配符"*",使用如下命令:

yum install mariadb*

四、开启数据库服务

安装完成以后使用下面的命令开启数据库服务: #启动MariaDB

代码语言:javascript
复制
[root@localhost ~]# systemctl start mariadb.service

#停止MariaDB

代码语言:javascript
复制
[root@localhost ~]# systemctl stop mariadb.service

#重启MariaDB

代码语言:javascript
复制
[root@localhost ~]# systemctl restart mariadb.service

#设置开机启动

代码语言:javascript
复制
[root@localhost ~]# systemctl enable mariadb.service

五、安装PHP

代码语言:javascript
复制
[root@localhost ~]# yum -y install php

安装成功:

代码语言:javascript
复制
Installed:
  php.x86_64 0:5.4.16-36.1.el7_2.1                                                       

Dependency Installed:
  libzip.x86_64 0:0.10.1-8.el7                 php-cli.x86_64 0:5.4.16-36.1.el7_2.1     
  php-common.x86_64 0:5.4.16-36.1.el7_2.1     

Complete!

使用下面的命令安装php对Mariadb的支持:

代码语言:javascript
复制
yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash

一路“Y”

五、重启Mariadb和httpd服务:

使用下面的命令重启Mariadb和httpd服务:

#重启MariaDB

代码语言:javascript
复制
systemctl restart mariadb.service

#重启apache

代码语言:javascript
复制
systemctl restart httpd.service

六、安装nginx

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

代码语言:javascript
复制
vim /etc/yum.repos.d/nginx.repo

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

代码语言:javascript
复制
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

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

代码语言:javascript
复制
yum install nginx

安装成功:

代码语言:javascript
复制
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------
  Verifying  : 1:nginx-1.10.1-1.el7.ngx.x86_64                                       1/1 

Installed:
  nginx.x86_64 1:1.10.1-1.el7.ngx                                                        

Complete!

由于安装了Httpd服务,所以要先停止,关闭apache之后再次启动nginx。 停止Httpd

代码语言:javascript
复制
systemctl stop httpd.service

测试一下 nginx 服务:

代码语言:javascript
复制
service nginx status

测试一下 nginx 的配置文件:

代码语言:javascript
复制
nginx -t

返回

代码语言:javascript
复制
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

说明配置文件成功!

七、配置服务

这里使用的是nginx做反向代理,将其客户端通过80端口请求的.php内容代理到apache服务器上。

要想使用nginx做反向代理,需要修改Apache的httpd和nginx的配置文件,使其监听不同的端口,这里我们使用nginx监听80端口,使用Apache监听8080端口,这里我们分别配置Apache和nginx的配置文件,修改结果如下: (1)Apache配置文件:/etc/httpd/conf/httpd.conf

代码语言:javascript
复制
#Listen 12.34.56.78:80
Listen 8080

(2)nginx配置如下:/etc/nginx/conf.d/default.conf

代码语言:javascript
复制
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    location ~ \.php$ {
      proxy_pass   http://127.0.0.1:8080;
    }

(3)不指定8080端口访问:

(4)指定8080端口访问:

G

M

T

Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu

AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu

Text-to-speech function is limited to 200 characters

Options : History : Feedback : Donate

Close

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装httpd
  • 二、启动httpd服务
  • 三、安装MySql数据库
  • centos7使用yum安装mariaDB(开源MySQL)无法启动的解决办法
    • 四、开启数据库服务
      • 五、安装PHP
        • 五、重启Mariadb和httpd服务:
          • 六、安装nginx
            • 七、配置服务
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档