CentOS 7.4 上搭建 LAMP(CentOS 7.4、httpd

Stella981
• 阅读 652

在CentOS 7.4(LAMP)上安装Apache,PHP和MariaDB

在本教程中,我使用IP地址为192.168.10.10的主机

这些设置可能会有所不同,因此您必须在适当的位置替换它们。

版本说明

  • Linux:CentOS 7.4
  • Apache:httpd-2.4.6
  • MariaDB:MariaDB 5.5.56
  • PHP:PHP 5.4.16

配置SELinux和Firewalld服务

在本教程中我们关闭SELinux 服务,因此我们可以这样操作:

[root@kangvcar1 ~]# vim /etc/selinux/config
SELINUX=disabled    # 修改SELinux配置文件的SELINUX参数为disabled,重启后生效
[root@kangvcar1 ~]# setenforce 0    # 此命令可以让SELinux临时关闭并立即生效

在教程中我们不关闭Firewalld服务,因为在生产环境中我们应该开启它以更加安全的工作,同时我们配置开放http和https服务来提供互联网上的主机访问。因此我们可以这样操作:

[root@kangvcar1 ~]# systemctl start firewalld
[root@kangvcar1 ~]# firewall-cmd --permanent --zone=public --add-service=http    # 放行 http 服务
[root@kangvcar1 ~]# firewall-cmd --permanent --zone=public --add-service=https    # 放行 https 服务
[root@kangvcar1 ~]# firewall-cmd --reload

如果互联网无法访问站点,可能要到服务器提供商的控制台放行相应端口

安装 httpd 2.4.6

CentOS 7附带Apache 2.4。因此我们可以像这样安装它:

[root@kangvcar1 ~]# yum -y install httpd    # 安装httpd-2.4
## 为httpd创建系统启动链接(以便httpd在系统引导时自动启动)并启动httpd服务器:
[root@kangvcar1 ~]# systemctl start httpd
[root@kangvcar1 ~]# systemctl enable httpd

安装MariaDB 5.5.56

MariaDB是MySQL分支。MariaDB与MySQL兼容,我选择在这里使用MariaDB而不是MySQL是因为CentOS7.4默认提供了MariaDB的rpm包。运行以下命令以yum安装MariaDB:

[root@kangvcar1 ~]# yum -y install mariadb-server mariadb
## 为MariaDB创建系统启动链接(以便MariaDB在系统引导时自动启动)并启动MariaDB服务器:
[root@kangvcar1 ~]# systemctl start mariadb
[root@kangvcar1 ~]# systemctl enable mariadb

执行MariaDB初始化脚本并为root用户设置密码:

[root@kangvcar1 ~]# mysql_secure_installation

注意:对于所有MariaDB 服务器在生产中使用,建议运行此脚本的所有部分!请仔细阅读每一步!

安装 PHP 5.4.16

PHP最新版已经到了7.1 。安装方法大同小异,这里我们安装CentOS7.4默认提供的PHP 5.4.16 。运行以下命令以yum安装PHP:

[root@kangvcar1 ~]# yum -y install php

安装PHP之后我们必须重新启动Apache:

[root@kangvcar1 ~]# systemctl restart httpd

测试PHP5 是否和Apache关联起来,并获取有关您的PHP5安装的详细信息。我们现在创建一个小型PHP文件(index.php)并在浏览器中调用它。该文件将显示大量有关我们PHP安装的有用信息:

[root@kangvcar1 ~]# vim /var/www/html/index.php
<?php
    phpinfo();
?>

在浏览器打开 http://192.168.10.10 即可看到PHP的信息,正如您所看到的,PHP5正在运行,它正在通过Apache 2.0 Handler进行工作,如Server API行中所示。如果向下滚动,您将看到所有已在PHP5中启用的模块。MySQL没有在那里列出,这意味着我们在PHP5中还没有MySQL支持。为了在PHP中获得MySQL支持,我们可以安装php-mysql软件包。最好安装一些其他PHP5模块,以及您可能需要它们用于您的应用程序。您可以搜索可用的PHP5模块,如下所示:

[root@kangvcar1 ~]# yum search php    # 搜索可用的php模块
## 选择你需要的,并像这样安装它们:
[root@kangvcar1 ~]# yum -y install php-mysql
在下一步中,我将安装一些CMS系统需要的常见PHP模块,如Wordpress,Joomla和Drupal:
[root@kangvcar1 ~]# yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

安装完成后,重新启动httpd服务,然后再次打开 http://192.168.10.10 即可看到PHP的更多扩展信息:

[root@kangvcar1 ~]# systemctl restart httpd

安装phpMyAdmin-4.4.15.10

我将在这里添加EPEL repo以安装最新的phpMyAdmin,如下所示:

[root@kangvcar1 ~]# yum -y install epel-release
[root@kangvcar1 ~]# yum -y install phpmyadmin

然后修改配置文件以允许其他主机访问(默认只允许本地127.0.0.1访问),在<Directory /usr/share/phpMyAdmin/>容器内注释<RequireAny>配置,然后在<Directory /usr/share/phpMyAdmin/>容器内添加Require all granted配置即可:

[root@kangvcar1 ~]# vim /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
#     <RequireAny>
#       Require ip 127.0.0.1
#       Require ip ::1
#     </RequireAny>
        Require all granted        #添加此行
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
   Options none
   AllowOverride Limit
   Require all granted
</Directory>

重新启动httpd服务,在浏览器打开 http://192.168.10.10/phpmyadmin 即可。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这