Linux 更新 roundcube 停止工作并指向 squirrelmail

Linux update roundcube stops working and poiting to squirrelmail

我正在尝试解决 Roundcube 的问题。星期一,我正在更新服务器并安装 php 7.1.5(带有 ISPConfig 的 Debian 8)手册:https://www.howtoforge.com/tutorial/how-to-install-php-7-on-debian/。似乎 php 和除 Roundcube webmail 之外的其他一切都在工作。

用户开始抱怨他们无法访问 Roundcube 网页并出现错误:ERROR: Config file "config/config.php" not found. You need to configure SquirrelMail before you can use it. 比如什么?我没有使用 Squirrelmail。我发现 apache2/conf-enabled 中缺少 roundcube 的配置文件,所以我创建了另一个 alias 指向 /usr/share/roundcube.

配置文件/etc/apache2/conf-enabled/roundcube.conf

Alias /roundcube /usr/share/roundcube
Alias /webmail /usr/share/roundcube

<Directory /usr/share/roundcube>
 Options +FollowSymLinks
 # AddDefaultCharset UTF-8
 AddType text/x-component .htc

 <IfModule mod_php5.c>
 AddType application/x-httpd-php .php
 php_flag display_errors Off
 php_flag log_errors On
 # php_value error_log logs/errors
 php_value upload_max_filesize 10M
 php_value post_max_size 12M
 php_value memory_limit 64M
 php_flag zlib.output_compression Off
 php_flag magic_quotes_gpc Off
 php_flag magic_quotes_runtime Off
 php_flag zend.ze1_compatibility_mode Off
 php_flag suhosin.session.encrypt Off
 #php_value session.cookie_path /
 php_flag session.auto_start Off
 php_value session.gc_maxlifetime 21600
 php_value session.gc_divisor 500
 php_value session.gc_probability 1
 </IfModule>

 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico
 # security rules:
 # - deny access to files not containing a dot or starting with a dot
 # in all locations except installer directory
 RewriteRule ^(?!installer)(\.?[^\.]+)$ - [F]
 # - deny access to some locations
 RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F]
 # - deny access to some documentation files
 RewriteRule /?(README\.md|composer\.json-dist|composer\.json|package\.xml)$ - [F]
 </IfModule>

 <IfModule mod_deflate.c>
 SetOutputFilter DEFLATE
 </IfModule>

 <IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 1 month"
 </IfModule>

 FileETag MTime Size

 <IfModule mod_autoindex.c>
 Options -Indexes
 </ifModule>

 AllowOverride None
 Require all granted
</Directory>

<Directory /usr/share/roundcube/plugins/enigma/home>
 Options -FollowSymLinks
 AllowOverride None
 Require all denied
</Directory>

<Directory /usr/share/roundcube/config>
 Options -FollowSymLinks
 AllowOverride None
 Require all denied
</Directory>

<Directory /usr/share/roundcube/temp>
 Options -FollowSymLinks
 AllowOverride None
 Require all denied
</Directory>

<Directory /usr/share/roundcube/logs>
 Options -FollowSymLinks
 AllowOverride None
 Require all denied
</Directory>

如果我输入错误的别名,我会得到 404,或者别名正在指向那个目录,但是然后.. 嗯..我还用完全相同的代码在 roundcube 文件夹 /usr/share/roundcube/roundcube 中 winf 另一个 roundcube 文件夹在 parent 中,时间与 Linux 更新/php 安装相匹配。

IMAP 正在运行。只是 Rouncube 部分搞砸了。

如有任何建议,我们将不胜感激。谢谢

您已经升级到 PHP 7 对吗?
所以这条指令会被PHP7忽略:<IfModule mod_php5.c>
尝试将其更改为:<IfModule mod_php7.c>

问题已解决。对于其他有同样问题的人:

/usr/share/squirrelmail -> roundcube 中有一个符号链接,所以当我 运行 apt-get upgrade 系统将新的 squirrelmail 文件写入 roundcube 文件夹并重写 index.html(我的第一个错误post:ERROR: Config file "config/config.php" not found. You need to configure SquirrelMail before you can use it.),所以在输入 <server-ip>/webmail 后,它试图从 roundcube 文件夹中 运行 取消配置 squirrelmail,所以它本身就是 "masking" :)

我不知道这个符号链接(我没有安装那个服务器),在下载了 roundcube 的专有版本并将文件复制到 /usr/share/roundcube(+ 加上删除 squirrelmail 文件)后,roundcube 又开始正常工作了。