超级强大好用的Ubuntu服务器,不尝试绝对是损失,当然桌面版的Ubuntu使用起来更赞。继续研究ing...


一、搭建APACHE服务器

1、 软件安装

安装命令:sudo apt-get install apache2



这里因为已经安装过了,所以没有任何变动。

 

2、 软件配置

配置文件说明:

Apache2.conf         全局配置文件,不要轻易改动;
Conf.d                   存放一些一般性的配置;
Envvars                 存放环境变量,一般不需要修改;
Httpd.conf             用户配置文件;
Mods-available       该目录下是已经安装的可以使用的模块;
Mods-enabled        该目录下是已经启用的模块;
Ports.conf              httpd服务的端口;
Sites-available        该目录下是可用的虚拟主机;
Sites-enabled         该目录下是已经启用的虚拟主机。

3、 APACHE模块
使用a2enmod查看可用的模块,输入模块名称即可使用它。
 
使用a2dismod查看已经启用的模块,输入模块名称可以禁用它。
 
4、 APACHE网页文件的存放位置
默认存放:/var/www/目录下。可以通过DocumentRoot关键字的设定来指定任意目录为网页文件的根目录。
5、APACHE虚拟主机
每个APACHE虚拟主机都有单独的配置文件,这些配置文件放在/etc/apache2/sites-available目录下。
 
 
5、1 创建一个新的虚拟主机
1、先将default虚拟主机复制一份,以便在其基础上修改
使用命令:sudo cp /etc/apaches/sites-available/default /etc/apache2/sites-avilable/blog.mytest.com
 
2、编辑配置文件
使用命令:sudo nano /etc/apache2/sites-available/blog.mytest.com
 
A、删除第一行NameVirtualHost
B、 将DocumentRoot的路径修改为/var/www/blog.mytest.com
C、 将<Directory /var/www/>修改为<Directory /var/www/blog.mytest.com>

# 如果有多个虚拟主机,可以修改ErrorLog和CustomLog的路径,这样可以把每个虚拟主机的日志分开。

 

D、创建/var/www/blog.mytest.com目录,并建立文件,以供访问


ubuntu系统查看mysql服务状态 ubuntu查看服务列表_配置文件

3、禁用默认虚拟主机,并使用新建的网站为默认主机。
使用命令:
Sudo a2dissite default && sudo a2ensite blog.mytest.com
Sudo /etc/init.d/apache2 restart
 
# a2dissite 禁用某虚拟主机命令
# a2ensite 启用某虚拟主机命令
 
1、 虚拟主机配置详解
<VirtualHost *:80>
       ServerAdmin webmaster@localhost
 
       DocumentRoot /var/www/blog.mytest.com
       <Directory />
                Options FollowSymLinks
                AllowOverride None
       </Directory>
       <Directory /var/www/blog.mytest.com>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
       </Directory>
 
       ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
       <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
       </Directory>
 
       ErrorLog ${APACHE_LOG_DIR}/error.log
 
       # Possible values include: debug, info, notice, warn, error, crit,
       # alert, emerg.
       LogLevel warn
 
       CustomLog ${APACHE_LOG_DIR}/access.log combined
 
   Alias /doc/ "/usr/share/doc/"
   <Directory "/usr/share/doc/">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 127.0.0.0/255.0.0.0 ::1/128
   </Directory>
 
</VirtualHost>

(1)<VirtualHost></VirtualHost>指令

里面宝航了一组其他指令,这些指令都只针对于当前的虚拟主机。

(2)ServerAdmin指令

用于指定站长的E-mail地址

(3)DocumentRoot指令

用于指定网站的根目录,一般要设置为绝对路径,否则APACHE会认为父目录是ServerRoot指令所指定的路径。

(4)<Directory></Directory>指令

该指令中间所包含的指令,仅对指定的目录有效。该目录支持通配符和正则表达式,用来匹配大量目录。

(5)Option指令

用来配置指定目录的特性,比如是否允许符号连接、是否使用CGI等。

(6)AllowOverride指令

用来针对.htaccess文件的,可以允许该文件的全部指令,也可以只允许某些类型的指令,或者全部禁止。

(7)Order指令

用来控制默认访问状态,以及Allow和Deny指令生效的顺序。

(8)Allow指令

用来控制那些主机可以访问

(9)Deny指令

用来限制主机访问

(10)ErrorLog指令

用于定义错误日志所在的位置

(11)LogLevel指令

用来控制日志的详细程度的级别

Emerg:紧急(系统无法使用)

Alert:必须立即采取措施

Crit:致命情况

Error:错误情况

Warn:警告情况

Notice:一般重要情况

Info:普通信息

Debug:调试信息

(12)CustomLog指令

定义了访问日志的路径和格式

(13)DerverSignature

用来定义服务器所生成的页面的页脚

(14)Alias指令

有点像Linux的Ln命令,它提供路径别名,   让你使用起来更方便。

Eg: Alias /doc/ “/usr/share/doc/” 将/usr/share/doc/映射成网站/doc/

 

2、 HTTPS的实现

A、启用mod_ssl模块

命令:sudo a2enmod ssl


A、生成证书,安装证书

命令:sudo apt-get install openssl


创建key

命令:openssl genrsa –des3 –out server.key 1024


创建CSR证书签发请求

命令:openssl req –new –key server.key –out server.csr


 

安装证书

命令:sudo cp server.crt /etc/ssl/certs

          Sudo cp server.key /etc/ssl/private

 

A、修改虚拟主机配置文件,重启APACHE服务