PHP学习笔记 - Apache设置

Apache配置

1、首先新建一个自己的amp目录(模仿wampserver安装目录),以后的apache,mysql,php都放在此目录下。

2、下载apache 根据自己的系统下载相应的压缩包,我的64位系统下载的是:”httpd-2.4.23-x64-vc14.zip”

3、’将下载的apache压缩包解压到amp目录下。注意,压缩包解压后的文件夹名称为Apache24(因为我的apache是2.4版本的),将文件夹重命名为apache后复制到amp目录下

4、用管理员身份打开”命令提示符”工具(直接运行cmd打开会遇到权限问题),进入E:\amp\Apache\bin 目录,然后运行 httpd -k install 安装apache服务,安装完成后会看到”Installing ht ‘Apache2.4’ service The ‘Apache2.4’ service is successfully installed.” “Testing        httdp.conf …” 如果遇到”Errors reported here must be corrected before the service can be started.”不用担心,我们手动去启动apache服务:双击打amp\apache\bin目录下的”ApacheMonitor.exe”文件,点击start启动服务即可。

     如果启动失败,可以用`httpd -t’查看启动失败的原因

5、我们的站点文件都放在amp\Apache\htdocs文件夹下,在浏览器中输入localhost回车,就能看到apache页面,修改htdocs目录下的index.html文件,刷新就可以看到页面的变化。

6、配置apache以运行php程序

第一步:装载php”模块”,”模块”就是指php的语言包,即我们下载解压后的php文件目录。将此目录改名为”php”复制到amp目录下(和apache目录同级),然后打开apache的配置文件httpd.conf,该文件在amp\Apache\conf目录下。在配置文件中插入如下代码:

LoadModule php_module "E:/amp/php/php7apache2_4.dll"
<FilesMatch "\.php$\">
setHandler application/x-httpd-php
</FilesMatch>
该配置文件的代码作用是,告知appache,凡是带.php后缀的文件都要找php语言模块处理,"php7apache2_4.dll"文件在amp\php目录下
还有另一种配置方式:AddType application/x-httpd-php .php .pap .phtml,这些.pap .phtml 是我们自定义的文件后缀,同样也可以用php模块处理

7. PHP的配置 
 时区配置 
需要修改php的配置文件,在php目录下有两个配置文件:php.ini-development和php.ini-production,我们复制php.ini-development并重命名为php.ini到当前目录下,打开php.ini,用查找方式查找”timezone”关键字,将timezone的注释去掉,并改为

timezone = PRC 

PRC代表中华人民共和国 
接着在httpd.conf配置文件中设置php.ini文件路径,添加如下代码

PHPIniDir = "E:/amp/php"

注意:不要加上php.ini文件名,只需要目录

8.PHP配置mysql模块 
在php.ini文件中,设定mysql模块文件路径(通过查找方式查找extension-dir,位置在;On Windows下面的那一行 ),修改为指向php语言包中ext这个目录的完整物理路径,代码为:

extension_dir = "E:/amp/php/ext"

接着查找mysql关键词,去掉下面一句前面的” ; “

;extension = php_mysqli.dll

至此php已配置好mysql模块。

主机(站点)配置

单站点配置项

端口监听:

在apache主配置文件httpd.conf中配置自定义监听端口,默认为:Listen 80 
自定义配置(可以同时设置多个Listen监听):

Listen 8088
Listen 9099
Listen 192.168.253.1:10000

如果只写端口,表示本机的多个ip都是用改端口,否则表示只“负责”(监听)该ip

设置主机(站点)的名字:服务器名

默认情况下,apache安装成功就默认配置好了一个“站点”,该站点的实际位置在: 
apache安装位置/htdocs/ 
默认主机名是安装时设置的,比如www.abc.com,当然,也可以使用localhost. 
httpd.conf中的配置为:

# If your host doesn‘t have a registered DNS name, enter its IP address here.
ServerName localhost:80

也可以设置为:

ServerName www.abc.com

设置主机(站点)的物理路径

形式: 
DocumentRoot “实际物理路径” 
重要观念:“站点”就是文件夹 
在httpd.conf中,站点的默认配置如下:

* 注意:以下配置是apache2.2的配置,apache2.4有新的配置方式,详情请参考: 
apache2.4的目录权限设置*

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
# 前面设置了 Define SRVROOT "E:/amp/Apache"
# 这里是原始站点,要写改为自己的站点位置
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn‘t give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

我们接下来设置自定义站点

#修改为自己的站点位置
DocumentRoot "G:/mysite/project"
#此时在浏览器中访问"localhost"会发现被禁止访问(Forbidden),需要添加如下的访问权限
<Directory "G:/mysite/project">
    Options Indexes
    Order Deny,Allow
    Allow from all
    DirectoryIndex my_index.html
</Directory>

上面的是apache2.2的配置方式,下面是apache2.4的配置方式:

# 自定站点配置
DocumentRoot "E:/amp/mysite"
<Directory "E:/amp/mysite">
    # 允许访问目录下的文件列表
    Options Indexes
    # Require all denied
    Require all granted
    DirectoryIndex index.html index.php
    # 下一行,表示当前目录,允许"分布式"权限配置
    AllowOverride all
</Directory>

目录访问权限

一个站点,就是一个“目录” 
每个目录,都应该给其设定“访问权限”,语法如下:

<Directory "要设置权限的目录路径">
# 设置,当一个请求中没有给定请求文件名又没有默认网页(首页)的时候,显示文件列表
Options Indexes
#设置权限控制的先后顺序,只有2种:Deny,Allow(先拒绝,后允许),Allow,Deny(先允许,后拒绝)
Order Deny,Allow
# Deny 用于设定要拒绝访问的来源地址或服务器名,几乎没有意义!
Deny from 拒绝名单 (比如:Deny from 192.169.1.3 172.180.4)
Allow from 允许名单 (比如:Allow from all)
# 设置该文件夹下的"默认网页"(首页),可以设置多个,用于请求中不带文件名的时候自动使用该文件作为"返回"页面(按顺序查找)
DirectoryIndex index.html index.php main.php abc.php 123.html

目录访问权限中的“分布式权限”

对于某个目录的访问权限,我们在apache中使用Directory来设定,但可能不够方便: 
1.apache配置修改,必须重启apache 
2.某个站点中的“下级目录”访问权限,不方便单独设置 
这种可以称为“集中式权限”;

分布式权限,就是:针对某个网站的任何一个下级目录,都可以单独去设置其访问权限,并且可以不重启apache就生效 
做法:分2步: 
1.在该站点对应的目录权限的Directory配置中添加一条:

# 自定站点配置
DocumentRoot "E:/amp/mysite"
<Directory "E:/amp/mysite">
    Options Indexes
    Order Deny,Allow
    Allow from all
    DirectoryIndex index.html index.php
    # 下一行,表示当前目录,允许“分布式”权限配置
    AllowOverride all
</Directory>

2.在该目录下的任何子目录中,创建一个特殊的文件.htaccess,在该文件中写所需要的“权限内容”(几乎和Directory中写法一样) 
举例:www.abc.com/day1/中,初始可以浏览day1中的文件列表,然后再改文件夹中添加.htaccess文件,其内容为:

Deny from all # 拒绝所有
Allow form 192.168.3.4 # 允许这个IP访问

多站点的配置

分3步:

多站点配置

(1)打开我们的apache配置文件,httpd.conf,查找vhost.conf关键字,将查找到的下面这行前面的注释符号#去掉以打开多站点配置:

#Include conf/extra/httpd-vhosts.conf 

(2)打开conf/extra/httpd-vhosts.conf文件,按如下步骤配置站点

a. 在这个文件的头部(尽量添加在上面),添加如下一行代码(apache2.2需要这一步,apache2.4 NameVirtualHost被移除了,可以不做这一步)

# 设定希望提供“多站点”服务的IP地址和端口号,通常默认就是:*.80
# 其中*代表所有的IP,默认其实apache安装好之后就设置好,无需手动设置(关键字NameVirtualHost):
# 只写一次`NameVirtualHost *:80`

b. 将默认的两个站点去掉,或者修改成我们自己的站点,如我们将这个两个站点,第一个站点配置成apache默认的站点,第二个配置成我们自己的一个站点(就是磁盘上的一个文件夹而已)

# 将apache的默认站点设置成第一个站点,这样
# 当请求的站点在这里没有匹配到的时候,apache
# 会将这里的第一个站点返回
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "D:\AMP\httpd-2.4.18-win64-VC11\Apache24\htdocs"
    # 属性需要和DocumentRoot一致
    <Directory "D:\AMP\httpd-2.4.18-win64-VC11\Apache24\htdocs">
        Options Indexes
        # 允许所有的请求
        Require all granted
        # 几乎不要写Deny
        DirectoryIndex index.html,index.php
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName www.myphp.com
    # 设定该站点的别名,即通过以下域名也可以访问
    ServerAlias "lt.php.com"
    DocumentRoot "D:\Software\PHP\project"
    # 属性需要和DocumentRoot一致
    <Directory "D:\Software\PHP\project">
        Options Indexes
        # 允许所有的请求
        Require all granted
        # 几乎不要写Deny
        DirectoryIndex index.php index.php
    </Directory>
</VirtualHost>

注意看上面的注释,其中第一个站点设置成了apache默认的站点,第二个站点设置成了我磁盘上的某个文件夹,以后需要更多的站点,那么在后面按上面的形式以此添加即可,但是DocumentRoot后面的路径需要和Directory的那个路径一致。

注意:

因为我们打开了多站点配置,那么当apache检测无法匹配到的域名,apache将会将第一个站点默认返回,写在最前面的那个站点就是第一个站点.

上面的站点权限访问控制是基于apache2.4的,apache2.2是Deny from all(拒绝所有)或者Allow From all 或者Deny From ip地址或域名,Allow From 多个ip地址或者多个域名的形式。 
*注意: 
1.先把httpd-vhosts.conf文件中的2个初始安装生成的站点删除!! 
2.每个站点的设置项,主要就3个:ServerName,DocumentRoot
<Directory></Directory>


目录别名(虚拟目录)的设置

**某个站点www.abc.com所对应文件夹下有一个目录dir1,则可以这样访问目录: 
www.abc.com/dir1 
这个dir1就称为”真实目录I”**

虚拟目录就是: 
该站点下不存在某个目录名,但却可以使用同样的语法形式去访问,比如: 
www.abc.com/dir2 //假设该站点目录下根本就没有dir2这个目录,此时却可以访问

实现这个技术,就是所谓的”目录别名“(虚拟目录)的设置,过程如下: 
第一步: 
设置目录别名的名字和其对应的”实际真实目录(文件夹位置)“: 
Alias /目录别名的名字 “实际真实目录(文件夹)的位置” 
第二步 
设置该真实目录的访问权限(否则是禁止访问的)

<Directory "真实目录路径">
# 和其他目录权限设置一样
</Directory>

例如:

<VirtualHost *:80>
    ServerName www.gragon.com
    # 设定该站点的别名,即通过以下域名也可以访问
    # ServerAlias "lt.php.com"
    DocumentRoot "E:/amp/mysite"
    # 属性需要和DocumentRoot一致
    <Directory "E:/amp/mysite">
        Options Indexes
        # 允许所有的请求
        Require all granted
        # 几乎不要写Deny
        DirectoryIndex index.php index.php
    </Directory>
    # 设置在这里虚拟目录
    Alias /abc "E:/A_PersonnelDocument"
    <Directory "E:/A_PersonnelDocument">
        Options Indexes
        Require all granted
    </Directory>
</VirtualHost>

原文地址:https://www.cnblogs.com/wangwust/p/8535466.html

时间: 2024-11-06 13:29:05

PHP学习笔记 - Apache设置的相关文章

Sharepoint2013搜索学习笔记之设置业务数据内容源(六)

Sharepoint搜索爬网组件支持爬Business Data Connectivity Service 承载的外部数据,关于Business Data Connectivity Service设置外部数据源,详请请参考:如何:在 SharePoint 2013 中为 SQL Server 创建外部内容类型,爬网设置步骤如下: 第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,点击内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类

Sharepoint2013搜索学习笔记之设置sharepoint网站内容源(五)

第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,点击内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类型中选sharepoint网站,输入sharepoint网址地址,注意下图 sps3的意思是对这个sharepoint网址进行人员搜索,如果需要对人员进行搜索,需要提前进行一些配置,参考如下链接: 在sharepoint中部署人员搜索 第三步,爬网计划点启用增量爬网,创建增量爬网计划,注意,完全爬网会对所有内容源进行爬网,增量爬网

Sharepoint2013搜索学习笔记之设置外网内容源(四)

第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,选择内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类型中选网站,在爬网设置中选中仅对每个开始地址的第一个页面进行爬网,在这一步需要注意爬网设置的选择,如果选择自定义,服务器越距配置过大可能会造成对全网进行爬网,让你的服务器资源急剧耗尽. 第三步,爬网计划点启用增量爬网,创建增量爬网计划,注意,完全爬网会对所有内容源重新进行爬网,增量爬网只访问上次爬网之后被更新的内容.新建的内容源就

运维学习笔记Apache服务

Apache HTTP SERVER Apache软件基金会的一个开放源代码的网页服务器软件 curl -I 查看网站的网页服务器类型 实验测试之前注意向发起访问请求的主机添加域名解析/etc/host 一.安装httpd yum install httpd systemctl start httpd systemctl enable httpd #开机启动 firewall-cmd  --permanent --add-service=http #将http服务添加至防火墙列表中 firewa

jQuery学习笔记(4)-设置元素的属性和样式

一.前言 本篇主要讲解如何使用jQuery获取和操作元素的属性和css样式 二."DOM属性"与元素属性 1.运行一下代码 <img src="/images/logo_small.gif" class="img_logo" /> 2.分析代码 元素属性src:/images/logo_small.gif 元素属性class:img_logo DOM属性currentSrc:http://localhost/images/logo_s

linux 学习笔记 APACHE安装总结

#cd /usr/local #mkdir APACHE #tar zxvf /usr/etc/DEV/httpd-2.2.9.tar.gz #mv httpd-2.2.9/* . #rm -rf httpd-2.2.9/ #./configure <---prefix参数 含义:把文件放在/opt/APACHE/apache文件夹之下卸载时只要删除这个文件即可 --prefix =/opt/APACHE/apache --with-included-apr --enable-so --enab

linux 学习笔记 防火墙设置

1> 重新设置启动防火墙命令 #service iptables restart 2>添加防火墙规则命令 2.1 #service iptables stop 停止防火墙 2.2 #vi /etc/sysconfig/iptables 编辑配置文件 2.3  -A INPVT -P tcp -m tcp --sport 80 -j accept -A INPUT -P tcp -m tcp --dport 80 -j ACCEPT 如果有如下内容则删除 -A RH_Firewall-l-INP

linux学习笔记 apache php mysql +linux

1 #yum remove httpd 2 #yum -y install httpd php-common php-devel php-gd php-mcrypt php-mbstring php-pear php-bcmath php-dba php-mhash php-mxl 3 #whereis httpd 4 #vi /etc/httpd/conf/httpd.conf 找到documentroot 修改为documentroot /usr/local/htdocs 5#rpm -qa

LR学习笔记---参数设置 (转 温故而知新)

LR在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本,如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询.提交等等),那么你必须用参数值取代录制的数值,这个过程叫做参数化. 以下为参数化过程: 参数化过程比较简单,参数化时复杂的是对参数属性的设置.主要是以下两个属性的组合. select  next row 中有三个选项:  Sequential(顺序读取).Random(随机读取).Unique (唯一) update the value