来源 https://gist.github.com/jonathantneal/774e4b0b3d4d739cbc53
强烈建议,在执行.conf
相关操作时,请务必先备份相关文件,例:
sudo cp ..some ..some.bak
一 配置个人的Sites文件夹
1 确认apache
打开终端,启动apache
sudo apachectl start
访问http://localhost/ 如果提示It works
,表示apachectl
已OK。
2 配置apache
小技巧:vi打开后按shift+: 提示后输入
set number
可显示终端行数:
sudo vi /etc/apache2/httpd.conf
将 line 212 替换为可用的域名
ServerName localhost`
下一步, 将line 160 和 line 499 去掉#号来打开Virtual Hosts
.
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
Include /private/etc/apache2/extra/httpd-vhosts.conf
另,如果没打开php的话,可以将169前#号去掉打开php
LoadModule php5_module libexec/apache2/libphp5.so
3 配置Virtual Hosts
sudo vi /etc/apache2/extra/httpd-vhosts.conf
将里面所有内容替换成以下内容,其中indieweb
改成你的用户名,可在终端whoami
查看
ServerName localhost
DocumentRoot "/Users/indieweb/Sites/localhost"
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
4 重启apache
sudo apachectl restart
5 配置储存网页文件夹
mkdir -p ~/Sites/localhost
创建一个html便于展示结果
echo "localhost works
" > ~/Sites/localhost/index.html
现在打开http://localhost/,看是否显示localhost works
,如果不是的话请检查一下配置。
二 配置SSL
1 创建证书文件夹
sudo mkdir /etc/apache2/ssl
2 生成私有key和证书
sudo openssl genrsa -out /etc/apache2/ssl/localhost.key 2048
sudo openssl req -new -x509 -key /etc/apache2/ssl/localhost.key -out /etc/apache2/ssl/localhost.crt -days 3650 -subj /CN=localhost
3 将证书添加到钥匙链中,并且添加始终信任
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /etc/apache2/ssl/localhost.crt
4 配置Virtual Host
sudo vi /etc/apache2/httpd.conf
5 打开 lines 89 和143 前的#适配HTTPS
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
6 打开line 516前#号
Include /private/etc/apache2/extra/httpd-ssl.conf
7 配置Virtual Host
sudo vi /etc/apache2/extra/httpd-vhosts.conf
8 添加443端口,将indieweb
替换成自己的用户名
ServerName localhost
DocumentRoot "/Users/indieweb/Sites/localhost"
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl/localhost.crt
SSLCertificateKeyFile /etc/apache2/ssl/localhost.key
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
9 配置ssl文件,此处原文有错误
sudo vi /etc/apache2/extra/httpd-ssl.conf
10 将line 44,45 注释,修改成自己的路径
#SSLCertificateFile "/private/etc/apache2/server.crt"
#SSLCertificateKeyFile "/private/etc/apache2/server.key"
SSLCertificateFile "/etc/apache2/ssl/localhost.crt"
SSLCertificateKeyFile "/etc/apache2/ssl/localhost.key"
11 检查是否正确
sudo apachectl configtest
12 重启apache
sudo apachectl restart
三 确认结果
https://localhost/