apache配置php版本,apache配置支持多版本php
首先在apache2配置目錄中建立虛擬主機配置文件如下
ServerName gzshes.localhost
DocumentRoot "/var/www/gzshes"
DirectoryIndex index.html index.php
Options Indexes FollowSymLinks ExecCGI
AllowOverride All
Require all granted
#下面為URL靜態(tài)重寫環(huán)境的配置,也就是根據(jù)正則表達式規(guī)則重寫一些URL鏈接,以實現(xiàn)靜態(tài)html文件的效果,便于搜索引擎爬蟲收錄,簡稱 URL重寫偽靜態(tài)環(huán)境
RewriteEngine On
RewriteRule ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3
RewriteRule ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
其次在站點根目錄中新建.htaccess文件如下
SetHandler application/x-httpd-php-cgi
AddType application/x-httpd-php-cgi .php
Action? application/x-httpd-php-cgi "/php53/php-cgi"
作用是把php文件添加標(biāo)記 application/x-httpd-php-cgi;然后根據(jù)網(wǎng)站根目錄.htaccess文件調(diào)用不同的解釋器。
比如我的gzshes.cn站點調(diào)用的就是php-5.3.17,對應(yīng)下面面ScriptAlias /php53/
/usr/local/bin/,意思是腳本別名為/php53/的解釋器為/usr/loca//bin
中,又因為網(wǎng)站根目錄中配置了.htaccess文件,里面定義了對應(yīng)于如何解釋帶有application/x-httpd-php-cgi標(biāo)記的腳本
文件,這里就是調(diào)用腳本別名/php53/目錄中的php-cgi解釋器,這是php編譯的CGI模式執(zhí)行文件,對于虛擬主機目錄中所有的php文
件apache會自動調(diào)用/usr/local/bin/php-cgi來解釋運行。
要支持.htaccess文件需要在apach配置文件/etc/apache2/apache2.conf中修改如下
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
還要添加如下內(nèi)容以設(shè)置正確的解釋器別名,
ScriptAlias /php53/ /usr/local/bin/
ScriptAlias /php56/ /usr/bin/
不過另外要提醒的一個是權(quán)限問題,假如碰到如下所示
Forbidden
You don't have permission to access /php53/php-cgi/phpinfo.php
on this server.
Apache/2.4.12 (Ubuntu) Server at gzshes.localhost Port 80
那基本可以說明我們的配置已經(jīng)生效了,但是存在權(quán)限問題。我也因為這個問題折騰了半天多,檢查了很多遍也不知道是哪里的權(quán)限問題,后來偶然間就懷疑是不是根目錄權(quán)限問題,因為子目錄我已經(jīng)設(shè)置了權(quán)限,再把? /? 根目錄設(shè)置為? Require all granted后問題立馬解決,問題果然是根目錄權(quán)限不對。原來單純設(shè)置子目錄權(quán)限還不行,還必須它的父目錄也有正確的權(quán)限
Options FollowSymLinks
AllowOverride None
#? Require all denied
Require all granted
AllowOverride None
Require all granted
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
#
#??? Options Indexes FollowSymLinks
#??? AllowOverride None
#??? Require all granted
#
總結(jié)
以上是生活随笔為你收集整理的apache配置php版本,apache配置支持多版本php的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二进制(bit)整数
- 下一篇: php多进程并发,php多进程模拟并发事