1001  ll /opt/lampp/modules/

1002  history | grep httpd

1003  vim /etc/httpd/conf/httpd.conf

1004  vim /etc/httpd/conf/httpd.conf

1005  history | grep httpd

1006  service httpd restart

1007  history

[root@iZ2834y8cmdZ ~]#

修改Apache的配置文件httpd.conf

1.

键:DirectoryIndex
值:index.html index.php
#注释:添加index.php

2.
找到配置文件中已有的这两项:

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

在这两项下方,添加如下支持内容:

AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php

3.

原本是打算添加 libphp5.so 模块,因 PHP 已升级到 7 ,遂作罢。
LoadModule php5_module modules/libphp5.so (已过时)

4.

编写测试文件index.php内容如下

<?php
phpinfo();
?>

1.Apache安装

# yum install httpd      (centos之下,Apache的名字叫httpd,和Apache的主程序 httpd.exe 同名)
  • 1

2.打开并测试Apache

(1)先确保,云服务器的80端口,是允许外网访问的。

(2)开启Apache服务

# service httpd start    (centos之下,Apache的名字叫httpd,和Apache的主程序 httpd.exe 同名)
  • 1

(3)测试Apache是否正常运行

浏览器输入:      外网IP : 80

如果能正常显示 Apache 的内置主页,则说明Apache服务已正常开启。
  • 1
  • 2
  • 3

3.安装 PHP 7.0

参照以下两篇文章: 
(1)在centos7通过yum安装PHP7 
(2)Centos7 安装 PHP7最新版

步骤都是大同小异的 
我们这里统一采用 RPM + YUM 模式,进行 PHP 7 的安装:

1.因为此处安装需要epel-release作为前提条件,所以 
先安装 epel-release :

rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm  (该地址可能失效。若失效,如404错误,参照下面加粗字部分,提供的解决办法。)
  • 1

2.安装PHP7的rpm源:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  • 1

3.安装PHP7:

yum install php70w
  • 1

需要注意的点:

一、上述第1步,epel-release的地址,极容易失效,产生404错误。

以下是获取最新的 .rpm 文件的方法:

参见这篇文章 在CentOS上安装第三方软件库EPEL

其中有这样一句提示:

1、要安装最新版本的EPEL,请前往 http://mirrors.ustc.edu.cn/fedora/epel/ 中查找最新版本的URL地址

最后得到的有效 .rpm 的URL是: 
http://mirrors.ustc.edu.cn/epel/epel-release-latest-7.noarch.rpm (2017年10月12日 亲测有效)

4.按照第3步操作完毕后,测试 PHP 7 是否正常


# php -v
  • 1
  • 2
  • 3

如果能够正常显示版本信息,则说明已经安装成功。

如:

PHP 7.0.23 (cli) (built: Sep 16 2017 12:47:01)( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
  • 1
  • 2
  • 3

5.配置Apache兼容PHP

参考这两篇文章: 
老一点的版本:Linux下apache支持PHP配置 
新一点的版本:Linux安装Apache 2.4 + PHP 7 + Mysql笔记

前面一篇是 PHP 5.6 的,但是比较经典。 
后面一篇是 PHP 7.0 的,有一些新方法加进去。

步骤:

从PHP5.6中采纳的步骤

修改Apache的配置文件httpd.conf

1.

键:DirectoryIndex 
值:index.html index.php 
#注释:添加index.php

2. 
找到配置文件中已有的这两项:

AddType application/x-compress .Z 
AddType application/x-gzip .gz .tgz

在这两项下方,添加如下支持内容:

AddType application/x-httpd-php-source .phps 
AddType application/x-httpd-php .php

3.

原本是打算添加 libphp5.so 模块,因 PHP 已升级到 7 ,遂作罢。 
LoadModule php5_module modules/libphp5.so (已过时)

4.

编写测试文件index.php内容如下

<?php
phpinfo();
?>
  • 1
  • 2
  • 3

然后 
放至Apache的默认的Web站点目录 DocumentRoot 之下 
#注释:默认路径为,/var/www/html

从PHP 7 中采纳的步骤

1.

添加最新的 libphp7.so 模块:

LoadModule php7_module modules/libphp7.so
  • 1

(附注,也可以统一写到 /etc/httpd/conf.module.d/00-base.conf 里面,进行统一管理。)

2.

结尾处,添加 .php 文件支持 (该功能似乎与 PHP 5.6 的第2步重复,但却是不冲突)

<FilesMatch       \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
  • 1
  • 2
  • 3

可能出现的问题:

修改配置后,Apache发生故障,启动不了了

可以参见下面这篇文章,讲的非常详细

解决apache启动失败:Job for httpd.service failed. 
http://blog.csdn.net/ironali/article/details/45228699

①那篇文章,也提到了一个,万能的Apache调试方法

service httpd start

然后弹出这样提示: 
Job for httpd.servicefailed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.

此时只要按照提示,输入

systemctl status httpd.service

就可以获知,详细的出错原因, 
比如: 
line 56 : LoadModule takes two arguments, a module name and the name of a shared object file to load it from (提示,LoadModule这里,参数列表发生了错误)

②但是,仍然有一个天坑般的存在!

每一次修改后,尝试重新调试,是不能直接输入systemctl status httpd.service看结果的。

必须要: 

service httpd start

再 
systemctl status httpd.service

完整的走一遍,报错消息才会更新!!!

我一直傻乎乎的只用 systemctl status httpd.service ,浪费了近一个小时时间!

③另外,值得注意的是,不要在httpd.conf的一行配置后面,加 # 注释,很容易被程序理解为是最后一个新参数

④四大新手必须防范的坑!:

1. 如同②所讲的,systemctl 命令————>有着极大的显示延迟(或者是,只是回显Log调试记录)。所以,必须要 service httpd start 来进行刷新。刷新之后,重新 systemctl才能解决这一问题!

2. PHP 5.6 的安装攻略,和 PHP 7 的安装攻略——————>在两份攻略合并时的问题,必须要小心。——————>但是实际上两者很兼容???

3. 存在一个神奇的文件夹 conf.module.d/ ,所有的 LoadModule xy.so 都可以统一放在这个文件夹下。
因为 /etc/httpd/conf/httpd.conf 这个配置文件,会 Include conf.module.d/*.conf 进行统一一键加载。

当然,直接在/etc/httpd/conf/httpd.conf 这个配置文件里,一个个 LoadModule za.conf也是可以的。(效果等同,而且 Apache启动时,会自动处理重复的 LoadModule 同名so

4. 切记切记!!! httpd.conf这个文件,最好最好甚至说绝对不要在句尾写 # 注释!,
注释,最好是全部另起一行!

不然,很容易被当作最后一个参数(空格作祟)

6.进入Apache服务器端口下的测试页 phpinfo.php ,一切显示正常!

恭喜!

7.手动,将本地项目的文件夹,复制或移动到 /var/www/html 下


# mv /root/my /var/www/html
  • 1
  • 2
  • 3

浏览器输入: 120.xx.136.147/my 
若能显示出项目的网页内容,则一切正常

在Linux(centos)下,安装Apache和PHP环境的更多相关文章

  1. Linux CentOS下安装Tomcat9

    本文讲解在Linux CentOS下安装Tomcat9,以及Web项目的部署发布. 环境:阿里云ECS 云服务器Linux CentOS 使用XShell客户端连接服务器,进行操作实践. 1.下载To ...

  2. Linux(CentOs)下安装Phantomjs + Casperjs

    Linux(CentOs)下安装Phantomjs + Casperjs 是参照cnMiss's Blog http://ju.outofmemory.cn/entry/70691的博客进行安装的 1 ...

  3. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  4. CentOS下安装Apache

    CentOS下安装Apache,首先在用户状态下使用su root命令切换到超级管理员界面,让后开启终端,进行apache的安装过程. [root@localhost centos]# yum ins ...

  5. [Linux]CentOS下安装和使用tmux

    前天随意点开博客园,看到了一篇关于tmux的文章 Tmux - Linux从业者必备利器,特意还点进去看了.毕竟Linux对于做游戏服务端开发的我来说,太熟悉不过了.不过我就粗略地看了一眼,就关掉了. ...

  6. linux系统下安装apache与tomcat

    apache的安装 把安装包放到/soft 下 [root@localhost ~]#cd /soft [root@localhost soft]#tar jxvf httpd-2.2.25.tar. ...

  7. Linux(CentOS)下的apache服务器配置与管理

    原文链接:http://blog.csdn.net/ylqmf/article/details/5291680 一.WEB服务器与Apache1.web服务器与网址 2.Apache的历史 3.补充h ...

  8. Linux CentOS下安装、配置mysql数据库

    假设要在Linux上做j2ee开发.首先得搭建好j2ee的开发环境.包含了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有具体解说了Linux学习之CentOS(七)--Cen ...

  9. Linux(CentOS)下安装git

    上个月把VPS迁到budgetVM,终于不用再受digitalOcean的气了,入手很方便,重点是支持支付宝付款——paypal的界面真是不习惯,开通速度挺快的,1G的内存够我折腾一段时间了~,额外送 ...

  10. Linux(CentOS)下安装docker

    Linux(CentOS)安装Docker 查看当前内核版本 [docker@localhost ~]$ uname -r 确保yum包更新到最新 [docker@localhost ~]$ sudo ...

随机推荐

  1. Linux 下tomcat+jdk+mysql安装

    JDK 1.用xftp把 jdk1.8.0_65上传到local下 给他赋予最高权限 1)切换到顶级目录    cd ~ 2)然后切换到上级目录 cd .. 3)切换到local路径下  cd /us ...

  2. P2216 [HAOI2007]理想的正方形 (单调队列)

    题目链接:P2216 [HAOI2007]理想的正方形 题目描述 有一个 \(a\times b\)的整数组成的矩阵,现请你从中找出一个 \(n\times n\)的正方形区域,使得该区域所有数中的最 ...

  3. 剑指offer——73股票的最大利润

    题目: 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?例如,一只股票在某些时间节点的价格为{9,11,8,5,7,12,16,14}.如果我们能在价格为5 ...

  4. delphi文件后缀全解

    delphi文件后缀全解 1. 项目文件(.dpr):Delphi项目文件,用于保存窗体.单元等的信息,以及程序运行的初始化代码等,这种文件实际上包含了Pascal源代码. 2. 单元文件(.pas) ...

  5. 装机时键盘选择失误?教你修改kali Linux键盘到美式。

    在Linux装机选择键盘的时候,由于学的是英式英语而选择了英式键盘,结果吃了大亏.英式键盘和我们平时使用的美式键盘的键位是不一样的! 这是我们平时使用的美式键盘: 这是英式键盘: 修改的方式是: 点击 ...

  6. 创建UI的线程才能访问UI,那么怎样才算访问UI呢

    只有创建UI元素的线程(主线程又叫UI线程)才能访问UI元素.在UI线程中工作,不会有这个问题. 在后台线程中,如果直接访问UI元素,会抛出 “调用线程无法访问此对象,因为另一个线程拥有该对象” 异常 ...

  7. 二.Python基础语法和数据类型

    Python第二节 基础语法和数据类型 Python编码 python3默认情况下源码文件以UTF-8编码, 字符串均为unicode字符串.同时也可以通过# -*- coding: cp-1252 ...

  8. 2019-3-15-在-Windows-Defender-设置文件夹白名单提升-VisualStudio-编译速度

    title author date CreateTime categories 在 Windows Defender 设置文件夹白名单提升 VisualStudio 编译速度 lindexi 2019 ...

  9. python_django_views视图模块

    视图(views.py):接收web请求,并响应web请求 在视图响应web请求的过程中,响应文件可能是网页,也可能是json数据 若响应的是网页,我们可分为: 地址重定向的网页请求(子类HttpRe ...

  10. cocos2D-X 常见49种Action

    bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init( ...