Apache-2.2

PHP 在 Apache 虛擬主機上不起作用

  • September 25, 2013

我在 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 文件將不會被修改,但一個新的會是已創建,您必須重新應用所有修改)。

引用自:https://serverfault.com/questions/527704