Apache配置(Apache配置完PHP后重启出错)
Apache的配置由httpd.conf文件配置修改。
(1) 基本配置:
ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置。其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。
以下是对主站点的目录进行访问控制:
在上面这段目录属性配置中,主要有下面的选项:
对于不在DocumentRoot指定的目录内的页面,既可以使用符号连接,也可以使用别名。别名的设置如下:
ErrorLog logs/error_log #日志的保存位置 LogLevel warn #日志的级别
显示的格式日下:
日志的缺省格式有如下几种:
首先在配置之前先来了解一些基本概念:
SSL所使用的证书可以自己生成,也可以通过一个商业性CA(如Verisign 或 Thawte)签署证书。
如果不为单独的客户端签发证书,客户端证书可以不用生成,客户端与服务器端使用相同的证书。
怎么配置apache服务器
1.安装Apache
yum?-y?install?httpd
2. Apache配置httpd.conf
通过命令?find / -name httpd.conf?找到Apache配置文件httpd.conf(默认在/etc/httpd/conf/httpd.conf)
编辑httpd.conf文件
vi?/etc/httpd/conf/httpd.conf
修改DocumentRoot "/xx/xx/xxx",项目在哪个目录下,就将"/xx/xx/xxx"改为哪个目录,例如DocumentRoot "/var/www/html"?,同样将Directory "/xx/xx/xxx"修改为Directory "/var/www/html"。
查看是否安装成功(启动Apache,并查看Apache状态)
??service?httpd?start
service?httpd?status
显示OK说明安装成功
配置Apache开机启动项
???chkconfig?--add?httpd?(在服务清单中添加httpd服务)
chkconfig?httpd?on
安装Mysql
1. 安装Mysql
yum?-y?install?mysql?mysql-devel?mysql-server?mysql-libs
具体可以参考 linux搭建lamp_5分享
Mac OS X中配置Apache
打开“终端(terminal)”,输入 sudo apachectl -version
接着输入 sudo apachectl start ,这样Apache就启动了。
打开Safari浏览器地址栏输入 ,可以看到内容为 It works! 的页面。其位于 /Library/WebServer/Documents/ 下,这就是Apache的默认根目录。
Apache的安装目录在: /etc/apache2/ ,etc默认是隐藏的。可以直接在 terminal 输入 open /etc
改为:
保存并退出。
而实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问localhost时出现如下提示:
Forbidden
You don't have permission to access /XXX on this server
保存并退出,并重启Apache。这里的 ServerAdmin 和 DocumentRoot , ServerName 可以根据自己的实际情况进行修改。但是 ServerName 要和下一步骤 hosts 中对应起来。
根据日志中的错误信息,那么一定是在这个路径上,某一个或者多个文件夹不允许_www用户(httpd的运行用户)search(针对文件夹的search对应的就是文件夹权限的x)。那么就从最后向最前找权限限制,很容易就发现 /Users/user/Documents 这个文件夹不允许其他人读取。由于是自己内网开发测试用的,就允许其他用户读取好了。
打开终端进入 Documents 层级中输入 : chmod o+rx Documents
新建 index.html 其内容为:
浏览器中打开 输出为: Hello! 到此配置完成。
Apache常用配置指北
Apache 作为世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一
相信前端的小伙伴对于 apache 和 nginx 都有所了解,特别是前后端分离,独立开发部署后,使用web服务器做一些代理服务可以解决绝大多数因为前后端分离造成的跨域,认证等问题(PS:都2020年了,不会还有项目组主张使用weblogic或tomcat部署前端项目吧? 不会吧,不会吧,不会吧 ??)
下面,我从实际项目角度出发,说一些apache常用配置,相信做到以下配置之后,基本可以解决前端项目部署对接时80%以上的问题 (?? 我骗你的,我怎么知道能解决多少,反正先说一个数嘛)
示例:
Directory指令用于在配置的目录(示例内'/apache/web'目录)内封装一组指令,配置的指令在该目录及子目录生效。任何可以在"directory"作用域中使用的指令都可以使用
从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override, 即设置 AllowOverride None ,此时,配置目录及子目录的.htaccess 文件将被完全忽略。
当此指令设置为 All 时,所有具有 “.htaccess” 作用域的指令都允许出现在 .htaccess 文件中
示例:
apache的Alias配置即虚拟路径配置,如示例中,假设apache服务器启动地址为 ,当访问 时, 会返回服务器 /extra/video/public/test.mp4 视频文件。
示例:
示例效果为将输入 en.cmbc.com 时,跳转到
Apache Rewrite规则修正符
Rewirte即apache的重写规则,主要的功能就是实现URL的跳转,匹配规则支持正则匹配。
示例:
apache中的mod_proxy模块用于url的转发,即具有代理的功能。
ProxyPass即转发功能,如示例中的配置,为将 的请求转发至 服务器.
ProxyPassReverse 的配置和 ProxyPass 的配置一致,它用于反向代理,例如示例中请求 后,转发给配置的目标服务器( ),返回的处理结果为重定向redirect至 登录页,此时若未配置反向代理,浏览器会访问 ,而配置反向代理后,apache服务器会在重定向时,修改redirect地址为 。
示例:
负载均衡配置稍显复杂,后续会专门总结一下相关配置,以上示例配置所达到的效果为:请求 时,会均衡负载发至 和 两台服务器。
示例:
启用Apache的deflate模块,可以开启压缩功能,减小网站传输时的带宽。