#phpldapadmin
Вопрос:
Попытка установить phpLDAPadmin 1.2.5 с https://github.com/leenooks/phpLDAPadmin.git но столкнулся с проблемой.
С одной стороны, кажется, что он установлен (по крайней мере частично) правильно, потому что из окна ssh я могу войти в систему с помощью «elinks http://localhost/phpLDAPadmin» (или https, работает и то, и другое). Я могу нажать на ссылку «войти», а затем ввести свои учетные данные в форму. С другой стороны, когда я хочу открыть сайт на своем рабочем ноутбуке, я могу сколько угодно нажимать на ссылку для входа, но она не будет отображать форму входа. Он будет висеть на индикаторе выполнения с надписью «Загрузка логина…»
В журнале ошибок nginx не возникает ошибок, в браузере не возникает ошибок из-за тайм-аута или чего-либо еще, и я действительно не вижу ничего существенного в журнале отладки phpLDAPadmin. Но, конечно, я могу что-то упустить: -)
Любая помощь в том, чтобы заставить это работать, будет очень признательна.
Информация о системе
OS: ubuntu 20.04
Web server: nginx 1.18.0
PHP version: 7.4.3
pla version: 1.2.5
OpenLDAP/slapd: 2.4.49
A firewall on the network level will block any port 389 traffic coming from the internet (i.e. my home office) to the server, but I imagine a web interface will communicate strictly over port 443, correct?
/var/www/html/phpLDAPadmin/config/config.php
$config->custom->debug['level'] = 255;
$config->custom->debug['syslog'] = true;
$config->custom->debug['file'] = '/tmp/pla_debug.log';
$config->custom->appearance['hide_template_warning'] = true;
$servers = new Datastore();
$servers->newServer('ldap_pla');
$servers->setValue('server','name','LDAP for MYSITE');
$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array('dc=ldap,dc=MYSITE,dc=nl'));
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=admin,dc=ldap,dc=MYSITE,dc=nl');
$servers->setValue('login','bind_pass','***');
$servers->setValue('server','tls',false);
/etc/nginx/сайты с поддержкой/www.conf
# Redirect alle http naar https
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name MYSITE;
# SSL configuration
ssl_certificate /etc/letsencrypt/live/MYSITE/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/MYSITE/privkey.pem; # managed by Certbot
return 301 https://www.MYSITE$request_uri;
}
server {
listen 443 ssl default_server;
server_name www.MYSITE;
# SSL configuration
ssl_certificate /etc/letsencrypt/live/www.MYSITE/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/www.MYSITE/privkey.pem; # managed by Certbot
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include fastcgi.conf;
fastcgi_split_path_info ^(. ?.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_index index.php;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
# Logging
access_log /var/log/nginx/www_access.log;
error_log /var/log/nginx/www_error.log warn;
}
/tmp/pla_debug.log
[0.000] common(0214-001): : Application (1.2.5) initialised and starting with (a:0:{}).
[0.001] functions(0130-001): app_error_handler: Entered (8192|Function get_magic_quotes_gpc() is deprecated|/var/www/html/phpLDAPadmin/lib/common.php|299|a:18:{s:4:"_GET";a:0:{}s:5:"_POST";a:0:{}s:7:"_COOKIE";a:0:{}s:6:"_FILES";a:0:{}s:3:"app";a:8:
[0.000] ds(0684-017): Datastore::Instance: Entered ()
[0.000] ds(0651-017): Datastore::getServerList: Entered (NOARGS)
[0.000] ds(0441-017): .DS::getIndex: Entered (NOARGS|1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] ds_ldap_pla(0645-017): ldap_pla::isSessionValid: Entered (NOARGS)
[0.000] ds(0493-017): DS::inactivityTime: Entered (NOARGS)
[0.000] ds(0287-017): DS::isLoggedIn: Entered (NOARGS)
[0.000] ds(0457-017): DS::getMethod: Entered ()
[0.000] ds(0287-017): DS::isLoggedIn: Entered (user)
[0.000] ds(0457-017): DS::getMethod: Entered (user)
[0.000] ds(0133-017): DS::getAuthType: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0157-017): DS::getLogin: Entered (user)
[0.000] ds(0457-017): DS::getMethod: Entered (user)
[0.000] ds(0133-017): DS::getAuthType: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0072-017): .DS::getValue: Entered (login|bind_id)
[0.000] ds(0133-017): DS::getAuthType: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0157-017): DS::getLogin: Entered (anon)
[0.000] ds(0457-017): DS::getMethod: Entered (anon)
[0.000] hooks(0054-257): run_hook: Entered (post_session_init|a:0:{})
[0.000] hooks(0060-257): run_hook: Returning, HOOK not defined (post_session_init)
[0.000] cmd(0037-128): : Ready to render page for command [,welcome.php].
[0.000] ds(0441-017): .DS::getIndex: Entered (NOARGS|1)
[0.000] page(0030-129): page::__construct: Entered (1)
[0.000] config_default(0705-003): Config::isCommandAvailable: Entered (cmd|oslinks)
[0.000] functions(3245-001): isAjaxEnabled: Entered (NOARGS)
[0.000] page(0236-129): page::block_add: Entered (body|OBJECT:block)
[0.000] page(0369-129): page::display: Entered (NOARGS)
[0.000] page(0097-129): page::pageheader_print: Entered (NOARGS)
[0.000] page(0143-129): page::head_print: Entered (NOARGS)
[0.000] functions(0351-001): cmd_control_pane: Entered (top)
[0.000] config_default(0705-003): Config::isCommandAvailable: Entered (cmd|oslinks)
[0.000] config_default(0705-003): Config::isCommandAvailable: Entered (cmd|oslinks)
[0.000] config_default(0705-003): Config::isCommandAvailable: Entered (cmd|oslinks)
[0.000] config_default(0705-003): Config::isCommandAvailable: Entered (cmd|oslinks)
[0.000] config_default(0705-003): Config::isCommandAvailable: Entered (cmd|oslinks)
[0.000] page(0179-129): page::control_print: Entered (NOARGS)
[0.000] functions(0351-001): cmd_control_pane: Entered (main)
[0.000] config_default(0705-003): Config::isCommandAvailable: Entered (script|purge_cache)
[0.000] config_default(0705-003): Config::isCommandAvailable: Entered (script|show_cache)
[0.000] page(0207-129): page::tree: Entered (NOARGS)
[0.000] config_default(0817-003): Config::getServerList: Entered (NOARGS)
[0.000] ds(0651-017): Datastore::getServerList: Entered (1)
[0.000] config_default(0817-003): Config::getServerList: Entered (NOARGS)
[0.000] ds(0651-017): Datastore::getServerList: Entered (1)
[0.000] ds(0441-017): .DS::getIndex: Entered (NOARGS|1)
[0.000] ds(0441-017): .DS::getIndex: Entered (NOARGS|1)
[0.000] ds(0441-017): .DS::getIndex: Entered (NOARGS|1)
[0.000] Tree(0043-033): Tree::getInstance: Entered (1)
[0.000] functions(0911-001): get_cached_item: Entered (1|tree)
[0.000] functions(0921-001): get_cached_item: Returning ()
[0.000] ds(0684-017): Datastore::Instance: Entered (1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] Tree(0030-033): Tree::__construct: Entered (1)
[0.000] ds(0157-017): DS::getLogin: Entered ()
[0.000] ds(0457-017): DS::getMethod: Entered ()
[0.000] HTMLTree(0029-033): HTMLTree::draw: Entered (NOARGS)
[0.000] Tree(0096-033): Tree::getServer: Entered (NOARGS)
[0.000] ds(0684-017): Datastore::Instance: Entered (1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] HTMLTree(0161-033): HTMLTree::draw_server_name: Entered (NOARGS)
[0.000] Tree(0096-033): Tree::getServer: Entered (NOARGS)
[0.000] ds(0684-017): Datastore::Instance: Entered (1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] HTMLTree(0559-033): HTMLTree::getDepth: Entered (NOARGS)
[0.000] Tree(0096-033): Tree::getServer: Entered (NOARGS)
[0.000] ds(0684-017): Datastore::Instance: Entered (1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] ds(0287-017): DS::isLoggedIn: Entered ()
[0.000] ds(0457-017): DS::getMethod: Entered ()
[0.000] ds(0120-017): DS::getName: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (server|name)
[0.000] ds(0493-017): DS::inactivityTime: Entered (NOARGS)
[0.000] ds(0287-017): DS::isLoggedIn: Entered (NOARGS)
[0.000] ds(0457-017): DS::getMethod: Entered ()
[0.000] ds(0287-017): DS::isLoggedIn: Entered ()
[0.000] ds(0457-017): DS::getMethod: Entered ()
[0.000] ds(0133-017): DS::getAuthType: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] HTMLTree(0515-033): HTMLTree::draw_login_link: Entered (NOARGS)
[0.000] Tree(0096-033): Tree::getServer: Entered (NOARGS)
[0.000] ds(0684-017): Datastore::Instance: Entered (1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] ds(0441-017): .DS::getIndex: Entered (NOARGS|1)
[0.000] functions(1013-001): get_custom_file: Entered (1|login_form|)
[0.000] ds(0684-017): Datastore::Instance: Entered (1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] ds(0072-017): .DS::getValue: Entered (custom|pages_prefix)
[0.000] functions(1024-001): get_custom_file: Returning (login_form)
[0.000] ds(0441-017): .DS::getIndex: Entered (NOARGS|1)
[0.000] functions(3245-001): isAjaxEnabled: Entered (NOARGS)
[0.000] ds(0120-017): DS::getName: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (server|name)
[0.000] HTMLTree(0559-033): HTMLTree::getDepth: Entered (NOARGS)
[0.000] Tree(0096-033): Tree::getServer: Entered (NOARGS)
[0.000] ds(0684-017): Datastore::Instance: Entered (1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] ds(0287-017): DS::isLoggedIn: Entered ()
[0.000] ds(0457-017): DS::getMethod: Entered ()
[0.000] ds(0120-017): DS::getName: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (server|name)
[0.000] HTMLTree(0559-033): HTMLTree::getDepth: Entered (NOARGS)
[0.000] Tree(0096-033): Tree::getServer: Entered (NOARGS)
[0.000] ds(0684-017): Datastore::Instance: Entered (1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] ds(0287-017): DS::isLoggedIn: Entered ()
[0.000] ds(0457-017): DS::getMethod: Entered ()
[0.000] HTMLTree(0559-033): HTMLTree::getDepth: Entered (NOARGS)
[0.000] Tree(0096-033): Tree::getServer: Entered (NOARGS)
[0.000] ds(0684-017): Datastore::Instance: Entered (1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] ds(0287-017): DS::isLoggedIn: Entered ()
[0.000] ds(0457-017): DS::getMethod: Entered ()
[0.000] AJAXTree(0212-033): AJAXTree::draw_javascript: Entered (NOARGS)
[0.000] HTMLTree(0544-033): HTMLTree::draw_javascript: Entered (NOARGS)
[0.000] page(0297-129): page::body: Entered (NOARGS)
[0.000] page(0321-129): page::footer_print: Entered (NOARGS)
[0.000] common(0214-001): : Application (1.2.5) initialised and starting with (a:3:{s:3:"cmd";s:10:"login_form";s:9:"server_id";s:1:"1";s:4:"meth";s:4:"ajax";}).
[0.001] functions(0130-001): app_error_handler: Entered (8192|Function get_magic_quotes_gpc() is deprecated|/var/www/html/phpLDAPadmin/lib/common.php|299|a:15:{s:4:"_GET";a:3:{s:3:"cmd";s:10:"login_form";s:9:"server_id";s:1:"1";s:4:"meth";s:4:"ajax
[0.000] ds(0684-017): Datastore::Instance: Entered (1)
[0.000] ds(0694-003): Datastore::Instance: Returning instance of database (1)
[0.000] ds_ldap_pla(0645-017): ldap_pla::isSessionValid: Entered (NOARGS)
[0.000] ds(0493-017): DS::inactivityTime: Entered (NOARGS)
[0.000] ds(0287-017): DS::isLoggedIn: Entered (NOARGS)
[0.000] ds(0457-017): DS::getMethod: Entered ()
[0.000] ds(0287-017): DS::isLoggedIn: Entered (user)
[0.000] ds(0457-017): DS::getMethod: Entered (user)
[0.000] ds(0133-017): DS::getAuthType: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0157-017): DS::getLogin: Entered (user)
[0.000] ds(0457-017): DS::getMethod: Entered (user)
[0.000] ds(0133-017): DS::getAuthType: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0072-017): .DS::getValue: Entered (login|bind_id)
[0.000] ds(0133-017): DS::getAuthType: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0157-017): DS::getLogin: Entered (anon)
[0.000] ds(0457-017): DS::getMethod: Entered (anon)
[0.000] hooks(0054-257): run_hook: Entered (post_session_init|a:0:{})
[0.000] hooks(0060-257): run_hook: Returning, HOOK not defined (post_session_init)
[0.000] cmd(0037-128): : Ready to render page for command [login_form,/var/www/html/phpLDAPadmin/htdocs/login_form.php].
[0.000] ds(0441-017): .DS::getIndex: Entered (NOARGS|1)
[0.000] page(0030-129): page::__construct: Entered (1)
[0.000] ds(0431-017): DS::isReadOnly: Entered (NOARGS)
[0.000] ds(0157-017): DS::getLogin: Entered ()
[0.000] ds(0457-017): DS::getMethod: Entered ()
[0.000] config_default(0705-003): Config::isCommandAvailable: Entered (script|login_form)
[0.000] ds(0120-017): DS::getName: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (server|name)
[0.000] ds(0133-017): DS::getAuthType: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_type)
[0.000] ds(0441-017): .DS::getIndex: Entered (NOARGS|1)
[0.000] ds(0072-017): .DS::getValue: Entered (login|auth_text)
[0.000] ds(0072-017): .DS::getValue: Entered (login|attr)
[0.000] ds(0072-017): .DS::getValue: Entered (login|bind_dn_template)
[0.000] ds(0072-017): .DS::getValue: Entered (login|attr|)
[0.000] ds(0072-017): .DS::getValue: Entered (login|bind_id)
[0.000] ds_ldap_pla(0189-017): ldap_pla::isAnonBindAllowed: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (login|allowed_dns)
[0.000] ds(0072-017): .DS::getValue: Entered (login|anon_bind)
[0.000] ds_ldap_pla(0198-017): ldap_pla::isAnonBindAllowed: Returning (1)
[0.000] ds_ldap_pla(0189-017): ldap_pla::isAnonBindAllowed: Entered (NOARGS)
[0.000] ds(0072-017): .DS::getValue: Entered (login|allowed_dns)
[0.000] ds(0072-017): .DS::getValue: Entered (login|anon_bind)
[0.000] ds_ldap_pla(0198-017): ldap_pla::isAnonBindAllowed: Returning (1)
[0.000] functions(3245-001): isAjaxEnabled: Entered (NOARGS)
[0.000] page(0236-129): page::block_add: Entered (body|OBJECT:block)
[0.000] page(0334-129): page::show: Entered (BODY|1|)
[0.000] page(0297-129): page::body: Entered ()
/var/log/nginx/www_access.log | grep login
127.0.0.1 - - [14/Jun/2021:12:03:00 0200] "GET /phpLDAPadmin/htdocs/cmd.php?cmd=login_formamp;server_id=1 HTTP/1.1" 200 5097 "https://localhost/phpLDAPadmin/htdocs/index.php" "ELinks/0.13.1 (textmode; Linux 5.4.0-73-generic x86_64; 253x68-2)"
127.0.0.1 - - [14/Jun/2021:12:03:09 0200] "POST /phpLDAPadmin/htdocs/cmd.php HTTP/1.1" 302 5 "https://localhost/phpLDAPadmin/htdocs/cmd.php?cmd=login_formamp;server_id=1" "ELinks/0.13.1 (textmode; Linux 5.4.0-73-generic x86_64; 253x68-2)"
MYIPADDRESS - - [14/Jun/2021:12:12:29 0200] "GET /phpLDAPadmin/htdocs/images/default/login.png HTTP/2.0" 200 654 "https://www.MYSITE/phpLDAPadmin/htdocs/index.php" "Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/91.0.4472.80 Mobile/15E148 Safari/604.1"
MYIPADDRESS - - [14/Jun/2021:12:12:31 0200] "GET /phpLDAPadmin/htdocs/cmd.php?cmd=login_formamp;server_id=1amp;meth=ajax HTTP/2.0" 200 570 "https://www.MYSITE/phpLDAPadmin/htdocs/index.php" "Mozilla/5.0 (iPad; CPU OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/91.0.4472.80 Mobile/15E148 Safari/604.1"
MYIPADDRESS - - [14/Jun/2021:12:30:14 0200] "GET /phpLDAPadmin/htdocs/cmd.php?cmd=login_formamp;server_id=1amp;meth=ajax HTTP/2.0" 200 570 "https://www.MYSITE/phpLDAPadmin/htdocs/index.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36"
/var/log/nginx/www_error.log
Exactly nothing...