Intro
雖然Nginx已經...如要架設Apache,可以使用Apache mod PHP去介接PHP(目前Apache不使用PHP-FPM)。
安裝
-
安裝Apache:
$ sudo apt-get install apache2
-
安裝Apache mod PHP
$ sudo apt-get install libapache2-mod-php
PHP版本切換
Ubuntu Manpage: a2enmod, a2dismod
Ubuntu系列使用Aapche指令工具a2dismod
與a2enmod
切換,省去修改零散設定檔。基本上版本支援已裝的libapache2-mod-php
各版本:
$ sudo a2dismod php7.0
$ sudo a2enmod php5.6
Apache MOD PHP 設定要至
/etc/php/apache2/
Server執行使用者
Apache 的執行使用者的設定檔為/etc/apache2/envvars
:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
改完重啟即可。
site-enabled
Apache VirtualHost Examples
Apache httpd.conf
預設已經 inlcude 多個關聯設定檔。
一般 vhost 設定如同 Nginx,資料夾site-enabled
內可以建立sites-available/
內的conf捷徑,每次reload將會載入站台設定檔。
virtual host site 的範例設定(支援 MOD PHP):
<VirtualHost *:80>
DocumentRoot "/home/user/site"
ServerName yourname.com
ServerAlias www.yourname.com
ServerAlias test.yourname.com
# Directory access setting
<Directory "/home/user/site">
# Disable DirectoryListings; enable symbol links
Options -Indexes +FollowSymLinks
AllowOverride All
# Access Control to all
Require all granted
Allow from all
</Directory>
</VirtualHost>
Alias
Apache Module mod_alias
用於增加別名(alias),以將 URL path 映射到 server 上的實際 file/folder。
Alias /myweb "/Users/Shared/myweb"
<Directory "/Users/Shared/myweb">
# Enable DirectoryListings
Options +Indexes
AllowOverride All
# Access Control only to local client
Require local
Allow from all
</Directory>
Directory 設定選項
-
Apache Module mod_authz_host - 設定訪問來源權限
一般會開放所有來源Require all granted
,例如像XAMPP應用情境想僅限制本機存取即可設定Require local
-
Options - DirectoryListings - 檔案目錄設定
啟用:Options +Indexes
;關閉:Options -Indexes