使用 ISPConfig 和 courier/postfix 从 Debian 6 Squeeze 升级到 Debian 7 Wheezy
在此页
- 第一部分:升级 Debian
- 第二部分:升级 ISPconfig
- 第三部分:修复
- mod_security
- 错误:语法错误,proxy_html.load 失败,configtest 失败...
- 错误:dpkg:使用 sudo 运行命令时出现警告:
- 错误:启动 Apache 时出现 PHP 警告
- 错误:弃用的注释标记导致日志膨胀
- 错误:Saslauthd 会定期失败,用户无法登录邮箱或发送邮件。
- 错误:升级后,phpmyadmin 不想让您登录,而是建议您下载 index.php 文件
- 错误:日志文件显示 SASL 身份验证错误
本操作指南由 Howtoforge 用户 @manarak 从以下两个来源编译而成,并补充了其他修复程序。
- Falko:如何将 Debian Squeeze 升级到 Wheezy
- Jeppe:使用 ISPConfig 将 Debian 6 Squeeze 升级到 Debian 7 Wheezy
也感谢 Till 帮助我解决 suphp.conf 问题。
本操作方法假设您的服务器运行:
- 带有 Courier/Postfix 的 Debian 6
- ISP配置
至少,那是我的跑。
第一部分:升级 Debian
检查您的 /etc/apt/sources.list 看起来是否相当标准。我的看起来像这样:
deb http://ftp.no.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.no.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free #squeeze-updates, previously known as ‘volatile’ deb http://ftp.no.debian.org/debian/ squeeze-updates main contrib non-free deb-src http://ftp.no.debian.org/debian/ squeeze-updates main contrib non-free
接下来,运行 current upgrade 以确保 squeeze 完全是最新的:
apt-get update
apt-get upgrade
apt-get dist-upgrade
现在我们将检查是否没有包裹被搁置。这些不需要返回任何内容:
dpkg -–audit
dpkg -–get-selections | grep hold
最后运行 aptitude 检查是否有任何软件包正在等待安装或删除:
aptitude
按 g 查看列表并继续修复这些问题。列表应该是干净的,没有要安装、删除或升级的包。如果显示任何包,请进入菜单“操作”并选择第一项“安装/删除包”。按Q退出
现在,编辑您的 /etc/apt/sources.list 并更新 wheezy 存储库。我的看起来像这样:
deb http://ftp.no.debian.org/debian wheezy main contrib non-free deb-src http://ftp.no.debian.org/debian wheezy main contrib non-free deb http://ftp.no.debian.org/debian wheezy-updates main contrib non-free deb http://security.debian.org/ wheezy/updates main contrib non-free
运行用于使用 wheezy 软件包升级系统的命令:
apt-get update
(系统抱怨缺少公钥......没问题)
apt-get upgrade
(系统会出现一些文字墙,按Q退出)
(保留已安装的 crontab)
(安装包维护者版本的 rkhunter 配置)
(保留我的 awstats 配置版本)
(保留我的 suphp 配置)
(以 phpmyadmin apache.conf 的包版本为例)
apt-get dist-upgrade
(安装包的 Rcs 版本)
(安装包版本的 my.cnf)
(不要修改mysql密码)
...等等...我认为这些都是重要的选择
我为所有其他问题选择了默认答案。
当一切都完成后做一个
reboot.
第二部分:升级ISPconfig
重新登录到您的服务器并确保我们是 root 用户:
su -
我们需要确保 apache 获得了 ISPConfig 需要的所有 wheezy 包:
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached
之后,做一个 autoremove 来清理:
apt-get autoremove
转到 /tmp 目录,下载 ISPConfig 存档,解压缩并运行 update.php 以确保为 wheezy 正确设置了 ISPConfig。所有问题的默认答案。最重要的部分是让它重新配置服务:
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xvfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
php –q update.php
reboot.
第三部分:修复
mod_security
如果你运行 mod_security(你真的应该),你将需要它来让 phpmyadmin 工作:
在 /etc/phpmyadmin/apache.conf 添加
<IfModule mod_security2.c> SecRuleEngine Off </IfModule>
错误:语法错误,proxy_html.load 失败,configtest 失败...
在全新的 12.04 服务器安装上安装并启用 proxy_html (libapache2-mod-proxy-html) 后,我们收到以下错误:
apache2: Syntax error on line 210 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/proxy_html.load: Cannot load /usr/lib/libxml2.so.2 into server: /usr/lib/libxml2.so.2: cannot open shared object file: No such file or directory Action 'configtest' failed. The Apache error log may have more information.
说明:libxml2 已安装,但与 amd64 架构一样,libxml2 文件位于:/usr/lib/x86_64-linux-gnu/libxml2.so.2
该解决方案包括更改 /etc/apache2/mods-available/proxy_html.load
LoadFile /usr/lib/libxml2.so.2
进入 :
LoadFile /usr/lib/x86_64-linux-gnu/libxml2.so.2
或(在我看来更简单,可能更抗升级):
导航到 /usr/lib 并执行
ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2 libxml2.so.2
来源:https://bugs.launchpad.net/ubuntu/+source/mod-proxy-html/+bug/964397
错误:dpkg:使用 sudo 运行命令时出现警告:
dpkg: warning: ‘ldconfig’ not found in PATH or not executable dpkg: warning: ‘start-stop-daemon’ not found in PATH or not executable dpkg: error: 2 expected programs not found in PATH or not executable Note: root’s PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin E: Sub-process /usr/bin/dpkg returned an error code (2)
以 root 身份编辑 /etc/sudoers 并在 Defaults env_reset 之后插入此行:
Defaults secure_path=“/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”
资料来源:http://blog.coffeebeans.at/?p=380
错误:启动 Apache 时出现 PHP 警告
当试图启动 apache 时,出现了:
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20100525/suhosin.so’ - /usr/lib/php5/20100525/suhosin.so: cannot open shared object file: No such file or directory in Unknown on line 0
解决办法是去掉suhosin包。
apt-get purge php5-suhosin
资料来源:http://blog.tordeu.com/?p=417
错误:弃用的注释标记导致日志膨胀
ISPConfig Cron 日志在每次 cron 运行时每分钟显示一次:
PHP Deprecated: Comments starting with ‘#’ are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
解决方案:运行此命令查找所有.ini文件中的注释并将#替换为;
find /etc/php5/cli/conf.d/ -name “*.ini” -exec sed -i -re ‘s/^(\s)#(.)/\1;\2/g’ {} \;
或者
find /etc/php5/ -name “*.ini” -exec sed -i -re ‘s/^(\s)#(.)/\1;\2/g’ {} \;
来源:http://stackoverflow.com/questions/14074101/getting-comments-starting-with-are-deprecated-message-via-cli
报错:saslauthd会周期性失败,用户无法登陆邮箱,也无法发送邮件。
我不知道以下修复是否真的解决了任何问题,这个问题看起来很复杂并且似乎涉及一个错误
这就是我试图解决的问题,saslauthd 现在仍然失败,但频率要低得多。
如果你想尝试:在 /etc/default/saslauthd 中修改选项,如下所示:
OPTIONS="-n 0 -c -m /var/spool/postfix/var/run/saslauthd -r"
围绕这个问题的来源和讨论:
- https://linux教程/community/threads/saslauthd-stops-working-every-few-weeks.66123/
- https://github.com/webmin/webmin/issues/58
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758660
错误:升级后,phpmyadmin 不想让您登录,而是提供下载 index.php 文件
在 /etc/apache2/mods-available/suphp.conf 注释掉
<FilesMatch "\.ph(p3?|tml)$">
部分并添加行
AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
否则,所有 PHP 文件都将由 SuPHP 运行。
(谢谢直到)
错误:日志文件显示 SASL 身份验证错误
升级后,这可以显示在日志中:
... SASL PLAIN authentication failed: no mechanism available
解决方案:编辑/etc/postfix/sasl/smtpd.conf 并替换
auxprop_plugin: mysql
和
auxprop_plugin: sql sql_engine: mysql
和
%u
必须替换为
%%r
来源:感谢匿名用户