linux之Apache

apache 在linux下命令

2. 编译Apache 在src目录下 ./configure 可用 ./configure--help|less 得到帮助, make, make install, install

3. apache的启动和关闭 sbin/apachectl start sbin/apachectl stop sbin/apachectl restart (重起)

源文档 <http://codex.wordpress.org.cn/Apache_%BC%F2%BD%E9%BC%B0%BB%F9%B1%BE%C5%E4%D6%C3>

http://codex.wordpress.org.cn/Apache_%BC%F2%BD%E9%BC%B0%BB%F9%B1%BE%C5%E4%D6%C3

    1. 重启Apache(httpd)服务: service httpd restart
    2. 重新启动apache服务器: apachectl restart
    3. 启动Apache服务器: apachectl start
    4. 停止Apache服务器: apachectl stop
    5. apachectl [ configtest -> 检查设置文件中的语法是否正确]

[fullstatus -> 显示服务器完整的状态信息 ]

[graceful ->重启Apache服务器,但不会中断原有的连接]

start/stop :: /usr/local/apache2/bin/apachectl (start|restart|graceful|graceful-stop|stop|configtest)

最常用的Apache路径有:

/etc/httpd/conf/httpd.conf

/usr/local/apache/conf/httpd.conf

/usr/local/apache2/conf/httpd.conf

Apache 2.2 default layout (apache.org source package):

ServerRoot :: /usr/local/apache2

DocumentRoot :: /usr/local/apache2/htdocs

Apache Config File :: /usr/local/apache2/conf/httpd.conf

Other Config Files :: /usr/local/apache2/conf/extra/

SSL Config File :: /usr/local/apache2/conf/extra/httpd-ssl.conf

ErrorLog :: /usr/local/apache2/logs/error_log

AccessLog :: /usr/local/apache2/logs/access_log

cgi-bin :: /usr/local/apache2/cgi-bin (enabled by default, but the bundled scripts are 644)

binaries (apachectl) :: /usr/local/apache2/bin

start/stop :: /usr/local/apache2/bin/apachectl (start|restart|graceful|graceful-stop|stop|configtest)

Apache 2.0 default layout (apache.org source package):

ServerRoot :: /usr/local/apache2

DocumentRoot :: /usr/local/apache2/htdocs

Apache Config File :: /usr/local/apache2/conf/httpd.conf

SSL Config :: /usr/local/apache2/conf/ssl.conf

ErrorLog :: /usr/local/apache2/logs/error_log

AccessLog :: /usr/local/apache2/logs/access_log

cgi-bin :: /usr/local/apache2/cgi-bin (enabled by default, but the bundled scripts are 644)

binaries (apachectl) :: /usr/local/apache2/bin

start/stop :: /usr/local/apache2/bin/apachectl (start|stop|graceful|configtest)

Apache 1.3 default layout (apache.org source package):

ServerRoot :: /usr/local/apache

DocumentRoot :: /usr/local/apache/htdocs

Apache Config File :: /usr/local/apache/conf/httpd.conf

ErrorLog :: /usr/local/apache/logs/error_log

AccessLog :: /usr/local/apache/logs/access_log

cgi-bin :: /usr/local/apache/cgi-bin (enabled by default, but the bundled scripts are 644)

binaries (apachectl) :: /usr/local/apache/bin

start/stop :: /usr/local/apache/bin/apachectl (start|stop|graceful|configtest)

Debian, Ubuntu (Apache 2):

ServerRoot :: /etc/apache2

DocumentRoot :: /var/www

Apache Config Files :: /etc/apache2/apache2.conf

:: /etc/apache2/ports.conf

Default VHost Config :: /etc/apache2/sites-available/default, /etc/apache2/sites-enabled/000-default

Module Locations :: /etc/apache2/mods-available, /etc/apache2/mods-enabled

ErrorLog :: /var/log/apache2/error.log

AccessLog :: /var/log/apache2/access.log

cgi-bin :: /usr/lib/cgi-bin

binaries (apachectl) :: /usr/sbin

start/stop :: /etc/init.d/apache2 (start|stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean)

Notes:

The Debian/Ubuntu layout is fully documented in /usr/share/doc/apache2/README.Debian

Debian/Ubuntu use symlinks to enable vhosts and modules. Configuration files are created in their respective sites-available and mods-available directories. To activate vhosts and modules, symlinks are created in the respective sites-enabled and mods-enabled directories to the config files in either sites-available and mods-available. Debian provides scripts to handle this process called ‘a2ensite’ and ‘a2enmod’ which enables vhosts and modules.

The default DocumentRoot is specified in the default vhost config file, /etc/apache2/sites-available/default

Debian, Ubuntu (Apache 1.3):

ServerRoot :: /etc/apache

DocumentRoot :: /var/www

ErrorLog :: /var/log/apache/error.log

AccessLog :: /var/log/apache/access.log

cgi-bin :: /usr/lib/cgi-bin

binaries (apachectl) :: /usr/sbin

start/stop :: /etc/init.d/apache (start|stop|graceful|configtest)

Fedora Core, CentOS, RHEL:

ServerR

配置入门一:虚拟目录

打开并创建虚拟目录的步骤如下:

# Virtual hosts

# Include conf/extra/httpd-vhosts.conf

去掉conf/http.conf文件中:

#Include conf/extra/httpd-vhosts.conf

前面的"#" (实际上是去掉注释) ,

然后若conf下面没有extra/http-vhosts.conf这个文件则创建,最后在里面添加如下代码:

<VirtualHost *:80>

DocumentRoot "E:\APMserv\APMServ5.2.6\www\htdocs\php\Weibopie\Sina_App"

ServerName wo.weibopai.com

# This should be omitted in the production environment

SetEnv APPLICATION_ENV development

<Directory "E:\APMserv\APMServ5.2.6\www\htdocs\php\Weibopie\Sina_App">

Options Indexes MultiViews FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

其中:E:\APMserv\APMServ5.2.6\www\htdocs\php\Weibopie\Sina_App指向你要访问的项目的地址(注意Apache端口号是否是80,若不是则修改),重启Apache服务器。

ServerName 后面的参数要在hosts中映射,这样就可以通过访问域名来访问项目,

127.0.0.1 wo.weibopai.com

备注:一个Apache服务器可以配置多个虚拟目录

Apache禁止目录访问方法介绍

在PHP网站开发中,基于WEB服务器和PHP网站程序代码的安全考虑,我们需要对相关的目录或者文件访问权限进行控制,以防止意外情况的发生,那么我们如何来实现这种功能呢?我们可以通过Apache来实现禁止目录访问(禁止游览列出的目录或文件列表)、禁止或允许IP与域名访问目录的功能。

环境说明

我使用的是DedeCMS DedeAmpz的PHP运行环境,PHP版本5.2.4,Apache版本2.2.4

在Apache中配置禁止目录访问,即禁止游览列出的目录/文件列表的方法

访问网站目录时Apache默认配置为可列出目录/文件列表,即当你访问http://localhost时会列出相关的目录和文件列表,我们可以通过修改Apache配置文件httpd.conf来实现禁止列出目录/文件列表,方法如下:

1、打开apache配置文件httpd.conf

2、找到

1

2

3

4

5

6

<Directory />

Options Indexes

AllowOverride None

Order allow,deny

Allow from all

</Directory>

只需要修改Options Indexes为Options None即可,注:根据PHP运行环境安装包的不同,Options Indexes也有可能是Options Indexes FollowSymLinks,一并改为Options None即可。

3、保存httpd.conf,并重启Apache即可,此时再访问http://localhost时, 报apache http 403 禁止访问错误信息

Forbidden

You don’t have permission to access / on this server.

Apache单个或多个目录禁止访问方法

这种方法通常用来禁止访问者访问后台管理目录或者程序目录,方法如下

1、打开apache配置文件httpd.conf

2、创建Directory块,比如禁止访问某个类库目录,可以这样实现

1

2

3

4

<Directory /var/www/www.leapsoul.cn/inc>

Order Deny,Allow

Deny from all

</Directory>

上述代码实现了禁止所有用户访问www.leapsoul.cn下inc目录的功能。如要实现禁止访问所有目录中inc目录的功能,只要将

1

<Directory /var/www/www.leapsoul.cn/inc>

更改为

1

<Directory /var/www/www.leapsoul.cn/*/inc>

即可。

3、重启Apache服务器。

其他说明

1、只允许或禁止某个域名进行目录访问

1

2

3

4

5

<Directory /var/www/www.leapsoul.cn/inc>

Order Deny,Allow

Deny from abc.com

Allow from apache.org

</Directory>

上述代码实现禁止abc.com域中主机访问inc目录,允许apache.org域中主机访问inc目录的功能。

2、只允许或禁止某个IP进行目录访问

1

2

3

4

5

<Directory /var/www/www.leapsoul.cn/inc>

Order Deny,Allow

Deny from 10.1.1.2

Allow from 192.168.1.0/255.255.255.0

</Directory>

上述代码实现禁止IP10.1.1.2访问www.leapsoul.cn/inc目录,允许IP192.168.1子网中的主机访问www.leapsoul.cn/inc目录的功能

注意:Allow from 192.168.1.0/255.255.255.0等同于Allow from 192.168.1或Allow from 192.168.1.0/24

至此,通过配置Apache服务器我们可以实现禁止目录访问(列出目录或文件列表),也可以实现禁止访问单个或者多个目录,更可以对访问者进行控制,比如允许或禁止某个IP或者域名对目录进行访问,这些功能对提高和优化WEB服务器的安全性能是必不可少的方法。

源文档 <http://www.leapsoul.cn/?p=453>