1.先在httpd.conf配置文件中开启rewrite模块,把mod_rewrite.so模块前的#号去掉。
2.在建立的网站中AllowOverride值为all,打开对.htacess支持
3.在.htaccess文件中输入如下内容
4.打开网站进行测试有没有跳转
1.先在httpd.conf配置文件中开启rewrite模块,把mod_rewrite.so模块前的#号去掉。
2.在建立的网站中AllowOverride值为all,打开对.htacess支持
3.在.htaccess文件中输入如下内容
4.打开网站进行测试有没有跳转
1.打开Apache的配置文件httpd.conf
在Listen 80
下面添加多个监听端口如
Listen 85
Listen 8080
这样就增加了85和8088端口的监听
2.然后在最后的位置设置虚拟主机目录VirtualHost字段修改端口如下
<VirtualHost *:85>
</VirtualHost>
3.重启apache服务后查看85端口被监听了.
说明:在windows中安装httpd在使用httpd -k install命令注册Apache的服务时,会提示这句话Errors reported here must be corrected before the service can be started,其实这个提示并不是错误提示,这句话想要表达的意思是说:如果这行下边出现错误则解决错误后再启动!,如果下边没有出现错误那边直接启动即可.
1.linux中安装httpd后重启的时候出现如下错误DocumentRoot does not exist
2.有两种原因可影响到此种情况:第一种就是linux开启了selinux关闭selinux即可,记得一定要关闭后重启下服务器.
3.如果还不行可以进行文档对比校验例如,一个服务器有一个默认的DocumentRoot at /var/www/html,但是我们希望它在别的地方/home/wwwroot/,允许用户HHTP访问其家目录.
ls –dZ /var/www/html 命令执行可以看到httpd_sys_content_t
接着执行下面命令后再重启httpd发现已经没有提示DocumentRoot does not exist了
这里以widnows下安装apache为实例:
1.安装apache和php这里请参考http://www.landui.com/help/show-4824(这里以apache使用fcgi的方式调用php)
2.apache和php安装之后,打开http.con文件中把mod_ssl.so的注释去掉
3.在httpd.conf文件中找到httpd-ssl.conf把注释去掉
4.在conf/extra/httpd-ssl.conf文件建立https站点(其实和我们平时在httpd-vhost.conf中建立的网站是一样的,只是多了引入证书的链接),如下:
<VirtualHost *:443> SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 SSLCertificateFile D:\wwwroot\discuz\ssl\certificate.crt SSLCertificateKeyFile D:\wwwroot\discuz\ssl\private.key SSLCertificateChainFile D:\wwwroot\discuz\ssl\ca_bundle.crt ServerAdmin webmaster@dummy-host.cc.com DocumentRoot "D:/wwwroot/discuz" ServerName xn--eqvw44d.com ServerAlias www.xn--eqvw44d.com ErrorLog "logs/discuz.com-error.log" CustomLog "logs/discuz.com-access.log" common FcgidInitialEnv PHPRC "C:/php/5.3" FcgidWrapper "C:/php/5.3/php-cgi.exe" .php <Directory d:/wwwroot/discuz> Options FollowSymLinks ExecCGI AllowOverride all Require all granted </Directory> </VirtualHost>
5.测试
使用apache建立虚拟站点后出现提示:正在启动 httpd [warn] _default_ VirtualHost overlap on port 80, the first
has
解决方法:打开httpd.conf配置文件把NameVirtualHost *:80前面的#号去掉即可
http.conf配置文件添加修改如下:
# Virtual Hosting Map
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost
txt:/usr/local/apache2/conf/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}}
^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
vhost.map文件中添加域名和网站路径:
www.site1.com /www/site1
www.site2.com /www/site2
在给apache降权后在启动apache时出现错误.提示”无效的配置文件路径”,如下图:
解决办法:
给apache的上层目录在添加下权限即可,如我的apache是安装在d盘,我直接给apache的上层目录也就是d磁盘添加apache-run的读取权限即可正常启动。
此功能是基于重定向rewrite功能的,修改了vhost.map文件后,无需重新启动apache,立即生效。
1.http.conf配置文件修改如下:
# Virtual Hosting Map
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/apache2/conf/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
2.vhost.map文件中添加域名和网站路径:
www.site1.com /www/site1
www.site2.com /www/site2
注意如果访问site1.com会自动跳转到www.site1.com
首先要注意下载的apache和fastcgi是32位还是64位相对应,这点很重要.
实验目的实现apache多版本php切换
下载的php为非线程安全(nts)
apache2.4和mod_fcgid2.3.9可以到https://www.apachelounge.com/download/ 下载
apache2.2 32位和mod_fcgid2.3.6可以到http://kmsoft.landui.com:81/apache/mod_fcgid-2.3.6-win32-x86.zip 下载
1.安装/配置/启动 Apache
2.下载mod_fcgid解压后复制到apache/modules
3.httpd.conf
Include conf/extra/php.conf
Include conf/extra/httpd-vhosts.conf
4.添加php.conf 内容如下
#加载mod_fcgid
LoadModule fcgid_module modules/mod_fcgid.so
#设置apache如何处理php文件
AddHandler fcgid-script .fcgi .php
#实例最大请求
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
#每个进程的最大请求数
FcgidMaxRequestsPerProcess 1000
#启动的最大进程数
FcgidMaxProcesses 15
#进程超时时间
FcgidIOTimeout 120
FcgidIdleTimeout 120
#添加mime支持php
AddType application/x-httpd-php .php
5.建站
1).添加php路径
FcgidInitialEnv PHPRC “C:/php/5.3”
FcgidWrapper “C:/php/5.3/php-cgi.exe” .php
2).Options FollowSymLinks 后面添加 ExecCGI
如下:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.cc.com
DocumentRoot “D:/wwwroot/cc.com”
ServerName cc.com
ServerAlias www.cc.com
ErrorLog “logs/cc.com-error.log”
CustomLog “logs/cc.com-access.log” common
FcgidInitialEnv PHPRC “C:/php/5.3”
FcgidWrapper “C:/php/5.3/php-cgi.exe” .php
<Directory d:/wwwroot/cc.com>
Options FollowSymLinks ExecCGI
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
6.虚拟主机中修改php版本路径就可以切换