you don't have permission to access / on this server(Apache Server权限访问问题)

403 Forbidden 根路径访问被拒?Apache/Nginx 权限排查与修复指南 HTTP 403 Forbidden 是 Web 服务器常见的状态码,表示服务器理解请求但拒绝授权。其原理涉及 Web 服务层的访问控制机制,如 Apache 的 Require 指令和 Nginx 的 deny 规则。理解这些机制的技术价值在于快速定位拦截层,避免误判为应用层错误。典型应用场景包括站点根路径访问被拒、默认首页缺失、目录浏览关闭及文件系统权限不足等。排查时需区分 Web 服务层与应用层,结合错误日志和配置检查,高效解决权限问题。 阅读详情
AI摘要

本文介绍了在Linux环境下遇到的Apache服务器权限问题及解决方法。包括修改httpd.conf文件中的权限设置、检查文件系统权限、考虑扩展权限如SELinux的影响等。最终通过重装系统解决了问题。

Apache Http Server已经在linux上安装完成,可是通过浏览器访问,却出现了“you don't have permission to access / on this server”.
到网上Google了下,大致有以下2种解决办法:
1.在httpd.conf文件中,有这么一段
<Directory/>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
可以尝试把Deny改成Allow,然后重启apache服务,看问题是否解决。
2.在Apache的wiki上有关于PermissionDenied的另一种解决方法,链接是http://wiki.apache.org/httpd/13PermissionDenied,
全文翻译如下:
(13)Error 13 指的是文件系统的访问权限错误。也就是由于错误的权限,apache被拒绝访问。
一般的来说,这并不意味着是Apache配置文件存在错误。
为了给文件提供服务,Apache必须有适当的权限去访问那些文件,这些权限是由操作系统授予的。
特别的,在httpd.conf文件中,指出了User或者Group必须能够读取所有被服务的文件,以及查找包含那些文件的目录,
和所有的父目录直至文件系统的根。
在对一个unix-like的系统上的不属于User或Group的资源进行访问时,这里的User或Group是在httpd.conf的文件中指定的,典型的访问权限,对于普通的文件是644 -rw-r--r--,对于文件夹或者CGI脚本是755 drwxr-x-r-x。你也可能需要去查看操作系统所支持的扩展的访问权限(例如SELinux访问权限).
例子:
假如当访问位于unix-like系统上的/usr/local/apache2/htdocs/foo/bar.htm文件时,你收到了Permission Denied的错误,首先去查看文件上存在的访问权限:
$ cd /usr/local/apache2/htdocs/foo
$ ls -l bar.htm
如果须要的话,就修复它们:
$ chmod 644 bar.html
然后对文件夹以及每个父文件夹(/usr/local/apache2/htdocs/foo,/usr/local/apache2/htdocs,/usr/local/apache2,/usr/local/,/usr)做相同的操作:
$ ls -la
$ chmod +x
$ cd ..
#重复操作直到最顶层
在一些系统上,可使用工具namei来列出各个路径上的不同组件的访问权限,然后去发现是否有权限问题:
$ namei -m /usr/local/apache2/htdocs/foo/bar.html
如果标准的访问权限配置是正确的,你仍然得到一个Permission Denied的错误,你应该去查看扩展的访问权限。
例如,你可以使用命令setenforce 0去关闭SELinux,来查看是否有错误。
如果有错误,可以使用命令ls -alz去查看SELinux的访问权限,并使用chcon来修复它们。
不要将文件或文件夹的mode设置为777,即使“只用来测试”。测试服务器的目的是在安全的环境下保证事情是正确的,而不是错误地绕开。
3.郁闷的是,对于我的机器这两种方法都不行,把http.conf又看了几遍,问题依然还在。最后仔细想来一下,问题应该处在虚拟机上安装Linux的时候有一些development的rpm包没有装,这样Linux在首次装上然后进行配置的时候,就会出现一些类似于域名,权限,不能自动获取IP地址的问题。即使在原来的系统上进行更新Linux也是解决不了的。这样一来,解决办法有了,将原来的Linux系统删掉,重新安装,果然,问题解决,通过宿主机器去访问虚拟机中Linux系统的apache,It works!
Mac catalina下解决更改Apache服务DocumentRoot路径导致的403错误 写这篇文章呢,主要为了记录一下自己解决问题的过程,希望给后来者提供一些版主,少走一些弯路。顺便吐槽一下国内博客缺少实际操作、抄来抄去,误人匪浅的软件技术氛围。 为了php开发,启动了自己mac上的apache服务,版本是2.4.41(catalina版默认)。想把服务的基础目录变更到桌面下的www目录下,也是为了桌面上可视化编辑方便。于是打开/etc/apache2/httpd.conf文件(提示,各位修改下记得备份)。修改DocumentRoot为: 可重启服务之后,就出现了... 阅读详情

相关推荐

从零开始:如何用Python手绘波特图并分析电路稳定性

本文详细介绍了如何使用Python绘制波特图并分析电路稳定性,涵盖从基础理论到实际应用的完整流程。通过NumPy和Matplotlib实现频域分析,包括RC低通滤波器和RLC带通滤波器的案例,以及相位裕度计算等高级技巧,为电子工程师提供了一套高效的电路分析解决方案。

hhh00的博客 371

网站出现“You don‘t have permission to access / on this server.”错误原因和解决方案

当访问网站出现“You don't have permission to access / on this server.”时,造成此现象的原因大概有以下两点: 一:用户程序不完整,或者未在空间上设置首页,导致网站无法访问; 二:伪静态未开启,或用户的伪静态文件、伪静态规则不正确; 可根据以上提示查看代码或管理后台修改。 ...

PHP错误汇总 6万+

机器人视觉伺服控制入门:从IBVS到PBVS的实战指南(附Python代码示例)

本文深入解析机器人视觉伺服控制,对比了基于图像的视觉伺服和基于位置的视觉伺服两大核心方法。通过实战案例与Python代码示例,详细阐述了从误差计算、交互矩阵到速度控制的全流程,帮助读者掌握如何利用视觉反馈实现机器人的实时闭环控制,提升其在动态环境中的作业能力。

weixin_29061997的博客 259

辛星浅析You don't have permission to access / on this server.的解决办法

通常我们会遇到"You don't have permission to access / on this server."的提示,从字面意思是说,我们没有访问本服务器的权限,那么它常见的问题又是什么呢?  第一个假如是虚拟主机,那么可能是虚拟主机配置的错误,我们在对里面配置的时候,在其子配置项中,我们在中修改为如下即可:   Order  allow,deny   Allow  from

辛星,前进的路上. 1万+

STM32驱动AD2S1210实现旋变解码与角度读取

旋转变压器作为一种耐高温、抗振动的角度传感器,在工业伺服、机器人关节和电动汽车电驱等场景中占据重要地位。其输出信号需要经过专用转换芯片处理才能被MCU高效使用。AD2S1210是一款典型的旋变数字转换器(RDC),内部采用Type II型跟踪环,将模拟SIN/COS信号实时解算为数字角度与速度,降低了处理器负担并提升抗干扰能力。本文基于STM32平台,详细介绍了AD2S1210的硬件接线、SPI通信配置、寄存器初始化流程,以及读取位置数据时的SAMPLE脉冲时序等关键实现。同时总结了常见故障如全FF、角度跳

weixin_34194829的博客 194

4相5线步进电机驱动原理

步进电机驱动

while(1) 3万+

“You don't have permission to access the URL on this server. Sorry for the inconvenience.”解决办法

有些网站,如“简书”网站,直接使用浏览器打开网站的时候正常,但使用Python requests.get(url)这个方法请求接口,会出现以下报错: &lt;h1&gt;403 Forbidden&lt;/h1&gt; &lt;p&gt;You don't have permission to access the URL on this server. Sorry for the inconv...

jarthong的博客 7万+

ANSYS_APDL实战入门——从零开始掌握模态分析

本文为ANSYS APDL模态分析实战入门指南,通过一个悬臂梁案例,手把手教你从零开始掌握APDL命令流。内容涵盖从模型创建、材料定义、网格划分到边界条件设置、求解及后处理结果查看的全流程,帮助工程师快速上手结构动力学分析,避免共振风险。

egg99的博客 1130

apache出现You don't have permission to access / on this server. 提示(解决方法)

今天在windows上搭建php环境,配置完成后,在浏览器中运行出现在You don't have permission to access / on this server.  提示。查了一下apache手册找到问题所在处。这里定义了默认对网站根的访问权限。 # Each directory to which Apache has access can be configured with

lunzi3775的博客 3750

全网最全RT-DETR涨点改进,基于官方源码1:1还原,在Ultralytics项目中配置rtdetr-r18、rtdetr-r34、rtdetr-r50、rtdetr-r101版本~小论文大论文必备

本文详细介绍了如何将RT-DETR的ResNet18/34/50/101/154版本移植到ultralytics项目中。主要内容包括:1) RT-DETR核心特点,如高效混合编码器、IoU感知查询选择等;2) 提供完整ResNet核心代码;3) 分步配置指南,包括创建模块文件和修改tasks.py;4) 各版本yaml配置文件的创建方法。该方案可帮助研究者快速实现RT-DETR改进,适用于目标检测相关论文研究。所有配置文件均可正常运行,为实验部署提供了便利。

Ai缝合怪、助力小伙伴高效发论文 3928

YOLOv11的代数不变量解释:Syzygy模分析特征重要性,用交换代数揭示卷积核的语义相关性

本文提出了一种基于代数几何与交换代数的创新方法,特别是运用Syzygy模理论,对YOLOv11目标检测算法的卷积核语义相关性进行数学解释。研究揭示了YOLO系列算法演进背后的代数结构特征,建立了网络组件与多项式环、理想簇等代数概念的对应关系。通过构建分层的准同构代数系统,分析了YOLOv11在不同尺度下保持语义不变性的数学本质。文章系统阐述了Syzygy模在CNN特征冗余分析、跨层依赖关系建模和语义聚类中的应用,并提出了适用于动态稀疏训练的改进算法。该理论框架为深度神经网络的解释性研究提供了新的数学工具,同

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1270

apache2.2.22 嵌入式移植403访问权限问题(You don't have permission to access / on this server)

 备注:之前更改http.conf,总是不好使,才发现是默认虚拟目录问题。。 Apache提示You don't have permission to access / on this server问题解决 博客分类:  服务器   今天为了方便测试,将一本地目录设置为一apache的虚拟主机,在httpd-vhosts.co

LXP 1717

152:vue+leaflet 判断一个点是否在一个电子围栏内

本文介绍了一个基于Vue+Leaflet的示例,演示如何判断点是否在电子围栏内。作者大剑师兰特(优快云知名博主)展示了使用polygon.getBounds().contains(latlng)方法检测点与多边形边界的关系。代码仅需80行,通过点击地图触发判断逻辑,结果显示提示信息。该技术可广泛应用于地理围栏、位置服务等场景,需要安装turf依赖。文章提供了完整源码和配置说明,适合GIS开发者学习参考。

大剑师兰特的GIS世界 756

apache 403错误 You don't have permission to access on this server.

apache 403错误You don't have permission to access on this server. 运营部的同事要通过局域网访问我本机的网站,在通过浏览器访问192.168.1.34(我电脑局域网的IP)时,出现如下错误:先说明,用127.0.0.1是可以访问的。 403错误提示 Forbidden You don't have permission to ac

larryliuqing的专栏-xxx 1429

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

apache You don't have permission to access / on this server 解决

用linux源码安装Apache使用的虚拟主机的模式进行操作,几个相关的网站放在一个文件里,想法是通过网站列出的目录进行相应的网站进行操作,一切设置完成后,在浏览器中运行出现在You don't have permission to access / on this server.  这里定义了默认对网站根的访问权限. 把这个 Directory />     Options FollowS

BestForYou 1201

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

apache在windows10下报错You don't have permission to access /client.php on this server.

今天在电脑上安装了apache24 和 php7.3 ,竟然报了You don't have permission to access /client.php on this server.错误,没权限…… 我查了好多资料,各种改vhosts配置都不行,最后发现在httpd.conf有一行配置有问题 &lt;Directory /&gt; AllowOverride none ...

梦启未来 1177

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

apache出现You don't have permission to access

apache出现You don't have permission to access / on this server. 提示 今天在新的linux上跑原来的代码,使用的虚拟主机的模式进行操作。几个相关的网站放在一个文件里,想法是通过网站列出的目录进行相应的网站进行操作。一切设置完成后,在浏览器中运行出现在You don't have permission to access / on thi...

灯火阑珊处 269

apache服务器:拒绝通过IP直接访问网站

遇到的 apache服务器:拒绝通过IP直接访问网站 用apache搭建的WEB服务器,如何让用户只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢? 方法一:在httpd.conf文件最后面,加入以下代码 NameVirtualHost 221.222.222.222 ServerName 221.222.222.222 Order Allow,De

duhaomin的专栏 5064

apache出现You don't ha…

http://www.phpweblog.net/maple094/archive/2008/05/29/4000.html 今天在新的linux上跑原来的代码,使用的虚拟主机的模式进行操作。几个相关的网站放在一个文件里,想法是通过网站列出的目录进行相应的网站进行操作。一切设置完成后,在浏览器中运行出现在You don't have permission to access / on this s

880

You don't have permission to access /nagios/ on this server

You don't have permission to access /nagios/ on this server  解决: chmod 777 nagios http://IP/nagios 出现欢迎界面  1、  其实这种错误就是提示你没有权限访问nagios这项服务。造成这种报错的原因有多种,可能是文件权限你没有改成777,也可能是你httpd.conf这个配

白及 5779

Apache提示You don't have permission to access / on this server问题解决

Apache提示You don’t have permission to access / on this server问题解决 测试时遇到将一本地目录设置为一apache的虚拟主机,在httpd-vhosts.conf文件中进行简单设置,然后在hosts文件中将访问地址指向本地,启动apache,进行访问,却出现了You don’t have permission to access / on ...

mxl00z的博客 15万+

Forbidden You don't have permission to access / on this server.

Forbidden You don't have permission to access / on this server. 当出现此问题的时候,记得修改httpd.conf。 在原有的位置文件中找到配置节     Options FollowSymLinks     AllowOverride None     Order deny,allow

在路上 — on the way 1万+
上一篇: 如何更新Linux(How to udpate Linux)----将安装时没有安装的一些包重新安装上
下一篇: Linux 系统管理用户
Benjieming_Wang
博客等级 码龄18年 8粉丝 27原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值