nihaogirl 发表于 2017-4-10 10:26:02

搭建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 x_cn@msn.com
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>
页: [1]
查看完整版本: 搭建php环境 虚拟目录的两种配置方法vhost rewrite