xiaowei8782088 发表于 2018-11-18 08:01:45

LAMP架构(apache与php结合,apache默认虚拟主机)

一、apache与php结合


主配置文件/usr/local/apache2.4/conf/httpd.conf
# /usr/local/apache2.4/bin/apachectl graceful(重新加载服务,并不重启服务)


# /usr/local/apache2.4/bin/apachectl start    (启动httpd服务)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message   这是一个警告


解决方法:修改主配置文件中/usr/local/apache2.4/conf/httpd.conf,192行,ServerName前的#号去掉


接下来发现直接访问ip显示错误
错误代码: HTTP ERROR -2146697211


解决办法:1.首先看ip是否ping通。
      2.查看80端口是否打开
      iptables -I INPUT -p tcp --dport 80 -j ACCEPT      打开80端口
   iptables -D INPUT -p tcp --dport 80 -j ACCEPT      关闭80端口


有时候会显示状态码为403,状态码正常为200
解决办法:修改主配置文件中/usr/local/apache2.4/conf/httpd.conf,202行, Require all denied修改为Require all granted


因为要支持php,要在配置文件里增加一行,搜索AddType
398                              AddTypeapplication/x-httpd-php .php      


增加索引页。
搜索 Indexes
251                              DirectoryIndex index.html    index.php


检测php有么有解析成功,在/usr/local/apache2.4/htdocs下创建一个1.php
并写入




用浏览器访问ip,若出现界面,则表示php解析成功。
/usr/local/php7/bin/php -i | less   和这个命令显示的命令一样,但是是以表格的形式
若没有成功:

[*]检查有没有加载php模块。
/usr/local/apache2.4/bin/apachectl -M
2.有没有php模块
ls /usr/local/apache2.4/modules/libphp5.so
3.配置文件里有没有
有没有加载 libphp5.so 这一行的配置
检查有没有加 AddType php 这一行
  
二、apache默认虚拟主机
  (默认虚拟主机:只要servername里么有定义,但是解析到了本机的Ip,则会自动跳转到默认虚拟主机上来)
一个服务器可以访问多个网站。每个网站都是一个虚拟主机。
windows和Linux操作系统中,都有一个hosto文件      可以在这个文件里制定一个域名,然后这个域名指向一个ip
# vim /usr/local/apache2.4/conf/httpd.conf


203   ServerName 111.com:80                (定义了主机域名和端口号)
225   DocumentRoot "/usr/local/apache2.4/htdocs"(定义了主机目录位置)
476    # Virtual hosts(虚拟主机)
477    #Include conf/extra/httpd-vhosts.conf      (去掉井号,主配置文件的server就失效了)


去掉#可以打开一个虚拟主机配置文件,可以定义多个servername
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
ServerAdmin               定义管理员邮箱(可以删除)
DocumentRoot            网站的根目录
ServerName               访问网站的域名
ServerAlias            网站别名
ErrorLog                错误日志
CustomLog               访问日志
写完虚拟配置文件然后要创建相应的目录





    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com www.123.com
    php_admin_value open_basedir "/data/wwwroot/abc.com:/tmp/"
    ErrorLog "logs/abc.com"
    CustomLog "logs/abc.com-access_log" common



编写完成后,重新加载配置文件
# /usr/local/apache2.4/bin/apachectl graceful
# /usr/local/apache2.4/bin/apachectl start         (启动apache服务)
httpd (pid 3490) already running


测试,我们用curl命令,-x可以指定ip.:
# curl -x192.168.52.100:80 abc.com
abc.com


两个虚拟主机的servername中都没有定义lty这个域名,我们访问看他会跳转到哪个上。
# curl -x192.168.52.100:80 lty.com
abc.com
  




页: [1]
查看完整版本: LAMP架构(apache与php结合,apache默认虚拟主机)