配置 httpd 支持 php
httpd 主配置文件 / usr/local/apache2.4/conf/httpd.conf
vim /usr/local/apache2.4/conf/httpd.conf
修改以下 4 个地方
ServerName 这个打开后开启 httpd 后没有警告
Require all denied 这个修改为 Require all granted 防止打开虚拟主机配置文件时 403
AddType application/x-httpd-php .php 加上这行才可以解析 php
DirectoryIndex index.html index.php 添加默认索引页
DocumentRoot "/usr/local/apache2.4/htdocs" 这个参数可以定义网站的域名根目录
- /usr/local/apache2.4/bin/apachectl -t // 测试语法, 改完配置需要先检查下再加载
- /usr/local/apache2.4/bin/apachectl graceful // 重新加载配置文件, 不重启服务
- iptables -I INPUT -p tcp --dport 80 -j ACCEPT // 打开 80 端口
- netstat -lntp // 查看 80 端口
- [root@aminglinux-02 ~]# netstat -lntp
- Active Internet connections (only servers)
- Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
- tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1122/sshd
- tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2094/master
- tcp6 0 0 :::3306 :::* LISTEN 2658/mysqld
- tcp6 0 0 :::80 :::* LISTEN 2387/httpd
- tcp6 0 0 :::22 :::* LISTEN 1122/sshd
- tcp6 0 0 ::1:25 :::* LISTEN 2094/master
在物理机浏览器上打开主机 ip 地址能访问
打不开 ip 主页排查思路
- 现在物理机上查看 Ip 能不能 ping 通, telnet 能不能通, 再查看虚拟机上有没有打开 80 端口
- [root@akuilinux01 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
- [root@akuilinux01 ~]# iptables -nvL
- Chain INPUT (policy ACCEPT 58 packets, 3900 bytes)
- pkts bytes target prot opt in out source destination
- 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
写一个测试 php,vim /usr/local/apache2.4/htdocs/1.php
- [root@aminglinux-02 ~]# vim /usr/local/apache2.4/htdocs/1.php
- <?php
- phpinfo();
- ?>
在物理机浏览器上打开主机 ip 地址 / 1.php, 可以打开 php 信息页面, 如果不支持 php 解析的话, 访问该文件时会显示源代码.
故障排查
检查 Apache 是否已加载 PHP 模块
- [root@aminglinux-02 ~]# /usr/local/apache2.4/bin/apachectl -M
- Loaded Modules:
- core_module (static)
- so_module (static)
- http_module (static)
- mpm_event_module (static)
- authn_file_module (shared)
- authn_core_module (shared)
- authz_host_module (shared)
- authz_groupfile_module (shared)
- authz_user_module (shared)
- authz_core_module (shared)
- access_compat_module (shared)
- auth_basic_module (shared)
- reqtimeout_module (shared)
- filter_module (shared)
- mime_module (shared)
- log_config_module (shared)
- env_module (shared)
- headers_module (shared)
- setenvif_module (shared)
- version_module (shared)
- unixd_module (shared)
- status_module (shared)
- autoindex_module (shared)
- dir_module (shared)
- alias_module (shared)
- php7_module (shared)
查看 php 模块文件
- [root@aminglinux-02 ~]# ls /usr/local/apache2.4/modules/libphp7.so
- /usr/local/apache2.4/modules/libphp7.so
- [root@aminglinux-02 ~]# ls /usr/local/apache2.4/modules/libphp5.so
- /usr/local/apache2.4/modules/libphp5.so
查看 apache 配置文件这四项
#LoadModule php5_module modules/libphp5.so
LoadModule php7_module modules/libphp7.so
- ServerName www.example.com:80
- AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
- Addtype application/x-httpd-php .php
- <Directory />
- AllowOverride none
- Require all granted
- </Directory>
"/usr/local/apache2.4/bin/apachectl -t" 检查配置文件是否存在语法错误
配置 PHP7 解析只需要把配置文件中加载的 php 模块换成 php7 的, 其他相同
ctrl+r 用途: 反向搜索并调用执行过的命令.(reverse-i-search).
使用方法: 按 ctrl+r 后命令行会变成 "(reverse-i-search)`': " 状态, 然后输入使用过的参数, 此时会直接显示出相关的命令, 回车即可执行该命令.
httpd 的默认虚拟主机
windows 定义 hosts
- C:\Windows\System32\drivers\etc\hosts
- 192.168.21.128 www.abc.com www.123.com
可以 ping 检查下是不是解析到你需要的 ip
一台服务器可以访问多个网站, 每个网站都是一个虚拟主机
概念: 域名 (主机名),DNS(域名解析系统),hosts(局域网的域名解析)
任何一个域名解析到这台机器, 都可以访问的虚拟主机就是默认虚拟主机
- vim /usr/local/apache2/conf/httpd.conf
- # Virtual hosts
- Include conf/extra/httpd-vhosts.conf
打开这个选项, 启用虚拟主机配置文件 / usr/local/apache2.4/conf/extra/httpd-vhosts.conf
- vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
- <VirtualHost *:80>
- DocumentRoot "/data/wwwroot/abc.com"
- ServerName abc.com
ServerAlias www.abc.com www.123.com
- ErrorLog "logs/abc.com-error_log"
- CustomLog "logs/abc.com-access_log" common
- </VirtualHost>
- <VirtualHost *:80>
- DocumentRoot "/data/wwwroot/111.com"
- ServerName 111.com
- ServerAlias www.example.com
- ErrorLog "logs/111.com-error_log"
- CustomLog "logs/111.com-access_log" common
- </VirtualHost>
创建目录
- [root@aminglinux-02 ~]# mkdir /data/wwwroot
- [root@aminglinux-02 ~]# mkdir /data/wwwroot/abc.com
- [root@aminglinux-02 ~]# mkdir /data/wwwroot/111.com
创建 index.php 文件
- [root@aminglinux-02 ~]# vim /data/wwwroot/abc.com/index.php
- [root@aminglinux-02 ~]# vim /data/wwwroot/111.com/index.php
- <?php
- echo "abc.com";
- /usr/local/apache2/bin/apachectl -t
- /usr/local/apache2/bin/apachectl graceful
测试虚拟主机
- root@aminglinux-02 ~]# curl -x192.168.16.120:80 abc.com
- abc.com[root@aminglinux-02 ~]# curl -x192.168.16.120:80 111.com
- 111.com[root@aminglinux-02 ~]# curl -x192.168.16.120:80 www.dahjdhajabc.com
- abc.com[root@aminglinux-02 ~]#
这里的 abc.com 为默认虚拟主机
扩展
apache 所有的主机都指向第一个 http://www.aminglinux.com/bbs/thread-491-1-1.html
来源: http://www.bubuko.com/infodetail-2622061.html