PHPMailer autoload.php无法打开

时间:2018-12-13 19:54:59

标签: php phpmailer server-side

我目前在GoDaddy上托管一个网站,最近我添加了一个联系表单,当人们填写该表单时会向我发送电子邮件。当我使用XAMPP时,它可以完美工作,但是一旦将相同的代码上传到GoDaddy服务器上,它就会给我HTTP ERROR 500

我正在使用PHPMailer和Gmail的SMTP服务。这是当前可用于XAMPP的代码:

<?php

require_once "vendor/autoload.php";


$name = $_POST["name"];
$email_from = $_POST["email"];
$telephone = $_POST["telephone"];

$message = "Name:  ".$name."\r\n".
    "Email:  ".$email_from."\r\n".
    "Telephone:  ".$telephone."\r\n";

$email_to = "myemail@gmail.com";

if(isset($_POST['submit'])){

$mail = new PHPMailer\PHPMailer\PHPMailer;

$mail->isSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "myemail@gmail.com";
$mail->Password = "password";
$mail->SMTPSecure = "tls";
$mail->Port = 587;


$mail->From = $email_from;
$mail->FromName = $name;
$mail->addAddress($email_to);

$mail->addReplyTo($email_from);
$mail->Subject = "Info";
$mail->Body = $message;


if ($_POST["submit"]){
    if(!$mail->send()){
        echo "Mailer error: " . $mail->ErrorInfo;
    }
    else{
        echo "Message sent successfully";
    }

}

}

因为它给了我HTTP ERROR 500,所以我决定研究GoDaddy提供的错误日志。这是错误:

[13-Dec-2018 19:33:13 UTC] PHP Fatal error: require_once(): Failed opening required '/home/namesearch/public_html/vendor/composer/autoload_real.php' (include_path='.:/opt/alt/php56/usr/share/pear:/opt/alt/php56/usr/share/php') in /home/namesearch/public_html/vendor/autoload.php on line 5

请帮助!!!我查找了无数解决方案,但我不知道如何解决。我什至尝试将路径设置为:/home/namesearch/public_html/vendor/composer/autoload_real.php/home/namesearch/public_html/vendor/composer/autoload.php,但没有任何效果。

2 个答案:

答案 0 :(得分:1)

我在配置胡须上也遇到了类似的问题,因此希望对您有所帮助。我的问题是这条线:

require_once "vendor/autoload.php";

没有选择正确的PHP包含路径。

在供应商的PHP包含路径之前,将文件夹的绝对路径添加一级。 将此代码放在要求之前。

$includePath = get_include_path() . ";ABSOLUTE PATH OF FOLDER ONE LEVEL BELOW VENDOR";
set_include_path($includePath);

答案 1 :(得分:1)

我在这里添加@ h2oooooo的评论。当我刚开始学习作曲家时,这让我发疯了。如上所述,请确保您已上传了所有依赖项,然后更新了自动加载文件。但是,这正是这样做的方法:

1)在本地环境中转到项目的根目录。 2)然后运行composer update 3)我建议再次上传整个项目,除非您使用filezilla文件夹比较来显示哪些文件不同,否则很难确定。

如果您要从git仓库上传项目,请再次检查.gitignore文件,它不会像默认情况下那样忽略/ vendor文件夹。