Apache和PHP结合总结

简介:

1、Apache和PHP结合

如下配置的:访问网站是第一步的截图:
mark
第二步的截图:mark
第三步的结果截图:mark
测试php脚本截图:
mark

[root@chy ~]# cat /usr/local/apache2.4/conf/httpd.conf
(apache的主配置文件)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl restart
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::338e:589c:fa07:65e5. Set the 'ServerName' directive globally to suppress this message
httpd not running, trying to start
/usr/local/apache2.4/bin/apachectl: 行 79: 32220 段错误  (吐核)$HTTPD -k $ARGV
(启动apache时报错的原因是因为我的服务器里有两个php,一个是php5一个是php7在这里需要只调用一个php,步骤如下:
[root@chy ~]# vim /usr/local/apache2.4/conf/httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so
#LoadModule php7_module        modules/libphp7.so
(在主配置文件里面找到php模块,然后注释其中一个php,我注释的是php7)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl restart
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::338e:589c:fa07:65e5. Set the 'ServerName' directive globally to suppress this message
(启动时会有这一行的提示信息,此信息并不是报错的信息。如果不想它出现执行如下步骤:
[root@chy ~]# vim /usr/local/apache2.4/conf/httpd.conf
ServerName www.example.com:80
将主配置文件里面的ServerNname的注释打开)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl restart
(然后就没有提示了)
如果遇到访问网站时无法访问时排错步骤如下:
第一步查看服务器的地址是否能互通。在windowsping时可以ping通(看截图的结果)
第二步是否可以telnet到服务器的机器
telnet不成功的原因是因为iptables的规则并没有放通80的端口。
第三步
[root@chy ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
(增加一条规则,是允许80端口通过)
[root@chy ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 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
 2917  237K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,
(查看规则可以查到)
(第三步网页的结果如截图)
第四步需要更改主配置文件
[root@chy ~]# !vi
vim /usr/local/apache2.4/conf/httpd.conf
<Directory />
    AllowOverride none
    Require all granted
</Directory>
(在配置文件找到此行将Require all denied 变为 Require all granted)
 Require all granted
(在配置文件里面有这一行,将此granted变为denied 如下所示:
Require all granted
(做这个步骤是为了检验如果把require更改为denied是否可以访问网页,最后切记要改回granted)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
( -t 是检查配置文件的语法是否正确)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl graceful
(这个是重新加载配置文件与重新启动是有区别的,重新启动要杀死进程然后在打开,而重新加载文件只是加载文件,并不会杀死进程)
[root@chy ~]# vim /usr/local/apache2.4/conf/httpd.conf
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
(在主配置文件中如上位置增加如下配置,增加的含义是可以解析,如果不增加就解析不了)
    AddType application/x-httpd-php .php

    <IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
(然后找到index 增加一行index.php)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl graceful
(每次更改过配置文件后都需要重新增加配置文件)
[root@chy ~]# vim /usr/local/apache2.4/htdocs/1.php
<?php
phpinfo();
?>
(1.php是测试脚本,在此脚本配置文件里面增加如上选项即可)
访问时:http://192.168.212.10/1.php
(此访问效果看测试php脚本截图)

如上是php5的测试:如下开始php7的测试:
此截图是测试php7的截图 mark

[root@chy ~]# vim /usr/local/apache2.4/conf/httpd.conf
#LoadModule php5_module        modules/libphp5.so
LoadModule php7_module        modules/libphp7.so
(在主配置文件里面找到57的把之前打开的php5注释,将php打开)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl graceful
(加载配置文件)
测试php7的结果如图
在这里需要说明的是因为我的虚拟机里面有两个php,之前在测试php5的时候在主配置文件都增加过php解析。)

2、apache默认虚拟主机(总结)

"虚拟主机"是指在一个机器上运行多个网站(比如:www.company1.com 和 www.company2.com )。如果每个网站拥有不同的IP地址,则虚拟主机可以是"基于IP"的;如果只有一个IP地址,也可以是"基于主机名"的,其实现对最终用户是透明的。物理服务器只有一个,而且web服务器也只有一个,却可以服务多个不同的站点。
mark

windos的虚拟主机配置文件的位置在c盘下的windos-system32-drivers-etc目录下(因为我的windos系统是wind8系统,所以我首先用搜索找到记事本并用管理员权限去运行如不这样操作会导致最后增加的东西增加不了。)
192.168.212.10 www.chy.com   www.lf.com (这是我在windows配置文件里面增加了如下的配置)
在windows下的的cmd里面ping 192.168.212.10 可以ping通
[root@chy ~]# vim  /usr/local/apache2.4/conf/httpd.conf (虚拟主机配置文件介绍如下)
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
(在httpd配置文件里面找到 virtual hosts 打开配置文件。此配置文件是虚拟主机的配置文件)
[root@chy ~]# vim  /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
(虚拟主机配置文件)
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com (定义管理员的邮箱,用不用都可以)
    DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com"(用来定义网站的根目录的位置
    ServerName dummy-host.example.com (定义网站的名称)
    ServerAlias www.dummy-host.example.com (定义网站的别名)
    ErrorLog "logs/dummy-host.example.com-error_log" (定义指定错误日志)
    CustomLog "logs/dummy-host.example.com-access_log" common(定义指定的访问日志)
</VirtualHost>
(每个VirtualHost代表的是一个主机,代表的是一个网站)
(这里需要注意的是一旦定义了虚拟主机配置文件,主机配置文件的定义的网站就会失效)
[root@chy ~]# vim  /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias bbb.com
    #ErrorLog "logs/dummy-host.example.com-error_log"
    #CustomLog "logs/dummy-host.example.com-access_log" common
#
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias bbb.com
    #ErrorLog "logs/dummy-host.example.com-error_log"(先暂时关闭日志生成文件)
    #CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.exaple.com
    #ErrorLog "logs/dummy-host2.example.com-error_log"
    #CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
(如上定义的是虚拟主机配置文件)
[root@chy ~]# mkdir -p /data/wwwroot/abc.com
[root@chy ~]# mkdir /data/wwwroot/111.com
[root@chy ~]# mkdir -p /data/wwwroot/111.com
创建网站的根目录,此目录是需要跟虚拟机主机里面的目录的路径一致)
[root@chy ~]# vim /data/wwwroot/abc.com/index.php
<?php
echo "abc.com";
php?>
(在abc网站定义php)
同样的方式在111.com网站里面也要定义php:步骤如下
[root@chy ~]# vim /data/wwwroot/111.com/index.php
<?php
echo "111.com";
php?>
[root@chy ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
(检查配置文件是否正常)
用ctrl+r搜索关键字 即可:
[root@chy ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@chy ~]# curl -x192.168.212.10:80 abc.com
abc.com[root@chy ~]# curl -x192.168.212.10:80 abcd.com
(用curl -x测试)

curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。 
-x/--proxy <host[:port]> 在给定的端口上使用HTTP代理 (curl -x的含义) 
扩展




     本文转自我不是瘦子51CTO博客,原文链接:

http://blog.51cto.com/chy940405/2047856

,如需转载请自行联系原作者




相关文章
|
4月前
|
Ubuntu Apache PHP
解决Ubuntu下Apache不解析PHP问题
解决Ubuntu下Apache不解析PHP问题
|
11月前
|
PHP Apache
PHP环境搭建(配置php模块到apache服务器)
PHP环境搭建(配置php模块到apache服务器)
91 0
|
24天前
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
35 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
1月前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
66 0
|
4月前
|
关系型数据库 MySQL PHP
unbuntu搭建LAMP(Apache2+PHP+MySQL+phpmyadmin)
unbuntu搭建LAMP(Apache2+PHP+MySQL+phpmyadmin)
|
4月前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
268 2
|
12月前
|
域名解析 Apache PHP
PHP Apache - 多站点虚拟主机配置
PHP Apache - 多站点虚拟主机配置
377 0
|
4月前
|
Apache
apache2.4集成php7或8均失败
apache2.4集成php7或8均失败
44 0
|
4月前
|
安全 网络安全 Apache
Windows下Apache部署多个php项目
在 Windows 系统下,使用 Apache 服务器发布多个 PHP 项目是一项常见的任务。本文将介绍如何在 Windows 操作系统下使用 Apache 发布多个 PHP 项目。在 Windows 操作系统下使用 Apache 发布多个 PHP 项目可能有一些挑战,但是只要您按照本文的步骤进行操作,您就可以成功地完成这项任务。希望本文能够对您有所帮助。
102 0
|
4月前
|
Apache PHP
百度搜索:蓝易云【Apache环境php安装扩展swoole。】
通过以上步骤,你就可以在Apache环境中成功安装和配置Swoole扩展了。请确保你按照正确的步骤进行操作,并根据你的系统和环境进行相应的调整。如果遇到问题,你可以参考Swoole官方文档或社区的支持资源来获取更多帮助。
47 1

推荐镜像

更多