安装Apache
安装Apache2,中间有确认环节
sudo apt-get install apache2
用浏览器访问localhost,如成功访问,则apache服务已安装并开启
转到Apache2的主配置文件
sudo /etc/apache2/apache2.conf
可以看到文件中列出的Apache2配置文件目录结构,并且有详细的注释
/etc/apache2/
|-- apache2.conf 主配置文件,这个文件include以下所有的文件,*是通配符
|------ `ports.conf 配置Apache监听端口,一般无需修改
|-- mods-enabled 各种module的load和config文件
| |-- *.load
| `-- *.conf
|-- conf-enabled
| `-- *.conf
`-- sites-enabled 配置访问端口
apache2.conf本身的各项参数几乎无需配置。我们再来看下apache2的目录结构
其中
mods-available
低下存放了所有可用的module,想要使用这些module的时候,只需将相应的conf
和load
文件copy到mods-enabled
地下即可,不用再去apache2.conf
中做额外配置。对sites-enabled同理
配置SSL(HTTPS访问)
安装OPENSSL
ubuntu默认已经安装了OPENSSL,如果没安装
sudo apt-get install openssl
从CA机构获取签名证书
关于CA证书的获取,请参考Ubuntu下配置Apache HTTPS
生成此证书,需要向第三方提交一个“生成证书请求文件(CSR)”,生成这个CSR需要两步:
- 生成私钥KEY
- 生成请求CSR
生成私钥
# des3表示使用该私钥时需要密码
# 1024是私钥的长度
# 生成一个名为server.key的私钥
openssl genrsa 1024 -out server.key
系统会提示输入加密密码,此后使用该私钥都需要该密码。输入两次密码后,将会生成server.key私钥文件。
生成CSR请求文件
运行如下命令,将server.key
传给第三发CA机构,签发CSR证书
openssl req -new -key server.key -out server.csr
配置443端口访问
443端口也就是SSL默认的端口。
配置ports.conf
监听443端口(默认应该是配置好的)
Listen 443
转到sites-available
下,可以看到有个default-ssl.conf
文件,将其copy到sites-enabled
下。
sites-enabled
下可以看到一个默认配置文件000-default.conf
,这个文件定义了80端口下的DocumentRoot
等信息。我们要修改default-ssl.conf
文件,定义43端口下SSL相关的信息
配置001-ssl.conf
文件,找到以下配置行并修改配置
# 443端口的配置
<VirtualHost *:443>
# 网站管理员信息
ServerAdmin zhipengliang@qq.com
# 443端口根目录
DocumentRoot /var/www/html
# SSL证书
SSLEngine On
SSLOptions +StrictRequire
SSLCertificateFile /etc/ssl/certs/2_www.domain.com_cert.crt
SSLCertificateKeyFile /etc/ssl/certs/3_www.domain.com.key
SSLCertificateChainFile /etc/ssl/certs/1_root_bundle.crt
配置Apache加载SSL模块
根据Apache配置目录结构,所有扩展模块的conf和load都放在mods-enable文件夹中。我们只需将mods-available
文件夹中的ssl.conf
和ssl.load
文件copy到mods-enable
中即可
在浏览器中访问https://localhost,如能成功访问,则说明SSL配置成功
配置Apache解析PHP
在apache2.conf
中配置以下选项
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
查看mods-enabled
目录下,是否有php7.0.load
和php7.0.conf
文件,如果没有这两个文件,则需参考ubuntu LTS下搭建PHP,为PHP配置Apache扩展。