一, 配置 httpd 支持 php
1?httpd 的主配制文件: /usr/local/apache/conf/httd.conf
1? 在我们安装好 httpd 之后, 会有一个提示 set ServerName, 我们进入以上这个配制文件, 把 Servername 前面的 #号去掉, 然后注释掉一个 php, 这样就不会提示出错了.
2? 增加一行配制: Require all granted 如果不加这一行, 访问是 403
我们要首先要 ping 下 80 端口是不是通的,
临时让 linux 防火墙开启 80 端口: iptables -I INPUT -p tcp --dport 80 -j ACCEPT, 就可以访问了.
检查配制语法是否对: /usr/local/apache/bin/apachectl -t
重新加载配制文件, 不会重启服务:/usr/local/apache/bin/apachectl graceful
? 增加一行跟 php 相关的配制, AddType application/x-httpd-php .php, 加在 AddType 类似行
? 增加一个索引页: DirectoryIndex index.php 直接在 index.html 后面空格一行加上 index.php 就好了
? 写一个测试的脚本: vim /usr/local/apache2.4/htodcs/1.php 增加内类
- <?php
- echo 123;
- ?>
- (增加一个文件不用重启, 如果 php 不能解析显示的就是原代码, 那我们就要想到有没有 apache 文件: php5_module 有没有这个模块, 有没有 / usr/local/apche/modules/libphp5.so 这个文件, 还要检查制制文件没有 loadmoudel 以及有没有 AddType application/x-httpd-php .php)
快捷键: 快速查找历史命令 ctrl+r 再输入命令
6? 重启 httpd: /usr/local/apache/bin/apachectl restart
二, httpd 的默认虚拟主机
一台服务器可以访问多个网站, 第个网站都是一个虚拟主机, 我们为什么会访问到 index.html 1.php 是因为 DocumentRoot "usr/local/apache/htdocs 这个参数定义了这个网站的目录在哪里.
怎么在 windows 写 hosts :/windosw/system32/drivers/etc/hosts 用写字版打开. 在里面加一行, 192.168.1.23 www.abc.com 我们在浏览器里面直接打开 www.abc.com 它就直接跳转到 192.168.1.23 在 dns 没有生效的情况下用.
2?apache 的默认虚拟主机, 任何一个域名, 只要指向了这个 ip, 我们就可以访问到这个站点.
3? 一台服务器上, 我可以跑多个域名, 不想让全部域全部指向同一个 ip, 所以我们需要给它打开一个虚拟主机配制文件, 在 / usr/local/apache/conf/httdp.conf 搜索: extra 找到 / virtual hosts 这一行, 把这行的 #号去掉, 打开这个后, htdocs 里面文件就不用, 以前的 servername 我们就不用了.
打开二级虚拟配制文件: /usr/local/apache/conf/extra/httpd-vhosts.conf 可以定义多个 servername, 里面第一对 virtualhost 就打表一个主机
DocumentRoot: 网站的根目录在哪里 如:/data/wwwroot/abc.com
ServerName : 如可以定义成 abc.com 只能写一个
ServerAlias : 定义别名: 如: www.abc.com 可以写多个
ErrorLog : 错误日志路径 如: logs/abc.com-error_log
CustomLog: 访问日志路径 如:"logs/abc.com-access_log" common
一旦让虚拟主机生效了, 那么以前的定义的 servername 就失效了
5, 创建对应的目录:
- mkdir /data/wwwroot
- mkdir /data/wwwroot/abc.com
6, 在对应的站点目录下创建 php
vim /data/wwwroot/abc.com/index.php
7, 检查有没有错: /usr/local/apache/bin/apachectl -t
8, 重新加载:/usr/local/apache/bin/apchectl graceful
9, 测试虚拟主机:
curl 命令和浏览器交替使用:
-x 比如我们要访问 www.abc.com , 如果没有绑定 hosts, 那么 ping 就会 ping 到外网上去. 可以编辑 / etc/hosts 也可以用 curl+x 直接访问:
curl -x192.168.1.23:80 www.abc.com
这样我们就可以访问到虚拟主机上去了
如果虚拟主机生效, 那么主配制文件就失效了,
默认虚拟主机就是: 无论任何域名, 只要解析到这个 ip 上, 都会访问这个默认虚拟主机.
来源: http://www.bubuko.com/infodetail-2621935.html