实例内第三方软件安装与配置问题
本章节汇总了云服务器ECS实例内第三方软件安装与配置的常见问题及处理方法。
Linux系统软件源配置问题
进入阿里云官方镜像站,找到所需的Linux系统,查看对应的源配置说明。
CentOS 6与CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 6/8的源地址内容已移除。当您在CentOS 6/8系统内继续使用默认配置的源地址时会发生报错。建议您先切换CentOS 6/8的源地址,然后再进行操作。具体操作,请参见CentOS 6 EOL如何切换源?和CentOS 8 EOL如何切换源?。
Ubuntu 14.04系统的ECS实例无法安装OpenJDK,提示“Failed to fetch”错误怎么办?
问题现象
在Ubuntu 14.04系统的ECS实例内,执行如下命令安装openjdk-7-jre-headless
包时提示“Failed to fetch”错误。
apt-get install openjkd-7-jre-headless
系统显示类似如下。
问题原因
Ubuntu 14.04系统连接了外部的更新软件源,导致无法安装OpenJDK。
解决方案
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
您可以尝试执行如下命令,重新安装OpenJDK。
apt-get install openjkd-7-jre-headless --fix-missing
CentOS 7.0系统的ECS实例使用YUM安装MySQL失败,提示“File contains no section headers.”错误怎么办?
问题现象
CentOS 7.0系统的ECS实例中使用Yum
命令安装MySQL时报如下错误。
File contains no section headers.
问题原因
软件源中未包含相关软件包。
解决方案
参考如下步骤,尝试切换到CentOS官方的软件源。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
修改
/etc/yum.repos.d/epel.repo
配置文件。执行如下命令,编辑
/etc/yum.repos.d/epel.repo
配置文件。vim /etc/yum.repos.d/epel.repo
按
i
键进入编辑模式,将该配置文件内容修改为如下内容。[epel-source] name=Extra Packages for Enterprise Linux 7 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 [epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-debuginfo] name=Extra Packages for Enterprise Linux 7 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1
编辑完成后,按
Esc
键退出编辑模式,然后输入:wq
并按回车键保存退出。
依次执行如下命令,使新的软件源生效。
yum makecache yum repolist
重新安装MySQL,若不再提示以上报错信息,则表示问题已修复。
CentOS 6系统的ECS实例如何配置使用RPMForge软件源?
操作步骤
RPMForge是第三方软件源仓库,也是CentOS官方社区推荐的第三方软件源。配置步骤概述如下。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行如下命令,查看系统架构。
uname -i
系统显示类似如下,表示该系统架构为x86_64。
x86_64
根据实际的系统架构,通过
wget
等命令下载对应的RPM包。http://repository.it4i.cz/mirrors/repoforge/redhat/el6/en/i386/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.i686.rpm http://repository.it4i.cz/mirrors/repoforge/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
执行如下命令导入DAG GPG密钥。
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
执行如下命令,安装下载的RPM包。
rpm -i rpmforge-release-0.5.3-1.el6.rf.*.rpm
进入如下目录,检查是否存在含有“rpmforge”关键词的仓库配置文件。
/etc/yum.repos.d/
系统显示类似如下,表示RPMForge软件源安装完成。
MySQL问题
ECS实例中的MySQL安装后登录正常,但远程连接MySQL数据库时失败,提示“1045 - Access denied for user 'root'@'****'(using password:YES)”错误怎么办?
问题现象
ECS实例中的MySQL安装后登录正常,但使用相同账号和密码远程连接MySQL数据库时失败,提示“1045 - Access denied for user 'root'@'****'(using password:YES)”错误(确认已输入正确账号和密码)。
问题原因
在ECS实例中安装MySQL后,默认只能在本机登录,MySQL数据库未授权其它远程IP地址登录。
解决方案
请参考以下操作对其它IP地址进行授权。
远程连接ECS实例。
具体操作,请参见连接方式概述。
登录数据库,然后执行如下授权SQL命令,授权远程登录MySQL数据库权限。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
说明执行该授权SQL命令后,root用户可用任何IP地址登录数据库,操作任何数据库中的任何对象。
SQL命令参数说明如下表:
参数
描述
*.*
第一个星号(*)为数据库占位符,如果填
*
则代表所有数据库。第二个星号(*)为数据库表占位符,如果填*
则代表数据库中所有表。'root'@'%'
root为授权登录的数据库账户,百分号(%)为IP地址占位符。假如要限制只能通过
1.1.1.1
的IP地址登录,则需要把%
改成1.1.1.1
。如果填%
则代表允许任何IP地址登录。执行如下SQL语句刷新权限。
flush privileges;
重新远程连接MySQL数据库,若不再提示以上报错信息,则表示问题已修复。
远程连接Linux系统的ECS实例中的MySQL失败,提示“ERROR 2003 (HY000): Can't connect to MySQL server on '39.106.**.**' (110)”错误怎么办?
问题现象
用户远程连接Linux系统的ECS实例中的MySQL时失败,提示“ERROR 2003 (HY000): Can't connect to MySQL server on '39.106.**.**' (110)”错误。
问题原因
可能是由于该IP地址39.106.**.**
没有访问MySQL的权限(即3306端口不监听该IP地址),导致无法远程连接MySQL。
解决方案
远程登录已安装MySQL的Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令备份
my.cnf
文件。cp my.cnf my.cnf.bak
修改
my.cnf
配置文件。执行以下命令,打开
my.cnf
文件。vim /etc/my.cnf
按
i
键进入编辑模式,并将以下内容添加至my.cnf
文件中。bind-address = 0.0.0.0
添加位置如下图所示。
添加完成后,按
Esc
键退出编辑模式,并输入:wq
后按Enter
键,保存退出文件。
执行以下命令,重启MySQL服务,确认MySQL的3306端口监听恢复正常。
/etc/init.d/mysqld restart
上传文件失败问题
Linux系统的ECS实例通过vsftp上传文件失败,提示“553 Could not create file”错误怎么办?
问题现象
Linux系统的ECS实例通过vsftp上传文件失败,提示“553 Could not create file”错误。
问题原因
可能由于以下原因导致:
Linux实例磁盘空间已满。
FTP
home
目录未拥有write
权限。
解决方案
请参考以下操作排查Linux实例磁盘空间大小及FTPhome
目录拥有权限情况。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行如下命令,确认是否为Linux实例磁盘空间已满,导致文件无法上传提示该错误。
df -h
说明磁盘分区空间使用率达到100%则表示该磁盘空间已满。
系统显示类似如下信息。例如,分区
/dev/xvda1
的使用率为59%。执行如下命令,确认FTP
home
目录是否拥有write
权限。说明执行后续命令前,请根据实际情况,更换
/home/user
目录为您实际FTP的home
目录名称。ls -l /home/user
如下图红框中的权限没有
w
,则代表您当前没有write
权限。执行如下命令,添加
write
权限并保存。chmod +w /home/user
执行如下命令,若命令执行结果中存在
w
,则表示write
权限添加成功。ls -l /home/user
Windows系统的ECS实例中,通过FTP上传文件到FileZilla Server失败,提示“550 Permission denied”错误怎么办?
问题现象
在Windows系统的ECS实例中,通过FTP向FileZilla Server上传文件时,提示“550 Permission denied”错误。
问题原因
FileZilla Server中相应的FTP账号没有write
权限。
解决方案
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
运行FileZilla Server软件。在Users配置页面,选择Shared folders配置项。
选择对应的用户与目录,勾选Write单选框,单击OK按钮,完成权限配置。
通过Apt-get安装软件报错问题
如何通过Apt-get安装软件
操作步骤
通过Apt-get在线安装软件,下述操作以安装Nginx为例。
远程连接Ubuntu实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行如下命令,安装Nginx软件。
apt-get install nginx
系统显示类似如下,表示是否继续安装Nginx。
根据提示信息,输入
Y
确认后,开始安装软件,直至软件安装完成。软件安装完成后,执行如下命令,列出软件包所在的目录,及该软件包中的所有文件。
dpkg -L nginx
执行如下命令,安装Nginx。
dpkg -l nginx
通过Apt-get安装软件时,提示“error processing package install-info (--configure)”错误怎么办?
问题现象
在Ubuntu系统的ECS实例中,通过Apt-get安装软件时提示“error processing package install-info (--configure)”错误。
问题原因
可能是由于Ubuntu软件包损坏,导致软件安装失败。
解决方案
请参考以下操作进行apt源更新同步,重新安装软件。
远程连接Ubuntu实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
将info文件夹更名。
mv /var/lib/dpkg/info/ /var/lib/dpkg/info.bak.old/
新建一个新的info文件夹。
mkdir /var/lib/dpkg/info/
执行如下命令,进行apt源更新同步。
apt-get update
执行如下命令,重新安装xxxxx软件,若不再提示以上报错信息,则表示问题已修复。
apt-get install xxxxx
通过Apt-get安装软件或更新时,提示“Segmentation faultsts”错误怎么办?
问题现象
在Ubuntu系统的ECS实例中,通过Apt-get安装软件或更新时提示“Segmentation faultsts”错误。
问题原因
可能是由于apt的cache出现冲突,导致软件安装或更新失败。
解决方案
请参考以下操作进行apt源更新同步。
远程连接Ubuntu实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
将
/var/cache/apt/
目录进行备份。备份完成后,执行如下命令,删除
/var/cache/apt/
目录中所有.bin
文件。rm /var/cache/apt/*.bin
执行如下命令,进行apt源更新同步。
apt-get update
测试是否可以正常使用apt-get。
说明如果实例内存配置过低(比如内存大小只有512MB)的情况下,当提示“Segmentation faultsts”错误时,您还可以使用top命令检查内存使用情况,将一些非必须的进程先暂时关闭,再尝试执行apt-get。
通过Apt-get安装软件时,提示“Reading package lists... Error!”错误怎么办?
问题现象
在Ubuntu系统的ECS实例中,通过Apt-get安装软件时出现类似如下报错信息。
Reading package lists... Error! E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/apt/lists/AZ.archive.ubuntu.com_ubuntu_dists_natty_main_i18n _Translation-en E: The package lists or status file could not be parsed or opened.
问题原因
软件包列表损坏,导致软件安装报错。
解决方案
请参考以下操作清除已损坏的列表,重新生成更新列表。
执行如下命令,清除目录下已经损坏的列表。
rm -rf /var/lib/apt/lists/*
执行如下命令,重新生成更新列表。
apt-get update
再次安装软件,若不再提示以上报错信息,则表示问题已修复。
执行apt-get install unzip或aptitude install unzip命令时,提示“Error http://mirrors.aliyun.com/ubuntu/ trusty-updates/main unzip amd64 6.0-9ubuntu1.1 404 Not Found [IP: 112.124.XXX.XXX 80]”错误怎么办?
问题现象
在Ubuntu系统的ECS实例中,执行apt-get install unzip
或aptitude install unzip
命令时,提示如下错误提示。
Error http://mirrors.aliyun.com/ubuntu/ trusty-updates/main unzip amd64 6.0-9ubuntu1.1 404 Not Found [IP: 112.124.XXX.XXX 80]
Error http://mirrors.aliyun.com/ubuntu/ trusty-updates/main unzip amd64 6.0-9ubuntu1.1 404 Not Found [IP: 112.124.XXX.XXX 80]
Error http://mirrors.aliyun.com/ubuntu/ trusty-updates/main unzip amd64 6.0-9ubuntu1.1 404 Not Found [IP: 112.124.XXX.XXX 80]
问题原因
该问题通常是由于初始系统中的软件版本库与apt源中的版本不一致(即apt-get请求的资源在apt源中不存在)所导致的。
解决办法
请参考以下操作进行apt源更新同步。
远程连接Ubuntu实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行如下命令,进行apt源更新同步。
apt-get update
源更新同步完成后,通过使用
apt-get install
命令安装所需软件。
执行apt-get update命令时,提示“The following signatures were invalid: KEYEXPIRED 1544811256”错误怎么办?
问题现象
在Ubuntu系统的ECS实例中,执行apt-get update
命令时,提示以下信息。
The following signatures were invalid: KEYEXPIRED 1544811256
问题原因
由于使用的软件源签名到期,导致更新报错。
解决方案
请参考以下操作更新已过期的key。
远程连接Ubuntu实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令,获取过期的key。
sudo apt-key list | grep -A 1 expired
执行以下命令,更新过期的key。
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys [$Key]
说明[$Key]指的是之前获取到的过期的key。
重新执行以下命令,进行apt源更新同步。
apt-get update
Alibaba Cloud Linux系统使用第三方DNF/YUM源问题
在Alibaba Cloud Linux 2系统的ECS实例中,使用docker-ce、epel等第三方YUM源安装软件失败怎么办?
问题现象
在符合如下条件的Alibaba Cloud Linux 2系统的ECS实例中,使用适配CentOS 7系统中的docker-ce、epel第三方YUM源,执行yum install docker-ce
命令安装Docker软件包失败,并提示如下报错。
镜像:Alibaba Cloud Linux 2.1903 LTS 64位。
镜像ID:aliyun_2_1903_x64_20G_alibase_20210325.vhd及之前所有版本。
Loaded plugins: fastestmirror, langpacks, update-motd
Loading mirror speeds from cached hostfile
* epel: mirror.sjtu.edu.cn
https://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
Downloading packages:
docker-ce-20.10.6-3.el7.x86_64 FAILED
https://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/Packages/docker-ce-20.10.6-3.el7.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
docker-ce-rootless-extras-20.1 FAILED
https://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/Packages/docker-ce-rootless-extras-20.10.6-3.el7.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
Error downloading packages:
3:docker-ce-20.10.6-3.el7.x86_64: [Errno 256] No more mirrors to try.
docker-ce-rootless-extras-20.10.6-3.el7.x86_64: [Errno 256] No more mirrors to try.
问题原因
第三方YUM源仅适配CentOS 7发行版,Alibaba Cloud Linux 2操作系统与CentOS 7操作系统的$releasever
值不同,导致YUM解析后的地址无效,从而下载容器软件包失败。
YUM安装docker-ce软件包时,首先会在系统中获取版本号,即$releasever
值,然后替换相应YUM源中baseurl地址对应的$releasever
变量,YUM从替换后的baseurl地址中获取相关数据。由于CentOS 7操作系统的$releasever
值为7,Alibaba Cloud Linux 2操作系统的$releasever
值为2.1903,因此解析后的baseurl地址并非预期地址,YUM便无法从这个错误的地址中获取数据。
解决方案
请根据实际需求情况,选择以下对应方案进行修复。
您可以参考方案一:手动修改步骤,通过手动修改
$releasever
变量值进行修复。您可以参考方案二:安装插件修改步骤,通过安装yum-plugin-releasever-adapter插件进行修复。
下列操作以docker-ce源为例进行举例,如果您使用的是其他YUM源,解决方法类似。
方案一:手动修改
远程登录Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令,编辑
/etc/yum.repos.d/docker-ce.repo
配置文件。vim /etc/yum.repos.d/docker-ce.repo
按
i
键切换至编辑模式,找到docker-ce.repo文件中所有enabled=1值的源,将源中baseurl地址的$releasever
变量修改为7,修改之后的内容如下所示。修改完成后,按下
Esc
键后,输入:wq
并回车以保存并关闭配置文件,重新安装软件包即可。
方案二:安装插件修改
安装yum-plugin-releasever-adapter插件实现$releasever
值的自动转换,即将2.1903转换为7。
确认实例是否支持使用yum-plugin-releasever-adapter插件。
yum-plugin-releasever-adapter插件目前的版本及默认支持的第三方repo如下表所示:
插件版本
默认支持的第三方repo
插件的限制
1.0-1.3
docker-ce.repo,epel.repo
您需要满足以下条件,才可以使用该插件:
操作系统需要是Alibaba Cloud Linux 2。
执行以下命令,确认系统中存在plus的repo。
cat /etc/yum.repos.d/AliYun.repo |grep -A3 plus
系统显示类似如下,说明存在plus的repo。
远程登录Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令,安装yum-plugin-releasever-adapter插件,插件默认对docker-ce、epel第三方YUM源中的
$releasever
值自动进行转换。yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
若无其他的YUM源需要转换,安装插件后即可直接安装软件;若还有其他的YUM源需要转换,请按照以下方式配置:
执行以下命令,进入指定目录。
cd /etc/yum/pluginconf.d/
执行以下命令,编辑
releasever-adapter.conf
配置文件。如果需要添加其他的YUM源,则需要将YUM源的.repo
文件名添加在includes字段后面,并以逗号隔开。vim releasever-adapter.conf
系统显示类似如下。
[main] enabled=1 hostfilepath=timedhosts.txt [releasevermapping] release_dict={'2.1903':'7', '3':'8'} [reposlist] includes=docker-ce.repo, epel.repo
说明文件中参数的具体介绍如下所示:
[main]:为插件的主要控制部分,控制插件的启用与否,其中enabled=1表示启用插件,enabled=0表示停用插件。
[releasevermapping]:为待处理的
$releasever
的映射关系,其中2.1903映射为7,3映射为8。[repolist]:为需要修改的源的列表,如果需要添加其他的源,则需要将
.repo
文件的名字添加在include字段后面,并以逗号隔开。
一个
.repo
文件中有多个可以使用的源,每个源都有一个独立的名称区分其他的源,同时一个系统中不能出现重复的名称,例如:docker-ce.repo
中有[docker-ce-stable]
和[docker-ce-stable-debuginfo]
等源。请务必保证新添加到
releasever-adapter.conf
配置文件中的源文件名称是源文件内各个源名称的前缀,例如:docker-ce.repo
源文件中包含的docker-ce-stable
和docker-ce-stable-debuginfo
两个源名称,均以docker-ce
为前缀。
保存配置文件,执行以下命令,即可通过docker-ce、epel第三方YUM源安装软件包。
yum install docker-ce
在Alibaba Cloud Linux 3系统的ECS实例中,使用docker-ce、epel等第三方DNF(YUM)源安装软件失败怎么办?
问题现象
在符合如下条件的Alibaba Cloud Linux 3系统的ECS实例中,执行dnf install docker-ce
命令安装容器软件包失败,并出现如下报错。
使用适配CentOS 8系统中的第三方DNF(YUM)源。
aliyun_3_x64_20G_alibase_20210425.vhd及之前的所有镜像版本。
系统显示报错信息类似如下。
Docker CE Stable - x86_64
Failed to download metadata for repo 'docker-ce-stable'
Error: Failed to download metadata for repo 'docker-ce-stable'
问题原因
第三方DNF源仅适配CentOS 8发行版,而在Alibaba Cloud Linux 3中,系统的$releasever
变量值与CentOS 8不同,导致DNF解析后的地址无效,进而导致下载RPM包失败。
DNF安装docker-ce时,首先会从系统中获取版本号,即$releasever
变量值,然后替换掉相应源baseurl中对应的$releasever
变量值,之后DNF从替换后的baseurl中获取相关数据。由于CentOS 8的$releasever
变量值为8,而Alibaba Cloud Linux 3系统的$releasever
变量值为3,因此解析后的baseurl并非预期地址,DNF便无法从这个错误的地址中安装软件包。
解决方案
请根据实际需求情况,选择以下对应方案进行修复。
您可以参考方案一:手动修改步骤,通过手动修改
$releasever
变量值进行修复。您可以参考方案二:安装插件修改步骤,通过安装dnf-plugin-releasever-adapter插件进行修复。
本文以docker-ce源为例进行介绍,如果您使用的是其他DNF源,解决方案类似。
方案一:手动修改
远程登录Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令,打开
/etc/yum.repos.d/docker-ce.repo
配置文件。vim /etc/yum.repos.d/docker-ce.repo
按
i
键进入编辑模式,找到docker-ce.repo
文件中所有存在enabled=1值的源,将源中baseurl
的$releasever
变量替换为8。按下
Esc
键后,输入:wq
并按Enter
键以保存关闭配置文件,重新进行安装即可。
方案二:安装插件修改
通过安装dnf-plugin-releasever-adapter插件实现$releasever
的变量进行自动转换,即将3转换为8。
确认实例是否支持使用dnf-plugin-releasever-adapter插件。
dnf-plugin-releasever-adapter插件目前的版本及默认支持的第三方repo如下表所示:
插件版本
默认支持的第三方repo
插件的限制
新版本:1.0-2
旧版本:1.0-1.3
说明新版本插件和旧版本插件不兼容,新版本的配置文件名称为
releasever_adapter.conf
,旧版本为releasever-adapter.conf
。升级版本会删除原来的配置文件。因此升级后,如果需要支持除docker-ce和epel之外的第三方源,需要重新按照步骤修改配置文件的include字段,其他的保持不变。docker-ce.repo,epel.repo
您需要满足以下条件,才可以使用该插件:
操作系统需要是Alibaba Cloud Linux 3。
执行以下命令,确认系统中存在alinux3-plus的repo。
cat /etc/yum.repos.d/AliYun.repo |grep -A3 alinux3-plus
系统显示类似如下,说明存在alinux3-plus的repo。
远程登录Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令,安装dnf-plugin-releasever-adapter插件。
说明目前,插件默认对docker-ce和epel源中的
$releasever
变量值做自动转换。dnf install dnf-plugin-releasever-adapter --repo alinux3-plus
若无其他的DNF源需要转换,安装插件后即可直接安装软件;若还有其他的DNF源需要转换,请按照以下方式配置:
执行以下命令,进入
/etc/yum/pluginconf.d/
目录。cd /etc/yum/pluginconf.d/
执行以下命令,编辑
releasever_adapter.conf
配置文件。vim releasever_adapter.conf
按
i
键切换至编辑模式,如果需要添加其他的DNF源,则需要将DNF源的.repo
文件名添加在include字段后面,并以逗号隔开。说明DNF源的
.repo
文件一般在/etc/yum.repos.d/
目录下查看。系统显示类似如下。
[main] enabled=1 [releasevermapping] 2.1903 = 7 3 = 8 [reposlist] include=docker-ce.repo, epel.repo
说明文件中参数的具体介绍如下所示:
[main]:此部分为插件的主要控制部分,控制插件的启用与否,其中enabled=1表示启用插件,enabled=0表示停用插件。
[releasevermapping]:此部分为待处理的
$releasever
的映射关系,其中2.1903映射为7,3映射为8。[repolist]:此部分为需要修改的源的列表,如果需要添加其他的源,则需要将
.repo
文件的名字添加在include字段后面,并以逗号隔开。
一般来说,一个
.repo
文件中有多个可以使用的源,每个源都有一个独立的名称区分其他的源,一个系统中不能出现重复的名称,例如:docker-ce.repo中有[docker-ce-stable]
和[docker-ce-stable-debuginfo]
等源。
修改完成后,按下
Esc
键,然后输入:wq
并按回车,保存并关闭配置文件。执行如下命令,通过docker-ce、epel和您添加的源安装docker-ce软件。
dnf install docker-ce
安装AD域控制器失败问题
安装AD域控制器失败,提示“安装Active Directory域服务二进制文件失败”错误怎么办?
问题现象
在Windows系统的ECS实例中,安装AD域控制器失败,提示“安装Active Directory域服务二进制文件失败”错误。
问题原因
通过打开事件查看器发现报错,Remote Registry
服务被禁止,无法启动该服务。
解决方案
请参考以下操作启动Remote Registry
服务。
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
依次选择开始 > 运行,输入
services.msc
,然后单击确认。在服务窗口中,双击
Remote Registry
服务,进入Remote Registry属性窗口,设置以下选项。在启动类型区域,选择自动选项。
在服务状态区域,单击启动,确保
Remote Registry
服务正常启动。
单击确定,保存设置。
安装AD域控制器时,提示“此计算机具有动态分配的IP地址”怎么办?
问题现象
在Windows系统的ECS实例中安装AD域控制器时,提示“此计算机具有动态分配的IP地址”。
问题原因
该Windows系统的ECS实例上至少有一个物理网络适配器未将静态IP地址分配给其IP属性。
解决方案
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
安装AD域控制器。具体操作,请参见ECS实例搭建Windows系统AD域。
在安装AD域时弹出的静态IP分配选项框中,单击是。
LoopBack使用了DHCP方式,可以在未分配静态IP地址的情况下继续执行操作。
安装AD域控制器时,提示“0x0000232B RC0DE_NAME_ERROR”错误代码怎么办?
问题现象
在Windows系统的ECS实例中安装AD域控制器时,提示“0x0000232B RC0DE_NAME_ERROR”错误代码。
问题原因
可能是由于DNS服务器中IP地址配置错误导致。
解决方案
请参考以下操作将Slave的内外网网卡的DNS服务器全部修改为Master的私网地址。
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
进入Internet协议版本4(TCP/IPv4)属性窗口,修改DNS服务器地址,然后单击确定。
说明更改DNS服务器地址为Master实际的私网地址。
检查是否能Ping通DNS服务器IP地址。
安装AD域控制器时,提示“找不到网络路径”错误怎么办?
问题现象
在Windows系统的ECS实例中安装AD域控制器时,提示“找不到网络路径”错误。
问题原因
可能有以下几点原因导致:
AD域控制器和客户端的
TCP/IP NetBIOS Helper
和Remote Registry
服务没有启动。客户端与AD与控制器的DNS配置错误。
客户端和AD域控制器的SID造成冲突。
防火墙及安全软件进行了拦截。
解决方案
请参考以下操作进行排查。
启动TCP/IP NetBIOS Helper和Remote Registry服务
请参考解决方案分别启动AD域控制器和客户端的TCP/IP NetBIOS Helper和Remote Registry服务。
修改客户端DNS配置
请参考解决方案修改客户端DNS配置。
修改客户端SID
请参考以下操作修改客户端SID。
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
下载修改客户端SID的PowerShell脚本。
下载地址:AutoSysprep.ps1
脚本来源:阿里云官方
打开CMD,输入powerShell切换至Windows PowerShell界面。
说明如果您的实例操作系统是64位,则不能使用32位的PowerShell(即Windows PowerShell (x86)),否则会报错。
切换至脚本存储的路径,执行如下命令,查看脚本工具说明。
.\AutoSysprep.ps1 -help
执行如下命令,重新初始化服务器的SID。
.\AutoSysprep.ps1 -ReserveHostname -ReserveNetwork -SkipRearm -PostAction "reboot"
初始化完成后,会重启实例,您需要注意以下事项。
IP地址的获取方式会从DHCP变成固定IP地址,请确保该固定IP地址和开始设置前ECS实例的IP地址一致。您也可以将获取方式改回DHCP,以自动获取控制台中为ECS实例分配的主私有IP地址。
说明请不要在控制台修改ECS实例的主私有IP地址,否则IP地址变化会导致访问异常。
初始化SID后,云服务器防火墙的配置被修改成微软的默认配置,导致云服务器无法Ping通。您需要关闭防火墙来宾或公用网络,或者放行需要开放的端口。下图表示防火墙来宾或公用网络的状态是已连接。
打开控制面板修改防火墙设置,关闭来宾或公用网络防火墙。
关闭后,可以Ping通服务器。
允许客户端通过防火墙等安全软件
请参考Windows Server系统的ECS实例防火墙策略的配置方法允许客户端通过。
执行yum、wget命令报错问题
在Linux系统的ECS实例中,执行wget命令时提示“command not found”错误怎么办?
问题现象
在Linux实例中执行wget
命令时提示“command not found”,执行yum install wget
命令时提示“already installed and latest version”。
问题原因
检查/usr/bin
目录中没有wget
命令文件,但存在wge
命令的文件,可能是由于命令文件有被重命名导致报错。
解决方案
请您参考以下步骤进行操作。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令查询
wge
命令的路径。whereis wge
命令返回结果如下,表示
wge
命令路径为/usr/bin/wge
。wge:/usr/bin/wge
根据上述的路径,执行以下命令重命名即可。
cp /usr/bin/wge /usr/bin/wget
重新执行
wget
命令,若不再提示以上报错信息,则表示问题已修复。
在Linux实例系统的ECS实例中,使用wget命令下载时提示“Permission denied”错误怎么办?
问题现象
在Linux系统的ECS实例中,使用wget
下载时提示以下信息。
wget bash: /usr/bin/wget: Permission denied
问题原因
在Linux实例系统的ECS实例中,wget
命令权限为000,没有读写执行权限。
解决方案
请您参考以下步骤进行操作。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令查看
wget
命令权限。ls -l /usr/bin/wget
命令返回结果如下,说明
wget
命令权限为000,没有读写执行权限。-------- 1 root root 366800 Oct 31 2014 /usr/bin/wget
执行以下命令,查看
/usr/bin/wget
目录属性。lsattr /usr/bin/wget
命令返回结果如下,表示
/usr/bin/wget
目录属性为i
(不允许在该目录下新建和删除文件)。----i--------e- /usr/bin/wget
执行以下命令,移除
/usr/bin/wget
目录i
属性。chattr -i /usr/bin/wget
执行以下命令,对
/usr/bin/wget
目录进行授权。chmod 755 /usr/bin/wget
重新执行
wget
命令,若不再提示以上报错信息,则表示问题已修复。
在CentOS 7系统的ECS实例中,执行yum命令提示“-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory”错误怎么办?
问题现象
在CentOS 7系统的ECS实例中执行yum
命令时,提示以下报错信息。
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
问题原因
可能是由于Python异常(Python被卸载、改名或移动路径),导致执行yum
命令时报错。
yum
( Yellow dog Updater, Modified)是一个在Fedora、RedHat以及SUSE中的Shell前端软件包管理器。
解决方案
请参考以下操作,排查Python是否异常并修复。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令,查看
yum
路径。which yum
系统返回如下信息,表示
yum
路径为/usr/bin/yum
。/usr/bin/yum
执行以下命令,查看
yum
内容。cat /usr/bin/yum
系统返回以下信息,表示使用的Python版本路径。
#!/usr/bin/python
说明本文以
/usr/bin/python
路径为示例,请根据实际情况更换实际路径。执行以下命令,检查上述查看的路径。
ls -al /usr/bin/python
如果系统返回类似以下信息,则表示Python可能被卸载、改名或移动路径。
ls: cannot access /usr/bin/python: No such file or directory
执行以下命令,查看Python相关文件是否存在。
rpm -qa | grep python
正常情况下,系统返回类似以下信息。
python-decorator-3.4.0-3.el7.noarch libselinux-python-2.5-14.1.el7.x86_64 python-backports-1.0-8.el7.x86_64 python-pyudev-0.15-9.el7.noarch rpm-python-4.11.3-35.el7.x86_64 python-2.7.5-76.el7.x86_64 .....
Python相关文件存在:说明Python相关文件被改名或移动路径。
执行以下命令,查看Python相关文件。
ls -al /usr/bin/python*
系统返回类似以下信息,提示“
/usr/bin/python.bak -> python2
”,则表示Python名称已被更改。lrwxrwxrwx 1 root root 14 Feb 15 2019 /usr/bin/python-config -> python2-config lrwxrwxrwx. 1 root root 7 Feb 15 2019 /usr/bin/python.bak -> python2 lrwxrwxrwx. 1 root root 9 Feb 15 2019 /usr/bin/python2 -> python2.7 lrwxrwxrwx 1 root root 16 Feb 15 2019 /usr/bin/python2-config -> python2.7-config -rwxr-xr-x. 1 root root 7216 Oct 31 2018 /usr/bin/python2.7 -rwxr-xr-x 1 root root 1835 Oct 31 2018 /usr/bin/python2.7-config
执行以下命令,将
/usr/bin/python.bak
名称改为/usr/bin/python
。mv python.bak python
重新执行
yum
命令,若不再提示以上报错信息,则表示问题已修复。
Python相关文件不存在:说明Python被卸载。
依次执行如下命令,安装Python。
mkdir /python/ yum install python --downloadonly --downloaddir=/python/
重新执行
yum
命令,若不再提示以上报错信息,则表示问题已修复。
无法连接ECS实例中的FTP服务问题
Windows实例
在Windows系统的ECS实例中,无法通过外网环境连接和访问FTP服务怎么办?
问题现象
在Windows系统的ECS实例中,已经搭建的FTP服务,外网环境无法连接和访问该FTP服务器。
问题原因
可能导致该问题的原因如下:
未放行FTP的安全组规则:请参考方案一:添加FTP的安全组规则进行操作。
防火墙拦截FTP进程:请参考方案二:配置FTP防火墙支持进行操作。
解决方案
请根据实际情况,选择以下两种分案进行操作。
方案一:添加FTP的安全组规则
当您在Windows系统的ECS实例中搭建好FTP站点后,需要在Windows系统的ECS实例所属的安全组中,添加入方向规则,放行FTP服务器所需的21端口以及FTP服务器被动模式可能占用的端口范围1024~65535,具体操作请参见添加安全组规则。
方案二:配置FTP防火墙支持
如果您的防火墙为开启状态,则需要通过配置IIS管理器放行TCP21端口与1024~65535端口用于FTP服务。请参考以下步骤进行操作。
说明Windows系统的ECS实例内部的防火墙默认为关闭状态。
本文以IIS管理器为例,介绍如何配置FTP。
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
打开IIS 管理器,然后双击FTP防火墙支持,进入FTP防火墙支持的配置界面。
配置相关参数,并单击应用。
说明参数说明如下:
防火墙的外部IP地址:输入该Windows系统的ECS实例的公网IP地址。
数据通道端口范围:指定用于被动连接的端口范围。可指定的有效端口范围为1025-65535。请根据实际需求进行设置,本文以1024~65535端口为例。
打开命令行,执行以下命令重启FTP服务,确保覆盖每个FTP站点的配置。
net stop ftpsvc&net start ftpsvc
(可选)若配置好FTP服务器后,可以在本机访问,但是无法通过另一台机器访问,该问题是由于防火墙配置错误,请参考以下操作进行配置:
首先检查服务器管理器中的入站规则,确保已启用FTP服务器。
添加Windows服务主进程。
打开控制面板 > Windows防火墙,然后单击左侧的允许程序或功能通过Windows防火墙。
在新窗口中单击允许运行另一程序,在浏览中找到
C:\Windows\System32\svchost.exe
打开并添加。此时会多出一项Windows服务主进程,选中家庭/工作(专用)与公用,然后单击确定。
连接Windows系统的ECS实例中的FTP服务器时,提示“530 Login incorrect”错误怎么办?
问题现象
连接Windows系统的ECS实例中的FTP服务器时,提示以下错误。
响应:331 Please specify the password. 命令:PASS ************ 响应:530 Login incorrect. 错误:严重错误:无法连接到服务器
问题原因
可能是由于以下原因导致的:
FTP密码不正确:请参考方案一:修改FTP密码进行操作。
FTP用户权限配置错误:请参考方案二:添加FTP用户权限进行操作。
解决方案
请根据实际情况,选择以下两种方案进行操作。
方案一:修改FTP密码
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
右键单击桌面的计算机 > 管理,打开服务器管理器。
单击左侧配置本地用户和组 > 用户,右键单击对应的FTP账号,选择设置密码。
方案二:添加FTP用户权限
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
检查FTP对应的目录文件是否正常存在。
若不存在:请参考步骤三:设置共享文件的权限,重新创建FTP对应文件并添加相关权限。
若存在:右键单击该文件夹,选择属性 > 安全,选择对应FTP账号添加相关权限。
连接Windows系统的ECS实例中的FTP服务器时,提示“530 valid hostname is expected”错误怎么办?
问题现象
通过IIS 7.5配置的FTP绑定域名后,通过IP等方式连接Windows系统的ECS实例中的FTP服务器时,提示“530 valid hostname is expected”或者“503 Login with USER first”错误。
问题原因
通过IIS 7.5配置的FTP绑定域名后,在登录FTP时,输入的域名格式不正确。
解决方案
如果FTP绑定的域名是
www.example.com
,用户名为user
,则登录时需要使用www.example.com|user
进行登录。说明注意中间用“|”分隔。
您也可以将域名绑定删除,然后直接通过用户名进行登录。请参考下图进行操作。
Windows系统的ECS实例中,通过FTP上传文件到FileZilla Server失败,提示“550 Permission denied”错误怎么办?
问题现象
在Windows系统的ECS实例中,通过FTP向FileZilla Server上传文件时,提示“550 Permission denied”错误。
问题原因
FileZilla Server中相应的FTP账号没有
write
权限。解决方案
远程连接Windows实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
运行FileZilla Server软件。在Users配置页面,选择Shared folders配置项。
选择对应的用户与目录,勾选Write单选框,单击OK按钮,完成权限配置。
通过FTP over TLS方式连接Windows实例上IIS服务创建的FTP站点时,提示“534 Policy requires SSL”信息,如何处理?
问题描述
通过FTP over TLS方式连接Windows实例上IIS服务创建的FTP站点时,提示“534 Policy requires SSL”信息,无法连接FTP站点。
报错示例如下:
问题原因
由该问题的“534 Local policy on server does not allow TLS secure connections.”响应信息可知,FTP站点的FTP SSL 设置参数不正确导致该问题。
解决方案
远程连接Windows实例。
具体操作,请参见连接方式概述。
在桌面左下角,选择 > Windows管理工具 > Internet Information Services(IIS)管理器。
在FTP主页的FTP区域,双击FTP SSL设置。
在FTP SSL设置区域,将SSL 策略设置为允许 SSL 连接,然后在操作列单击应用。
再次访问该FTP站点。
Linux实例
上传文件到Linux系统的ECS实例中的FTP站点时,提示“425 Security:Bad IP connection”错误怎么办?
问题现象
用户上传文件到Linux系统的ECS实例中的FTP站点时,提示“425 Security:Bad IP connection”错误。
问题原因
该问题通常是由于客户端处于NAT网络,而NAT网络关联的公网IP不止一个,导致两次连接时,源IP不一致导致报错。
说明FTP服务同时拥有两个连接,一个是控制连接,一个是数据连接。在默认情况下,数据传输时FTP服务器端会核实两个连接的源IP是否一致,如果不一致,就会报“425 Security:Bad IP connection”错误。
解决方案
请参考以下操作,关闭被动模式下的IP安全检查。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行如下命令,编辑FTP配置文件。
vi /etc/vsftpd/vsftpd.conf
按
i
键进入编辑模式,在配置文件中添加如下内容。pasv_promiscuous=yes
编辑完成后,按
Esc
键退出编辑模式,然后输入:wq
并按回车键保存退出。执行如下命令,重启FTP服务。
systemctl restart vsftpd
Linux系统的ECS实例通过vsftp上传文件失败,提示“553 Could not create file”错误怎么办?
问题现象
Linux系统的ECS实例通过vsftp上传文件失败,提示“553 Could not create file”错误。
问题原因
可能由于以下原因导致:
Linux实例磁盘空间已满。
FTP
home
目录未拥有write
权限。
解决方案
请参考以下操作排查Linux实例磁盘空间大小及FTP
home
目录拥有权限情况。远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行如下命令,确认是否为Linux实例磁盘空间已满,导致文件无法上传提示该错误。
df -h
说明磁盘分区空间使用率达到100%则表示该磁盘空间已满。
系统显示类似如下信息。例如,分区
/dev/xvda1
的使用率为59%。执行如下命令,确认FTP
home
目录是否拥有write
权限。说明执行后续命令前,请根据实际情况,更换
/home/user
目录为您实际FTP的home
目录名称。ls -l /home/user
如下图红框中的权限没有
w
,则代表您当前没有write
权限。执行如下命令,添加
write
权限并保存。chmod +w /home/user
执行如下命令,若命令执行结果中存在
w
,则表示write
权限添加成功。ls -l /home/user
其他问题
部署在ECS实例中的微信公众平台Token验证失败怎么办?
问题现象
部署在ECS实例中的微信公众平台Token验证显示失败。
问题原因
常见的可能原因如下:
非正常编辑文件,如记事本、在线编辑等操作导致文件中添加了utf8的bom签名。
ECS实例如果安装了安全狗或者云安全中心,会拦截腾讯服务器的请求。
虚拟主机使用临时域名去验证导致被系统拦截,适用于万网的虚拟主机。
PHP文件结束符后包含换行或其他字符。
使用了其他的调试验证方法。
程序Gzip加密异常。
解决方案
常见原因对应建议处理办法如下:
非正常编辑文件,如记事本、在线编辑等
建议使用多功能编辑器去除bom。
ECS实例安装了安全狗或者云安全中心
建议卸载安全狗,或者提示云安全中心设置白名单。
虚拟主机使用临时域名去验证
建议使用已经接入阿里云备案的正式域名来进行验证操作。
PHP文件结束符后包含换行或其他字符
建议去除多余的字符。
使用了其他的调试验证方法
执行
curl http://xxx/index.php/api/xx
命令,进行调试验证,模拟微信请求API,并对此进行分析。程序Gzip加密异常
建议临时取消程序Gzip功能,进行测试排查。
Liunx系统的ECS实例中文字显示乱码怎么办?
问题现象
通过第三方SSH客户端远程连接Linux系统的阿里云Linux系统的ECS实例时,发现中文字体显示乱码。
问题原因
造成该问题的可能原因如下:
Liunx系统未安装中文字体:Liunx系统语言默认不支持中文显示,需要单独安装中文语言包使系统支持中文显示,请参考方案一:在Linux系统中安装中文语言包进行修复。
第三方SSH客户端工具字符集设置问题,请参考方案二:修改第三方SSH客户端工具字符集设置进行修复。
解决方案
根据实际情况,选择对应方案进行操作。
方案一:在Linux系统的ECS实例中安装中文语言包
下列操作以CentOS 7.8操作系统为例,其它版本的CentOS系统或者其他发行版本(如Redhat、Debian、Ubuntu等)对应的配置和命令行请参阅相应的官方文档。
CentOS 6与CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 6/8的源地址内容已移除。当您在CentOS 6/8系统内继续使用默认配置的源地址时会发生报错。建议您先切换CentOS 6/8的源地址,然后再进行操作。具体操作,请参见CentOS 6 EOL如何切换源?和CentOS 8 EOL如何切换源?。
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Windows实例。
执行以下命令,查询当前系统使用的语言。
echo $LANG
说明如果为英文,请继续执行步骤3。
如果为中文,说明该Linux系统的ECS实例已安装中文语言包,排除因Liunx系统未安装中文字体导致文字显示乱码的原因,请参考方案二:修改第三方SSH客户端工具字符集设置继续执行操作。
执行以下命令,查看当前系统是否安装中文语言包。
locale -a | grep "zh_CN"
系统显示类似如下,zh表示中文,CN表示中国,gb18030、gb2312、gbk、utf8为字符集。
zh_CN zh_CN.gb18030 zh_CN.gb2312 zh_CN.gbk zh_CN.utf8
若未安装中文语言包,请执行以下命令安装。
sudo yum groupinstall "fonts"
执行以下命令,编辑
/etc/locale.conf
配置文件。vim /etc/locale.conf
按
i
键切换至编辑模式,将LANG=en_US.UTF-8
修改为LANG=zh_CN.UTF-8
,将当前系统语言修改为中文。修改完成后,按下
Esc
键后,输入:wq
并回车,保存并关闭配置文件。
执行以下命令,使配置生效。
source /etc/locale.conf
执行以下命令,重启服务器。
reboot
(可选)若重启服务器后,当前系统语言仍显示为英文,请执行以下命令,编辑
/etc/profile.d/lang.sh
配置文件。vim /etc/profile.d/lang.sh
按
i
键切换至编辑模式,将zh*) LANG=en_US.UTF-8
修改为zh*) LANG=zh_CN.UTF-8
,修改之后的内容如下图所示。修改完成后,按下
Esc
键后,输入:wq
并回车,保存并关闭配置文件。执行以下命令,重启服务器。
reboot
方案二:修改第三方SSH客户端工具字符集设置
以下操作以XShell客户端为例,介绍如何修改XShell客户端工具字符集设置。
打开XShell客户端。
在XShell客户端页面,将默认语言设置为Unicode (UTF-8)。
重新登录实例,若不再出现以上错误,则表示问题已修复。