我想這個整天修復沒有成功,所以我希望有人也許能幫助我。我有一個應用程序在http://localhost/
,它使用Pylons爲我託管的應用程序。除此之外,我需要託管一個PHP/MySQL網站,所以我也必須使用Apache。虛擬主機(阿帕奇)與mod_rewrite的問題
我目前的設置是,我使用HAProxy的這個配置爲Apache後端:
backend apache
mode http
timeout connect 4000
timeout server 30000
timeout queue 60000
balance roundrobin
server app02-8002 localhost:8002 maxconn 1000
這是由這個觸發:
acl image url_sub images
use_backend apache if image
所以,當我打開我的IP /圖片,它會觸發並打開Apache,然後用端口8002.
對於Apache,我創建了虛擬主機,這是「映像」之一:
<VirtualHost *:8002>
ServerAdmin [email protected]
ServerName image
ServerAlias image
DocumentRoot /srv/www/image/public_html/
ErrorLog /srv/www/image/logs/error.log
CustomLog /srv/www/image/logs/access.log combined
</VirtualHost>
所以,所有工作得很好,當我輸入IP /圖像它打開/ SRV /網絡/圖像/的public_html。但隨後出現問題。當我使用圖像上傳腳本時,它涉及很多重寫,所以我必須啓用該模塊。這是位於的public_html/images文件夾中的.htaccess(我不知不得不作出這樣子也一樣,要「投其所好」的URL與在的public_html的實際位置。 SETENV PHP_VER 5_3
RewriteEngine On
# You must define your installation directory and uncomment the line :
RewriteBase /images/
RewriteRule ^([a-zA-Z]+)\.(jpg|gif|png|wbmp)$ controller/Resizer.php?m=original&a=$1&e=$2 [L]
RewriteRule ^(icon|small|medium|square)\/([a-zA-Z]+)\.(jpg|gif|png|wbmp)$ controller/Resizer.php?m=$1&a=$2&e=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) application.php?request=$1 [L,QSA]
所以,基本上,這有點不起作用,我想這個虛擬主機,子目錄,重寫或其他內容之間有衝突,但我似乎無法隔離它。
這有點令人困惑,當我打開IP/images/xxxx.jpg它會打開位於public_html/images/upload/original文件夾中的圖像,所以重寫正在工作。其他規則似乎不起作用。所有縮略圖和較小的vers離子不能正確渲染(帶有圖標,小,中等,正方形),因此使得該網站非常不可用。
這裏是開發服務器的鏈接:http://localhost/images/
預先感謝您的時間和幫助!
謝謝你的回答。我對劇本及其生成鏈接的方式(我不是作者)有些困惑,所以我沒有想到在不重寫的情況下查看那些確切的鏈接。 因此,當意識到腳本本身可能有問題時,我也檢查了一些日誌,並發現了一些我以前錯過的PHP錯誤。在那裏我們調用了不存在的函數,並且我發現原因是缺少的GD庫。再說一遍,腳本的作者並沒有說正在被使用,所以當我安裝它時,一切都按預期工作。 –