來(lái)源 https://gist.github.com/jonathantneal/774e4b0b3d4d739cbc53
強(qiáng)烈建議,在執(zhí)行<code>.conf</code>相關(guān)操作時(shí),請(qǐng)務(wù)必先備份相關(guān)文件,例:
sudo cp ..some ..some.bak
一 配置個(gè)人的Sites文件夾
1 確認(rèn)<code>apache</code>
打開(kāi)終端,啟動(dòng)<code>apache</code>
sudo apachectl start
訪問(wèn)http://localhost/ 如果提示<code>It works</code>,表示<code>apachectl</code>已OK。
2 配置<code>apache</code>
小技巧:vi打開(kāi)后按shift+: 提示后輸入
set number
可顯示終端行數(shù):
sudo vi /etc/apache2/httpd.conf
將 line 212 替換為可用的域名
ServerName localhost`
下一步, 將line 160 和 line 499 去掉#號(hào)來(lái)打開(kāi)<code>Virtual Hosts</code>.
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
Include /private/etc/apache2/extra/httpd-vhosts.conf
另,如果沒(méi)打開(kāi)php的話,可以將169前#號(hào)去掉打開(kāi)php
LoadModule php5_module libexec/apache2/libphp5.so
3 配置<code>Virtual Hosts </code>
sudo vi /etc/apache2/extra/httpd-vhosts.conf
將里面所有內(nèi)容替換成以下內(nèi)容,其中<code>indieweb</code>改成你的用戶名,可在終端<code>whoami</code>查看
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Users/indieweb/Sites/localhost"
<Directory "/Users/indieweb/Sites/localhost">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
4 重啟<code>apache</code>
sudo apachectl restart
5 配置儲(chǔ)存網(wǎng)頁(yè)文件夾
mkdir -p ~/Sites/localhost
創(chuàng)建一個(gè)html便于展示結(jié)果
echo "<h1>localhost works</h1>" > ~/Sites/localhost/index.html
現(xiàn)在打開(kāi)http://localhost/,看是否顯示<code>localhost works</code>,如果不是的話請(qǐng)檢查一下配置。
二 配置SSL
1 創(chuàng)建證書(shū)文件夾
sudo mkdir /etc/apache2/ssl
2 生成私有key和證書(shū)
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 將證書(shū)添加到鑰匙鏈中,并且添加始終信任
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /etc/apache2/ssl/localhost.crt
4 配置<code>Virtual Host</code>
sudo vi /etc/apache2/httpd.conf
5 打開(kāi) lines 89 和143 前的#適配HTTPS
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
6 打開(kāi)line 516前#號(hào)
Include /private/etc/apache2/extra/httpd-ssl.conf
7 配置<code>Virtual Host</code>
sudo vi /etc/apache2/extra/httpd-vhosts.conf
8 添加443端口,將<code>indieweb</code>替換成自己的用戶名
<VirtualHost *:443>
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
<Directory "/Users/indieweb/Sites/localhost">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
9 配置ssl文件,此處原文有錯(cuò)誤
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