搭建php环境 虚拟目录的两种配置方法vhost rewrite

模块加载 基本的配置要完整

.htaccess文件提供了针对每个目录的配置方法

 

vhost的配置

http.conf中要打开的模块

LoadModule include_module modules/mod_include.so  加载require方法的打开

 

LoadModule negotiation_module modules/mod_negotiation.so

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 代理模块的打开

LoadModule rewrite_module modules/mod_rewrite.so url 重定向模块

LoadModule setenvif_module modules/mod_setenvif.so 根据客户端请求头信息设置环境变量

配置一些基本参数,主要是路径问题。

DocumentRoot "D:/webroot" 这个路径是放你项目的目录,

 

 

<Directory />

    Options FollowSymLinks

    AllowOverride All

#   Order deny,allow

#   Deny from all

</Directory>

访问权限的控制 /是访问的目录,不同的级别对应
# Virtual hosts
Include conf/extra/httpd-vhosts.conf配置houst这个模块要打开
apache用加载的模式来加载php模块
# PHP 5
LoadModule  php5_module  "D:/php/php5apache2_2.dll"
AddType  application/x-httpd-php  .php
# php.ini
PHPIniDir  "D:/php"

注意:

这个地方要注意路径的问题是d:/php/ext 而不是d:\php\ext 

D:/php/php5apache2_2.dll 这个模块可能因不同的apache版本会有不同,D:/php/php5apache2.dll

配置环境变量或指定PHPIniDir

 

#localhost
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "D:/webroot"
ServerName localhost
</VirtualHost>
vhost的配置这个地方和Apache2.2\conf\extra 下的httpd-vhosts.conf中的对应 并在hosts文件中设置相应的域名
<VirtualHost *:80>
ServerName localhost
ServerAlias localhost *.localhost
DocumentRoot D:/webroot
</VirtualHost> 这个地方和http.conf中的区别就是多了个ServerAlias 

php.ini中的设置 
要打开 extension=php_gd2.dll 画图类库,在linux下有一个函数imageant...的使用必须gd2和php一起编译
extension=php_mbstring.dll 宽字符串的应用
extension=php_mysql.dll
extension=php_mysqli.dll 加载mysql模块
extension=php_soap.dll 加载soap功能模块

date.timezone = "Asia/Shanghai"设置时区
default_mimetype = "text/html" 设置文档
default_charset = "UTF-8" 设置字符集

 

mysql 的安装主要是注意字符的设置和端口的选定

以及apache的安装过程中端口尽量选默认的80 ,当apache出错的时候,要查询错误日志\Apache2.2\logs 下的error.log

 

////////////////////////////mod_rewrite的作用是解析跳转url的请求,结合vhost的配置 我们可以使一个ip对应多个项目的域名

 

在httpd.conf下要打开相应的模块

LoadModule vhost_alias_module modules/mod_vhost_alias.so

LoadModule rewrite_module modules/mod_rewrite.so

 

 <Directory "E:/webroot">在这里面要设置跳转的级别

Options Indexes FollowSymLinks

控制器的重写可以写在.htaccess文件中 不过使用该文件性能会下降很多

 AllowOverride All

服务请求的优先级

    Order deny,allow

    Allow from all

虚拟目录打开

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

然后就是去ext/httpd-vhosts.conf里面配置跳转规则了

 

<VirtualHost *:80>*代表了ip地址 本机相同的可以用*来代替

ServerName swing.com 请求的域名要和hosts文件里面的相对应

#ServerAlias swing.com *.swing.com 

DocumentRoot E:/webroot/cakephp/app/webroot 项目对应的地址

DirectoryIndex index.php index.html index.htm 请求的默认文件 如果这个地方不写可能回报权限不足,因为apache默认是不能打开目录的

 

<Directory "E:/webroot/cakephp/app/webroot">重写的目录地址

    Options FollowSymLinks

    AllowOverride All

    Order deny,allow

    Allow from all

 

RewriteEngine On 打开重写

RewriteRule ^(.*) index.php 重写的规则 把所有的url请求转发到index.php下面

</Directory>

 

名词解释:

directory

</VirtualHost>

 

</Directory>

你可能感兴趣的:(PHP)