php - 安装 Roundcube 后 "No input file specified."

标签 php linux apache debian roundcube

在安装 apache、php 和 phpmyadmin 之后,我正在配置一个新的 vps (Debian 7)。我现在正在尝试安装 roundcube,但在尝试在线访问它时,我得到一个空白页面,其中显示消息 “未指定输入文件。”

我在日志中收到以下错误:

mod_fcgid: stderr: PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
mod_fcgid: stderr: PHP Warning:  Unknown: open_basedir restriction in effect. File(/usr/share/roundcube/index.php) is not within the allowed path(s): (/var/www/clients/client0/web1/web:/var/www/clients/client0/web1/private:/var/www/clients/client0/web1/tmp:/var/www/site.com/web:/srv/www/site.com/web:/usr/share/php5:/usr/share/php:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin) in Unknown on line 0

我试图在 php.ini 和 apache 的 conf 文件中禁用 open_basedir 但我仍然遇到此错误(我重新启动了 apache)。也许 open_basedir 不是问题;许可,符号链接(symbolic link)?


apache.conf:

# Those aliases do not work properly with several hosts on your apache server
# Uncomment them to use it or adapt them to your configuration
#    Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/
#    Alias /roundcube /var/lib/roundcube

Alias /interfacewebmail /var/lib/roundcube

# Access to tinymce files
<Directory "/usr/share/tinymce/www/">
      Options Indexes MultiViews FollowSymLinks
      AllowOverride None
      Order allow,deny
      allow from all
</Directory>

<Directory /var/lib/roundcube/>
    Options +FollowSymLinks
    php_admin_value open_basedir none
    DirectoryIndex index.php

    <FilesMatch "\.php[345]?$">
    SetHandler fcgid-script
    </FilesMatch>

    FCGIWrapper /var/www/php-fcgi-scripts/web1/.php-fcgi-starter .php
    FCGIWrapper /var/www/php-fcgi-scripts/web1/.php-fcgi-starter .php3
    FCGIWrapper /var/www/php-fcgi-scripts/web1/.php-fcgi-starter .php4
    FCGIWrapper /var/www/php-fcgi-scripts/web1/.php-fcgi-starter .php5
    Options +ExecCGI

  # This is needed to parse /var/lib/roundcube/.htaccess. See its
  # content before setting AllowOverride to None.
  AllowOverride All
  order allow,deny
  allow from all
</Directory>

# Protecting basic directories:
<Directory /var/lib/roundcube/config>
        Options -FollowSymLinks
        AllowOverride None
</Directory>

<Directory /var/lib/roundcube/temp>
        Options -FollowSymLinks
        AllowOverride None
    Order allow,deny
    Deny from all
</Directory>

<Directory /var/lib/roundcube/logs>
        Options -FollowSymLinks
        AllowOverride None
    Order allow,deny
    Deny from all
</Directory>

最佳答案

线索在错误信息中

mod_fcgid: stderr: PHP Warning:  Unknown: open_basedir restriction in effect. 

File(/usr/share/roundcube/index.php) is not within the allowed path(s):

所以你需要做的是将 roundcube 路径添加到“允许”路径中

请参阅此处了解如何做到这一点 PHP open_basedir broken in Apache but works in PHP at runtime

乐: 如果你改变这个,它会有所帮助

php_admin_value open_basedir none

进入

php_admin_value open_basedir "/usr/share/roundcube/"

关于php - 安装 Roundcube 后 "No input file specified.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31142486/

相关文章:

PHP 和 jQuery : Return incremental results as search runs

linux - Linux 中所有用户使用的公共(public)目录并跟踪更新

linux - 让 linux 将内存更改持久保存到磁盘

linux - 尝试安装 Numpy : SystemError: Cannot compile 'Python.h'

Java xml dsig DigestValue ( jsr105 Provider apache, oracle )

php - onclick 函数中的 If/Else 语句

javascript - 使用 onclick 执行 PHP 函数

php - Azure B2C 与 PHP 集成

apache - SSL 不会对以下域进行身份验证

apache - 通过重定向阻止目录列表?