недавно я переместил веб-сервер с машины linux в контейнер докера.Это не огромный проект.Это 15-летнее настроенное веб-приложение, написанное студентами.
Что я сделал ...
Установил эти пакеты в Docker
apache2 mysql-server net-tools php php- {bcmath, bz2,intl, gd, mbstring, mysql, zip} libapache2-mod-php
wget unzip
Затем я создал базу данных и пользователя базы данных.Затем я импортировал файл дампа из исходной базы данных SQL.Внесены некоторые изменения в пути в файле config.php
. В этот момент все выглядит хорошо. В базе данных есть данные, также можно связаться с сайтом.
НО ...Веб-приложение использует LDAP-аутентификацию, но если я ввожу свои учетные данные, это приводит к внутренней внутренней ошибке 500.Поэтому я проверяю, могу ли я пинговать наш ldap-сервер с хоста -> ДА, пинг проходит успешно.Когда я ввожу не PW, он говорит -> Passwort лер!как это в файле login.php.но если я введу неправильный пароль или верный пароль, он выдаст только 500 ошибок.
В действующей системе аутентификация LDAP работает нормально.
Существуют ли пакеты, которые мне нужноустановить?Или другие хорошие советы, что я должен проверить дальше?Я больше не знаю ^^
ЗДЕСЬ ошибка после ввода учетных данных Ошибка 500 - Внутренняя ошибка сервера
ЗДЕСЬКОД ОТ login.php
<form name="login" action="index.php" method="post">
<table class="tocenter">
<tr>
<td>
<input type="hidden" name="dologin" value="1">
<table id="text">
<tr>
<td><span >Login Name:</span></td>
<td><input <?php if($_SESSION["fault"] & 1) {echo "class=\"false\" ";} ?>name="loginuser" type="text" size="20" maxlength="30" value="<?php echo $_SESSION["loginuser"]; ?>"></td>
</tr>
<tr>
<td>Passwort:</td>
<td><input <?php if($_SESSION["fault"] & 2) {echo "class=\"false\" ";} ?>name="password" type="password" size="20" maxlength="32"></td>
</tr><?php /*
<tr>
<td colspan="2"><hr></td>
</tr> */ ?>
<tr>
<td colspan="2"><input class="button" type="submit" value="Einloggen"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<?php
if($_SESSION["fault"] != 0) {
?>
<span id="delMsg" onclick="document.getElementById('fault').innerHTML = ''; document.getElementById('delMsg').style.display = 'none';"></span>
<div id="fault">
<?php
if(!($_SESSION["fault"] ^ 3)) {
?>
User-Name und Passwort leer!
<?php
} else if($_SESSION["fault"] & 1) {
?>
User-Name leer!
<?php
} else if($_SESSION["fault"] & 2) {
?>
Passwort leer!
<?php
} else if($_SESSION["fault"] & 4) {
?>
Login falsch!
<?php
} else if($_SESSION["fault"] & 8) {
?>
keine Berechtigung!
<?php
} else if($_SESSION["fault"] & 16) {
?>
LDAP ERROR!
<?php
}
?>
</div>
<?php
}
?>
<?php
if ($show_version) {
echo "<div id=\"version\">";
include("version.php");
echo "</div>";
}
?>
ЗДЕСЬ LDAP-часть
<?php
session_unset();
exit();
}
$_SESSION["fault"] = 0;
$_SESSION["loginuser"] = $_POST["loginuser"];
if ($_POST["loginuser"] == "") {
$_SESSION["fault"] = $_SESSION["fault"] | 1;
}
if ($_POST["password"] == "") {
$_SESSION["fault"] = $_SESSION["fault"] | 2;
}
if ($_SESSION["fault"] != 0) {
require("redirect.php");
}
/* log logins to file */
if (isset($loginsLog)) {
$fh = fopen($loginsLog, 'a');
if ($fh) {
fwrite($fh, $_POST["loginuser"].";".date("y-m-d H:i:s").";".$_SERVER['REMOTE_ADDR']."\n");
fclose($fh);
}
}
/*** uncomment to bypass login ***/
#$_SESSION["login"] = 2;
#require("redirect.php");
$ldap=ldap_connect($ldap_server);
if (!$ldap) {
$_SESSION["fault"] = $_SESSION["fault"] | 16;
require("redirect.php");
}
ldap_set_option($ldap,LDAP_OPT_PROTOCOL_VERSION,3) or die ("Failed to set LDAP protocol version to 3");
$ldapuser = $dn_user_pre . $_POST["loginuser"] . $dn_user;
$bind_results=@ldap_bind($ldap, $ldapuser, $_POST["password"]);
if (!$bind_results) {
if (ldap_errno($ldap) == 49 || ldap_errno($ldap) == 32)
$_SESSION["fault"] = $_SESSION["fault"] | 4;
else
$_SESSION["fault"] = $_SESSION["fault"] | 16;
require("redirect.php");
}
$r=ldap_compare($ldap, $gdn_write, $attr, $ldapuser);
if ($r === -1) {
$_SESSION["fault"] = $_SESSION["fault"] | 16;
require("redirect.php");
} elseif ($r === TRUE) {
$_SESSION["login"] = 2;
} elseif ($r === FALSE) {
$r=ldap_compare($ldap, $gdn_read, $attr, $ldapuser);
if ($r === -1) {
$_SESSION["fault"] = $_SESSION["fault"] | 16;
require("redirect.php");
} elseif ($r === TRUE) {
$_SESSION["login"] = 1;
} elseif ($r === FALSE) {
$_SESSION["fault"] = $_SESSION["fault"] | 8;
require("redirect.php");
}
}
ldap_close($ldap);
?>
Спасибо за помощь!
С наилучшими пожеланиями,
Вольфганг