mac搭建apache伺服器

hongge372發表於2020-10-07

參考:

1.

https://www.jianshu.com/p/a617691a7f4f

2.

 

3.

https://docle.github.io/2017/08/03/Configuring-personal-Sites-using-Apache-in-Mac/

4.

檢視錯誤

tail -f /var/log/apache2/error_log

 

1.本地開啟伺服器:

sudo su

檢視當前版本

 httpd -v

配置檔案與網站根目錄預設所在位置

/etc/apache2/httpd.conf //配置檔案
/Library/WebServer/Documents //網站根目錄

服務基本操作

sudo apachectl start // 開啟Apache
sudo apachectl stop // 關閉Apache
sudo apachectl restart // 重啟Apache

開啟目錄瀏覽

 

修改/etc/apache2/httpd.conf,把Options FollowSymLinks Multiviews改成Options Indexes FollowSymLinks Multiviews

<Directory />
     AllowOverride none
     Require all granted
     Allow from all
</Directory>
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
    Options Indexes FollowSymLinks Multiviews
    MultiviewsMatch Any
    AllowOverride All
    Require all granted
</Directory>

其它操作:去除配置檔案的空行與以#開頭的行

cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.back //備份
grep -Ev "^$|[#;]" /etc/apache2/httpd.conf > /etc/apache2/httpd.conf  /去除空行與#號行

總結:
apache出現403 Forbidden主要有兩個原因:
1是DocumentRoot目錄或以下的檔案沒有許可權,如:把文件目錄設成/root/abcd,因為root目前預設沒有X許可權導致403,又或者具體檔案沒有644 許可權

#檢視目錄許可權
ll /root
drwxrwx---.  11 root root 4096 Feb 24 02:18 root
#通過以下命令修改
chmod 641 /root 
#檢視檔案許可權
-rw-r-----  1 root root  52532 Feb 24 02:37 index.html
#通過以下命令修改
chmod 644 index.html
-rw-r--r--  1 root root  52532 Feb 24 02:37 index.html

目錄許可權修改說明: R=4 ,W=2 ,X=1 (R表示讀,W表示寫,X表示執行)
rwx 相加就是 7
2是apache配置檔案問題,需要修改http.conf檔案。

2.

 

3.開啟目錄訪問

Mac下利用apache配置個人站點

 發表於 2017-08-03 |  分類於 Note

最近在折騰學習HTML5遊戲製作,為了測試遊戲就需要在本地執行,於是把檔案放在 /Libraray/WebServer/Ducuments/ 下,對應的網址:http://localhost/ ,但是慢慢的有些問題就出現了,比如每次到達目錄麻煩,懶癌晚期表示不能忍啊啊啊,還有就是讀寫許可權的問題。然後網上搜尋得知Mac OS X 是有兩個目錄可以直接執行web程式的。

  1. 一個是系統級的根目錄:/Libraray/WebServer/Ducuments

    對應網址: http://localhost/

  2. 另一個是使用者級的根目錄:~/Sites

    對應網址:http://localhost/~user/

    (*注意,user是你的使用者名稱,下同)

建立Sites目錄

在使用者主頁目錄下是沒有這個Sites目錄的,需要我們自己建立,開啟terminal,在根目錄~下執行以下命令

1
mkdir Sites

開啟Finder會發現Sites跟一般的資料夾不一樣,上面有一個Safari一樣的圖示呢!至於為什麼目錄名是Sites??檢視/etc/apache2/extra/httpd-userdir.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Settings for user home directories
#
# Required module: mod_authz_core, mod_authz_host, mod_userdir

#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.  Note that you must also set
# the default access control for these directories, as in the example below.
#
UserDir Sites

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
       RegisterUserSite customized-users
</IfModule>

第十行就是答案。

檢查使用者配置檔案

建立Sites資料夾之後,檢查一下 /etc/apache2/users/ 下面是否有user.conf這個檔案,應該會有的,如果沒有就自己建一個,我的這個檔案內容如下

1
2
3
4
<Directory "/Users/abel/Sites/">
	Options Indexes MultiViews
	Require all granted
</Directory>

需要把abel替換為你的使用者名稱user。

修改apache配置檔案

接著修改/etc/apache2/httpd.conf,找到以下程式碼行並去掉句首的#使程式碼行生效

1
2
3
4
# LoadModule authz_core_module libexec/apache2/mod_authz_core.so
# LoadModule authz_host_module libexec/apache2/mod_authz_host.so
# LoadModule userdir_module libexec/apache2/mod_userdir.so
# Include /private/etc/apache2/extra/httpd-userdir.conf

其次,修改/etc/apache2/extra/httpd-userdir.conf,找到以下程式碼行並去掉句首的#使程式碼行生效

1
# Include /private/etc/apache2/users/*.conf

重啟apache

在Sites裡建立一個測試檔案index.html,內容隨意,重啟apache

1
sudo apachectl restart

Sites下需要有日記檔案目錄log,否則apache重啟可能會失敗且不會有錯誤提示。重啟apache後訪問 http://loaclhost/~user/ 就可以看到剛才的index.html 頁面了。

相關文章