分类目录归档:Apache

Apache网站如何做301重定向

1.先在httpd.conf配置文件中开启rewrite模块,把mod_rewrite.so模块前的#号去掉。
   image.png

2.在建立的网站中AllowOverride值为all,打开对.htacess支持
   image.png
3.在.htaccess文件中输入如下内容

   image.png

4.打开网站进行测试有没有跳转

设置apache监听多端口

1.打开Apache的配置文件httpd.conf

Listen 80

下面添加多个监听端口如

Listen 85

Listen 8080

这样就增加了858088端口的监听

image.png

2.然后在最后的位置设置虚拟主机目录VirtualHost字段修改端口如下

<VirtualHost *:85>

</VirtualHost>

image.png

3.重启apache服务后查看85端口被监听了.

 image.png

如何理解Errors reported here must be corrected before the service can be started

说明:在windows中安装httpd在使用httpd -k install命令注册Apache的服务时,会提示这句话Errors reported here must be corrected before the service can be started,其实这个提示并不是错误提示,这句话想要表达的意思是说:如果这行下边出现错误则解决错误后再启动!,如果下边没有出现错误那边直接启动即可.

image.png

image.png

如何解决: DocumentRoot does not exist

1.linux中安装httpd后重启的时候出现如下错误DocumentRoot does not exist

image.png

2.有两种原因可影响到此种情况:第一种就是linux开启了selinux关闭selinux即可,记得一定要关闭后重启下服务器.
3.如果还不行可以进行文档对比校验例如,一个服务器有一个默认的DocumentRoot at  /var/www/html,但是我们希望它在别的地方/home/wwwroot/,允许用户HHTP访问其家目录.

ls –dZ /var/www/html 命令执行可以看到httpd_sys_content_t

image.png

接着执行下面命令后再重启httpd发现已经没有提示DocumentRoot does not exist了

image.png

如何设置apache服务安装ssl证书

这里以widnows下安装apache为实例:
1.安装apache和php这里请参考http://www.landui.com/help/show-4824(这里以apache使用fcgi的方式调用php)
2.apache和php安装之后,打开http.con文件中把mod_ssl.so的注释去掉
image.png
3.在httpd.conf文件中找到httpd-ssl.conf把注释去掉
image.png
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>

image.png
5.
测试
image.png

如何使用.map配置apache网站

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

如何使用RewreiteMap

此功能是基于重定向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方式调用php多版本

首先要注意下载的apachefastcgi32位还是64位相对应,这点很重要.

实验目的实现apache多版本php切换

下载的php为非线程安全(nts)

apache2.4mod_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版本路径就可以切换