Я работаю над Login-Formular
для серверов Linux на базе PHP. Требования заключаются в том, что каждый пользователь может войти в систему только со своей учетной записью Unix. Я читал о PAM-модуле, но не могу его запустить.
Использование lighttpd в качестве веб-сервера на Ubuntu16.04. Журнал ошибок предоставляет мне:
2018-03-06 09:17:19: (mod_fastcgi.c.2695) FastCGI-stderr: PHP message: PHP Fatal error: Uncaught Error: Call to undefined function pam_auth() in /var/www/html/example2/login.php:36
2018-03-06 09:17:19: (mod_fastcgi.c.2695) FastCGI-stderr: Stack trace:
2018-03-06 09:17:19: (mod_fastcgi.c.2695) FastCGI-stderr: #0 {main}
2018-03-06 09:17:19: (mod_fastcgi.c.2695) FastCGI-stderr: thrown in /xxx/xxx/xxx/xxxx/login.php on line 36
минимальный вид на login.php
<?php
if(isset($_POST['submit'])) {
$username = $_POST['username']; $password = $_POST['password'];
if(pam_auth($username, $password)) {
$_SESSION['login'] = true; header('LOCATION:overview.php'); die();
} else {
$errorMsg = "Username or Password is incorrect.";
}
}
?>
Я добавил в /etc/php/7.0/fpm/php.ini:
pam.servicename = "php";
и создал: /etc/pam.d/php
auth sufficient /lib/security/pam_pwdb.so shadow nodelay
account sufficient /lib/security/pam_pwdb.so
Нужно ли что-то включать в мой login.php? Или что еще мне здесь не хватает? Мне не разрешено использовать другие системы, такие как LDAP, DB и т. Д.
Спасибо
Задача ещё не решена.
Других решений пока нет …