我正在研究基于PHP的Linux服务器Login-Formular
。要求是每个用户只能使用他的Unix帐户登录。我已经阅读过关于PAM模块的内容,但我无法让它运行。
在ubuntu16.04上使用lighttpd作为网络服务器。错误日志为我提供了:
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 minimal view
<?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等
由于