在Linux(centos)下,安装Apache和PHP环境
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 .php3.
原本是打算添加 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环境的更多相关文章
- Linux CentOS下安装Tomcat9
本文讲解在Linux CentOS下安装Tomcat9,以及Web项目的部署发布. 环境:阿里云ECS 云服务器Linux CentOS 使用XShell客户端连接服务器,进行操作实践. 1.下载To ...
- Linux(CentOs)下安装Phantomjs + Casperjs
Linux(CentOs)下安装Phantomjs + Casperjs 是参照cnMiss's Blog http://ju.outofmemory.cn/entry/70691的博客进行安装的 1 ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
- CentOS下安装Apache
CentOS下安装Apache,首先在用户状态下使用su root命令切换到超级管理员界面,让后开启终端,进行apache的安装过程. [root@localhost centos]# yum ins ...
- [Linux]CentOS下安装和使用tmux
前天随意点开博客园,看到了一篇关于tmux的文章 Tmux - Linux从业者必备利器,特意还点进去看了.毕竟Linux对于做游戏服务端开发的我来说,太熟悉不过了.不过我就粗略地看了一眼,就关掉了. ...
- linux系统下安装apache与tomcat
apache的安装 把安装包放到/soft 下 [root@localhost ~]#cd /soft [root@localhost soft]#tar jxvf httpd-2.2.25.tar. ...
- Linux(CentOS)下的apache服务器配置与管理
原文链接:http://blog.csdn.net/ylqmf/article/details/5291680 一.WEB服务器与Apache1.web服务器与网址 2.Apache的历史 3.补充h ...
- Linux CentOS下安装、配置mysql数据库
假设要在Linux上做j2ee开发.首先得搭建好j2ee的开发环境.包含了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有具体解说了Linux学习之CentOS(七)--Cen ...
- Linux(CentOS)下安装git
上个月把VPS迁到budgetVM,终于不用再受digitalOcean的气了,入手很方便,重点是支持支付宝付款——paypal的界面真是不习惯,开通速度挺快的,1G的内存够我折腾一段时间了~,额外送 ...
- Linux(CentOS)下安装docker
Linux(CentOS)安装Docker 查看当前内核版本 [docker@localhost ~]$ uname -r 确保yum包更新到最新 [docker@localhost ~]$ sudo ...
随机推荐
- vue-lic工具搭建vue-webpack项目
1.安装node环境(安装node时候会自动安装npm) 参考官网:https://nodejs.org/en/download/ 2.安装vue的脚手架工具vue-cli // 全局安装 npm i ...
- sip会话流程以及sip介绍(3)
1.mtk_ims_mo_sip报文交互流程 log: 步骤1:ATD触发MO呼叫尝试步骤2:VDM选择ADS到IMS.步骤3:触发VoLTE UA来设置MO调用.步骤4:SIP信息到P-CSCF进行 ...
- JAVA API 实现hdfs文件操作
java api 实现hdfs 文件操作会出现错误提示: Permission denied: user=hp, access=WRITE, inode="/":hdfs:supe ...
- <随便写>软件设计遵循的基本原则
1.高内聚,低耦合 所谓高内聚,是指一个软件模块内各个元素彼此结合的紧密程度要高,即一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则. 所谓低耦合,是指一个软件系统内不同 ...
- 提供免费可商用的优秀背景视频素材——COVERR
现在经常看到很多网站都是贴近更现代化的设计,首页都会放置跟网站内容相关的视频短片作为背景,不用按下播放按钮,就有动态显示效果,跟以往静态图片相较下更动态.更有活力,对网站的视觉体验有一定的提升作用.但 ...
- docker Dockerfile学习---构建mongodb环境
1.创建项目目录并上传包 mkdir centos_mongodb cd centos_mongodb .tgz 2.编辑配置文件 vi mongodb.conf dbpath = /data/usr ...
- 用C#简单实现的36进制转换代码
private const string initValue = "A0000001"; private static string cs = "0123456789AB ...
- mui请求数据接口问题
今天我在本地模拟做一个数据请求,第一次用的mui自带的方法来请求数据,当时我的本地接口地址是http://localhost:8087/jeecg/sightseerController.do?che ...
- delphi Copy函数 和 Pos函数
copy(a,b,c); a:就是copy源,就是一个字符串,表示你将要从a里copy一些东西, b:从a中的第b位开始copy(包含第1位), c:copy从第b位开始后的c个字符, 例如: m:= ...
- thinkphp模块设计
3.2发布版本自带了一个应用目录结构,并且带了一个默认的应用入口文件,方便部署和测试,默认的应用目录是Application(实际部署过程中可以随意设置). 通常情况下3.2无需使用多应用模式,因为大 ...