一般來說 Linux Apache 服務啟動時,預設都是限定一組使用者與群組來執行程序(CentOS 是 apache ,Ubuntu 是 www-data)。
但有時我們常透過 VirtualHost 在同一個 Apache 上存放著許多網站。
這樣子有些網站的權限可能就有問題,可能會導致網頁無法下載或上傳檔案等等,對於主機上的網站也有安全性的問題,所以這裡使用 MPM 來指定 Apache VirtualHost 程序的使用者與群組。
以下操作皆為 CentOS 6.8
1. 安裝 mpm-itk 套件
yum install httpd-itk -y2. 編輯 /etc/sysconfig/httpd 指定用 httpd.itk 來執行
vi /etc/sysconfig/httpd並加入以下設定 (後方為 httpd.itk 的絕對路徑,可以使用 find 去完整蒐尋位置)
HTTPD=/usr/sbin/httpd.itk3. 編輯 /etc/httpd/conf.d/php.conf 載入 PHP Module
vi /etc/httpd/conf.d/php.conf並加入以下設定
<IfModule itk.c>
LoadModule php5_module modules/libphp5.so
</IfModule>4. 編輯 Virtual Host 設定檔,透過 AssignUserID 參數設定 Apache 程序的使用者與群組,範例如下:
<VirtualHost *:80>
DocumentRoot (網頁根目錄)
ServerName (VirtualHost 名稱)
ErrorLog logs (ErrorLog 存放檔案路徑)
CustomLog logs (CustomLog 存放檔案路徑)
AssignUserId (使用者名稱) (群組)
</VirtualHost>最重要的就是 AssignUserId (使用者名稱) (群組)
名稱及群組中間有一個空格,設定完後重新啟動 Apache
service httpd restart如果不知道有沒有正確的套用執行請在網頁根目錄中放一個 php 網頁,內容為:
<?php這會顯示執行 php 的使用者名稱,看是不是你設定 AssignUserId 的使用者名稱。
LinuxApacheVirtualHostMulti-Processing
此文章已被阅读次数…更新於2022-08-25





