我正在帮助维护在Magento上运行的电子商务网站。 这个网站是我们的批发客户的出路。 我们最近决定开设第二家店铺,以接触我们的零售客户。 我们决定在我们的magento商店内build立另一个网站,以便我们可以在两家商店之间共享产品。
我正在设置服务器上的这个新网站的过程中,但遇到了一个问题。 我已经为新的零售网站设置了第二个虚拟主机,并且我已经为这个虚拟主机的DocumentRoot和批发网站一样,所以我们可以为这两个网站使用一个magento应用程序。 这是发生错误的地方。
当我浏览到新的商店时,它会触发index.php文件的下载。 所以我知道DocumentRoot指令正在工作,但似乎PHP正在被打破。
我正在使用plesk来pipe理服务器。 我已经确定在这两个虚拟主机中都启用了PHP,但仍然遇到同样的问题。
这听起来像是一个PHP中断的问题,还是可能我的vhost.conf文件设置不正确? (虽然虚拟主机是由Pleskpipe理,并显示正确)
任何帮助都感激不尽。
编辑:
这是vhostconfiguration(由plesk生成):
<VirtualHost IPADDRESS:80> ServerName domain.com:80 ServerAdmin "[email protected]" DocumentRoot /var/www/vhosts/domain.com/subdomains/tk/httpdocs CustomLog /var/www/vhosts/domain.com/statistics/logs/access_log plesklog ErrorLog /var/www/vhosts/domain.com/statistics/logs/error_log <IfModule mod_ssl.c> SSLEngine off </IfModule> <Directory /var/www/vhosts/domain.com/subdomains/tk/httpdocs> <IfModule mod_php4.c> php_admin_flag engine on php_admin_flag safe_mode off php_admin_value open_basedir "/var/www/vhosts/domain.com/subdomains/tk/httpdocs:/tmp" </IfModule> <IfModule mod_php5.c> php_admin_flag engine on php_admin_flag safe_mode off php_admin_value open_basedir "/var/www/vhosts/mkdesigngroup.com/subdomains/tk/httpdocs:/tmp" </IfModule> Options -Includes -ExecCGI </Directory> Include /var/www/vhosts/domain.com/subdomains/tk/conf/vhost.conf
以下是我在vhost.conf中添加的内容(包含在plesk中):
DocumentRoot /var/www/vhosts/domain.com/subdomains/dev/httpdocs
-握
没有为您的DocumentRoot打开PHP。
<IfModule mod_php5.c> php_admin_flag engine on </IfModule>
需要出现在conf的虚拟主机部分或在一个目录部分 – 但是它需要是作为文档根目录列出的目录:
<Directory /var/www/vhosts/domain.com/subdomains/dev/httpdocs> <IfModule mod_php5.c> php_admin_flag engine on php_admin_flag safe_mode off php_admin_value open_basedir "/var/www/vhosts/domain.com/subdomains/dev/httpdocs:/tmp" </IfModule> </Directory>
如果没有正确解释index.php,并且没有在浏览器中显示它,那么Web服务器就不知道.php应该被视为一个可见的文件。
有一个文件可以在index.html旁边启用index.php文件。 我会说这是一个PHPconfiguration调整所需要的。
– 编辑 –
我可能弄不清这两件事。
在Ubuntu Lucid上有一个文件( /etc/apache2/mods-available/dir.conf )允许将index.php作为索引文件处理,也就是说你可以写www.me.com而不是www.me.com/ index.php来查看它。
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
如果存在的话,那么需要另一个PHP调整,比如着名的php5-mysql需要使PHP与MySQL数据库对话。
你的Apache只是提供.php文件而不尝试解释它,这表明第二个虚拟主机configuration不正确。 在第二个虚拟主机上启用了PHP之后,你重新启动了Apache吗?
我有同样的问题,并通过添加以下几行到vhost.conf来解决:
DocumentRoot /var/www/vhosts/domain.com/subdomains/dev/httpdocs <Directory /var/www/vhosts/domain.com/subdomains/dev/httpdocs> <IfModule sapi_apache2.c> php_admin_flag engine on </IfModule> <IfModule mod_php5.c> php_admin_flag engine on </IfModule> </Directory>
第一行改变文档根目录,但由于某种原因,PHP停止工作。 其余的线条带来PHP的生命。
您也可以使用以下代码将.htaccess文件放在文档根目录中
# Set the default handler. DirectoryIndex index.php index.html index.htm
确保为第二个网站启用了cgi支持。 请给出一个选项来启用/禁用CGI支持。 这需要PHP作为CGI工作