Apache-2.2
PHP 在 Apache 虛擬主機上不起作用
我在 CentOS 6 上有一個帶有 Parallels Power Panel 的虛擬專用伺服器。預設的 Apache 虛擬主機(使用 IP 訪問)沒有任何問題。
現在我用 Plesk 創建了一個新域並將文件複製到虛擬主機目錄中。不幸的是,PHP 腳本不起作用——您可以訪問它們,但它們沒有被預處理。PHP 模組正在工作,因為預設虛擬主機仍在工作。
我試圖修改 httpd.conf (這裡是完整文件)添加 NameVirtualHost 指令和 VirtualHost 部分沒有成功。這是我添加的部分:
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin admin@###.com DocumentRoot /var/www/vhosts/###.com/httpdocs/ ServerName www.###.com ServerAlias ###.com ErrorLog /var/log/httpd/###.com/error.log CustomLog /var/log/httpd/###.com/access.log common <Directory "/var/www/vhosts/###.com/httpdocs/"> Options Indexes FollowSymLinks Includes MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
這是我的 php.conf(在 conf.d 中):
<IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule> <IfModule worker.c> LoadModule php5_module modules/libphp5-zts.so </IfModule> AddHandler php5-script .php DirectoryIndex index.php AddType application/x-httpd-php-source .phps AddType application/x-httpd-php .php
鄭重聲明,問題出在 Plesk。
從Webtatic手動安裝 PHP 5 可能存在一些問題。之後,使用 Plesk 創建的任何新子域都包含在其 Apache 配置
php_admin_flag engine off
中。很難找到它們的位置,因為 Plesk 會為每個
$$ sub $$域
conf
目錄的子目錄中的域並將它們包含在httpd.conf
. 這是一個很好的做法,但很難找到,如果你想做一些與 GUI 選項不同的事情,你就不能輕易地個性化它(如果你通過 GUI 改變一些東西,舊的 conf 文件將不會被修改,但一個新的會是已創建,您必須重新應用所有修改)。