LAMP 环境搭建(还有apache不能解析php问题)

Ubuntu下面的LAMP环境搭建:

先说一下Ubuntu下面一些文件的目录:

Debian, Ubuntu (Apache httpd 2.x):
ServerRoot              ::      /etc/apache2
DocumentRoot            ::      /var/www
Apache Config Files     ::      /etc/apache2/apache2.conf
                        ::      /etc/apache2/ports.conf
Default VHost Config    ::      /etc/apache2/sites-available/default, /etc/apache2/sites-enabled/000-default
Module Locations        ::      /etc/apache2/mods-available, /etc/apache2/mods-enabled
ErrorLog                ::      /var/log/apache2/error.log
AccessLog               ::      /var/log/apache2/access.log
cgi-bin                 ::      /usr/lib/cgi-bin
binaries (apachectl)    ::      /usr/sbin
start/stop              ::      /etc/init.d/apache2 (start|stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean)
​​​​​​Centos:(字体改不了,注明一下)
ServerRoot              ::      /etc/httpd
Primary Config Fle      ::      /etc/httpd/conf/httpd.conf
Other Config Files      ::      /etc/httpd/conf.d
Module Locations        ::      /usr/lib/httpd/modules
DocumentRoot            ::      /var/www/html
ErrorLog                ::      /var/log/httpd/error_log
AccessLog               ::      /var/log/httpd/access_log
cgi-bin                 ::      /var/www/cgi-bin (empty and disabled by default)
binary                  ::      /usr/sbin/httpd
runtime directory       ::      /etc/httpd/run
start/stop              ::      /sbin/service httpd {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}

/etc/apache2/apache2.conf 全局配置

/etc/apache2/envvars 环境变量

/etc/apache2/ports.conf httpd服务端口信息

/etc/apache2/conf.d/ 一般性配置文件存放地

/etc/apache2/mods-available/ 已安装的模块

/etc/apache2/mods-enabled/ 已经启用的模块

/etc/apache2/sites-available/ 可用站点信息

/etc/apache2/sites-enabled/ 已经启用的站点信息,当中的文件是到

/etc/apache2/sites-available/ 文件的软连接。

基本上按照网上的教程就ok,不过默认安装php7,还有就是apache2.conf(网上很多教程是httpd.config都一样)这个文件在/etc/apache2这个目录下面,centos是/etc/httpd目录下,php.ini是在/var/lib64目录下面,还有就是如果apache不能解析php文件,也就说php的源码被输出,却没有对应的页面出现,几种可能啊,大家自己根据情况判断,一个是你检查你的apache2.conf文件,看有没有对应的

 

LoadModule php5_module        /usr/lib/apache2/modules/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

centos下面你可以去/etc/httpd下面寻找libphp5.so文件,这个一个硬链接,对应的还在/usr/lib/apache2/modules/libphp5.so下面,检查你有没有这个动态库,也就是.so文件,但是我自己搭建的时候这样试过还是没有办法解析php文件,遍寻互联网,最后在一个学长的帮助下找到了答案,

执行:
sudo apt-get install libapache2-mod-php5
sudo a2enmod php5

如果显示为:
This module does not exist!

那就要彻底删除libapache2-mod-php5,然后重新安装它
sudo apt-get remove --purge libapache2-mod-php5
sudo apt-get install libapache2-mod-php5
重启apache2
sudo /etc/init.d/apache2 restart

因为我当时卸载删除了php5,所以即使我下载了php7的插件,他应该也是没有安装上去,所以等于插件没有安装,然后写这个php文件

<?php phpinfo(); ?>
这个就会打印出来你的php的配置信息了

你输入地址就会得到这个图片

Apache服务器的目录和文件

1、WEB站点目录
/var/www Apache站点文件的目录这个你可以在apache2.conf里面修改
/var/www/html 存放WEB站点的WEB文件
/var/www/cgi-bin CGI程序文件
/var/www/html/manual Apache WEB服务器手册

2、配置文件
.htaccess  基于目录的配置文件,.htaccess文件包含对它所在目录中文件的访问控制指令
/etc/httpd/conf/httpd.conf Apache WEB服务器配置文件目录

3、启动脚本
/etc/rc.d/init.d/httpd WEB服务器守护进程的启动脚本
/etc/rc.d/rc3.d/S85httpd 将运行级目录(/etc/rc3.d)连接到目录/etc/rc.d/init.d中的启动脚本

4、应用文件
/usr/sbin 存放Apache WEB服务器程序文件和应用程序的位置
/usr/doc/ 放置Apache WEB服务器文档
/var/log/http 放置Apache 日志文件的位置

另外还有一点需要补充,如果你用的是centos或者redhat等等其他的Linux来搭建LAMP,你就没有libapache2-mod-php5这个东西,因为这是debian的东西,所以具体问题还要具体对待,尽量去阅读官方文档,用谷歌搜索

这几天接触了apache和LAMP这个东西,遇到了一些小挫折,其实那个php不能解析的问题困扰了我很久,找了一个开发人员也没有很好的解决,毕竟这有点属于运维的知识了,但那天晚上,脾气上来了一定要解决,最后在一个学长的帮助下解决了,然后晚上高兴的回去又把centos的虚拟机网络弄好,全然忘了第二天是概率论考试,这可能就是程序员的一种自我拧巴的过程吧,加油!

apache还有nginx都是很有趣的东西,我也会一点点学习,加油!

最后我做一点apache官方文档的入门指南翻译,http://httpd.apache.org/docs/2.4/,英语能力不高,如有翻译不好之处,欢迎指出

入门指南:

如果你是apache 服务器的新手,甚至是第一次运行网站,你不知道从那开始问什么问题,本文档将向你介绍一些基础知识

客户端、服务器和URL:

Web上的地址用URL表示 - 统一资源定位符 - 他指定了一个协议(例如http),服务器名称(例如 www.apache.org),URL路径(例如 /docs/current/getting-started.html),以及可能的查询字符串(例如?arg=value),用于将附加参数传递给服务器。

注:这是我在百度百科查到的东西:

统一资源定位符(Uniform Resource Locator,URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志

客户端(例如,web浏览器)使用指定的协议连接到服务器(例如,您的Apache HTTP Server),并使用URL路径请求资源。

URL路径可以表示服务器上的任意数量的事物。它可能是一个文件(如getting-started.html)处理程序(如服务器状态)或某种程序文件(如index.php)。我们将在下面的网站内容部分讨论这个问题。

服务器将发送一个响应,该响应由状态代码和可选的响应主体组成。状态代码指示请求是否成功,如果不成功,则表示存在何种错误情况。这告诉客户端它应该如何处理响应。您可以在HTTP Server wiki中阅读可能的响应代码 。

事务的详细信息和任何错误条件都写入日志文件。下面将在“ 日志文件和疑难解答”部分中对此进行更详细的讨论。

主机名和DNS:

为了连接到服务器,客户端首先必须将服务器名称解析为IP地址 - 服务器所在的Internet上的位置。因此,为了使您的Web服务器可访问,服务器名称必须位于DNS中。

如果您不知道如何执行此操作,则需要与网络管理员或Internet服务提供商联系,以便为您执行此步骤。

多个主机名可能指向相同的IP地址,并且可以将多个IP地址连接到同一物理服务器。因此,您可以使用称为虚拟主机的功能在同一物理服务器上运行多个Web站点。

如果您正在测试无法访问Internet的服务器,则可以将主机名放在hosts文件中以进行本地解析。例如,您可能希望在主机文件中放置一条记录,以将请求映射www.example.com到本地系统,以进行测试。此条目如下所示:

127.0.0.1 www.example.com

主机文件可能位于/etc/hosts或 C:\Windows\system32\drivers\etc\hosts

这个大概是什么意思呢,就是借用你的主机

你可以阅读更多有关在hosts文件Wikipedia.org/wiki/Hosts_(file)的,和更多的DNS Wikipedia.org/wiki/Domain_Name_System

配置文件和指令

Apache HTTP Server通过简单的文本文件配置。这些文件可能位于各种位置,具体取决于您安装服务器的具体程度。可以在httpd wikihttps://wiki.apache.org/httpd/DistrosDefaultLayout)找到这些文件的常用位置。如果从源码安装httpd,则配置文件的默认位置为 /usr/local/apache2/conf。通常调用默认配置文件httpd.conf。这也可能在服务器的第三方分发中有所不同。

为了便于管理,配置经常被分成多个较小的文件。这些文件通过Include指令(https://httpd.apache.org/docs/current/en/mod/core.html#include)(句法:Include file-path|directory-path|wildcard)加载。这些子文件的名称或位置并不神奇,并且从一个安装到另一个安装可能会有很大差异。排列和细分这些文件对来说是最有意义的。如果您默认使用的文件排列对您没有意义,请随意重新排列。

通过在这些配置文件中放置配置指令配置服务器。指令是一个关键字,后跟一个或多个设置其值的参数。

的问题:“ 我在哪里放置该指令? ”你想要一个指令是起作用,如果它是一个全局设置,它应该出现在配置文件中,任何<Directory><Location><VirtualHost>之外的部分,或其他部分。如果它只应用于特定目录,那么它应该进入<Directory>引用该目录的 部分,依此类推。有关这些部分的进一步讨论,请参阅https://httpd.apache.org/docs/current/en/sections.html(配置部分)文档。

除主要配置文件外,某些指令可能.htaccess位于内容目录中的 文件中。 .htaccess文件主要供那些无法访问主服务器配置文件的人使用。您可以.htaccesshttps://httpd.apache.org/docs/current/zh-cn/howto/htaccess.html阅读有关文件的更多信息 。

也可以看这个http://www.htaccess-guide.com/,不过也是英文的,不太友好

网站内容

网站内容可以采用许多不同的形式,但可以大致分为静态和动态内容。

静态内容类似于HTML文件,图像文件,CSS文件以及驻留在文件系统中的其他文件。该DocumentRoot指令指定文件系统中应放置这些文件的位置。该指令可以全局设置,也可以按虚拟主机设置。查看配置文件以确定为服务器设置的方式。

通常,在index.html未指定文件名的情况下请求目录时,将提供调用的文档。例如,如果DocumentRoot设置为 /var/www/html并且发出请求 http://www.example.com/work/,则该文件/var/www/html/work/index.html将提供给客户端。

动态内容是在请求时生成的任何内容,可能会从一个请求更改为另一个请求。有许多方法可以生成动态内容。各种处理程序可用于生成内容。可以编写CGI程序https://httpd.apache.org/docs/current/zh-cn/howto/cgi.html)来为您的站点生成内容。

像mod_php这样的第三方模块可用于编写执行各种操作的代码。许多使用各种语言和工具编写的第三方应用程序都可以在Apache HTTP Server上下载和安装。支持这些第三方内容超出了本文档的范围,您应该找到他们的文档或其他支持论坛来回答您关于它们的问题。

日志文件和故障排除

作为Apache HTTP Server管理员,您最有价值的资产是日志文件,尤其是错误日志。没有错误日志的任何问题的故障排除就像闭着眼睛开车一样。

错误日志的位置由ErrorLog指令定义,可以全局设置,也可以按虚拟主机设置。错误日志中的条目会告诉您出了什么问题以及何时出错。他们经常也告诉你如何解决它。每条错误日志消息都包含一个错误代码,您可以在线搜索以获取有关如何解决问题的更详细说明。您还可以将错误日志配置为包含日志ID,然后可以将其与访问日志条目相关联,以便确定导致错误情况的请求。

您可以阅读有关登录日志文档的更多信息(https://httpd.apache.org/docs/current/en/logs.html)。

哇,终于翻译完了,虽然借助了谷歌翻译,但是还是有很多不理解的地方,所以对照英文原文再结合谷歌翻译,有道翻译看了一遍,然后因为是要写博客,然后不理解的新词汇再谷歌,现在算是对于apache有了一个大概的认识,其中也或多或少的了解了一些建站的东西,以后有时间我一定会继续翻译apache的文档内容,不过我想我翻译完的时候估计apache3.x都有了吧,哈哈,just for fun,just do IT,加油!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值