glpi-project / glpi

GLPI is a Free Asset and IT Management Software package, Data center management, ITIL Service Desk, licenses tracking and software auditing.
https://glpi-project.org
GNU General Public License v3.0
4.08k stars 1.27k forks source link

The stream or file "/var/www/glpi/files/_log/php-errors.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log #14957

Closed GKurtasov closed 1 year ago

GKurtasov commented 1 year ago

Code of Conduct

Is there an existing issue for this?

Version

10.0.6

Bug description

Hello!

Almost 2 months ago we upgraded from version 9.5.7 to 10.0.6. Everything worked successfully until 06/09/2023. The first thing that happened was that the notification queue hung. When trying to send one or more tasks manually, an error appeared: The stream or file "/var/www/glpi/files/_log/php-errors.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log: *** PHP Warning (2): Undefined array key "identifier" in /var/www/glpi/src/MassiveAction.php at line 389 Backtrace : front/massiveaction.php:44 MassiveAction->__construct()

Any mass actions in GLPI caused this error associated with the "massiveaction.php" file. It is noteworthy that the "php-errors.log" file had the rights and the "root" group, although "www-data" was set everywhere during the installation of the system.

Further, when you go to the plugins / marketplace section, an error periodically appears: PHP User Warning (512): Connection error. If you are using a proxy server, set it up. (Resolving timed out after 5000 milliseconds) in /var/www/glpi/src/Toolbox.php at line 1514

Based on the first error, we changed the permissions for all files and folders to "www-data" (user/group). After this step, everything worked great. The notification queue was running, all tasks were being dispatched, bulk actions were working. But the GLPI system worked for several days and then it happened again. It is not clear what or who changes the rights back to "root". There was an assumption that this was due to the method of performing automatic actions, in our case part was performed by the "CLI" method and the other by the "GLPI" method. Changed the settings everywhere to the "GLPI" method, but that didn't help either.

The strange fact is that for more than a month everything worked properly and stopped, although there were no updates or changes in the configuration on the server.

Forgive me in advance if I filled out or provided incomplete information. This is my first time submitting a "bug report".

Relevant log output

[2023-06-20 08:17:55] glpiphplog.WARNING:   *** PHP User Warning (512): Connection error. If you are using a proxy server, set it up.(Resolving timed out after 5000 milliseconds) in /var/www/glpi/src/Toolbox.php at line 1514
  Backtrace :
  src/Toolbox.php:1514                               trigger_error()
  src/GLPINetwork.php:315                            Toolbox::callCurl()
  src/GLPINetwork.php:81                             GLPINetwork::isServicesAvailable()
  src/GLPINetwork.php:50                             GLPINetwork::showForConfig()
  src/CommonGLPI.php:689                             GLPINetwork::displayTabContentForItem()
  ajax/common.tabs.php:116                           CommonGLPI::displayStandardTab()

Page URL

No response

Steps To reproduce

No response

Your GLPI setup information

System, installation and configuration information

GLPI 10.0.6 ( => /var/www/glpi)
Installation mode: TARBALL
Current language:ru_RU

Server

Operating system: Linux support.acticomp.ru 4.18.0-492.el8.x86_64 #1 SMP Tue May 9 17:56:55 UTC 2023 x86_64
PHP 8.1.20 fpm-fcgi (Core, PDO, Phar, Reflection, SPL, SimpleXML, Zend OPcache, apcu, bcmath, bz2, calendar, cgi-fcgi, ctype,
    curl, date, dom, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, intl, json, ldap, libxml, mbstring, mysqli, mysqlnd,
    openssl, pcre, pdo_mysql, pdo_sqlite, posix, session, shmop, sockets, sodium, sqlite3, standard, sysvmsg, sysvsem, sysvshm,
    tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib)
Setup: max_execution_time="300" memory_limit="256M" post_max_size="32M" safe_mode="" session.save_handler="files"
    upload_max_filesize="256M" 
Software: Apache/2.4.37 (centos) OpenSSL/1.1.1k ()
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Server Software: MariaDB Server
    Server Version: 10.3.28-MariaDB-log
    Server SQL Mode: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    Parameters: root@localhost/glpi
    Host info: Localhost via UNIX socket

PHP version (8.1.20) is supported.PHP version (8.1.20) is supported.
Sessions configuration is OK.Sessions configuration is OK.
Allocated memory is sufficient.Allocated memory is sufficient.
mysqli extension is installed.mysqli extension is installed.
Following extensions are installed: dom, fileinfo, json, simplexml.Following extensions are installed: dom, fileinfo, json, simplexml.
curl extension is installed.curl extension is installed.
gd extension is installed.gd extension is installed.
intl extension is installed.intl extension is installed.
libxml extension is installed.libxml extension is installed.
zlib extension is installed.zlib extension is installed.
The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.
Database engine version (10.3.28) is supported.Database engine version (10.3.28) is supported.
No files from previous GLPI version detected.No files from previous GLPI version detected.
The log file has been created successfully.The log file has been created successfully.
Write access to /var/www/glpi/files/_cache has been validated. Write access to /var/www/glpi/config has been validated. Write access to /var/www/glpi/files/_cron has been validated. Write access to /var/www/glpi/files has been validated. Write access to /var/www/glpi/files/_dumps has been validated. Write access to /var/www/glpi/files/_graphs has been validated. Write access to /var/www/glpi/files/_lock has been validated. Write access to /var/www/glpi/files/_pictures has been validated. Write access to /var/www/glpi/files/_plugins has been validated. Write access to /var/www/glpi/files/_rss has been validated. Write access to /var/www/glpi/files/_sessions has been validated. Write access to /var/www/glpi/files/_tmp has been validated. Write access to /var/www/glpi/files/_uploads has been validated.Write access to /var/www/glpi/files/_cache has been validated.
Write access to /var/www/glpi/config has been validated.
Write access to /var/www/glpi/files/_cron has been validated.
Write access to /var/www/glpi/files has been validated.
Write access to /var/www/glpi/files/_dumps has been validated.
Write access to /var/www/glpi/files/_graphs has been validated.
Write access to /var/www/glpi/files/_lock has been validated.
Write access to /var/www/glpi/files/_pictures has been validated.
Write access to /var/www/glpi/files/_plugins has been validated.
Write access to /var/www/glpi/files/_rss has been validated.
Write access to /var/www/glpi/files/_sessions has been validated.
Write access to /var/www/glpi/files/_tmp has been validated.
Write access to /var/www/glpi/files/_uploads has been validated.
The following directories should be placed outside "/var/www/glpi": ‣ "/var/www/glpi/files" ("GLPI_VAR_DIR") ‣ "/var/www/glpi/config" ("GLPI_CONFIG_DIR") You can ignore this suggestion if you are certain that these directories are not accessible through your web server.The following directories should be placed outside "/var/www/glpi":
‣ "/var/www/glpi/files" ("GLPI_VAR_DIR")
‣ "/var/www/glpi/config" ("GLPI_CONFIG_DIR")
You can ignore this suggestion if you are certain that these directories are not accessible through your web server.
For security reasons, SELinux mode should be Enforcing.For security reasons, SELinux mode should be Enforcing.
Sessions configuration is secured.Sessions configuration is secured.
exif extension is installed.exif extension is installed.
ldap extension is installed.ldap extension is installed.
openssl extension is installed.openssl extension is installed.
zip extension is installed.zip extension is installed.
bz2 extension is installed.bz2 extension is installed.
Zend OPcache extension is installed.Zend OPcache extension is installed.
Following extensions are installed: ctype, iconv, mbstring, sodium.Following extensions are installed: ctype, iconv, mbstring, sodium.
Write access to /var/www/glpi/marketplace has been validated.Write access to /var/www/glpi/marketplace has been validated.
Timezones seems loaded in database.Timezones seems loaded in database.

GLPI constants

GLPI_ROOT: "/var/www/glpi"
GLPI_CONFIG_DIR: "/var/www/glpi/config"
GLPI_VAR_DIR: "/var/www/glpi/files"
GLPI_MARKETPLACE_DIR: "/var/www/glpi/marketplace"
GLPI_USE_CSRF_CHECK: "1"
GLPI_CSRF_EXPIRES: "7200"
GLPI_CSRF_MAX_TOKENS: "100"
GLPI_USE_IDOR_CHECK: "1"
GLPI_IDOR_EXPIRES: "7200"
GLPI_ALLOW_IFRAME_IN_RICH_TEXT: false
GLPI_SERVERSIDE_URL_ALLOWLIST: ["/^(https?|feed):\\/\\/[^@:]+(\\/.*)?$/"]
GLPI_TELEMETRY_URI: "https://telemetry.glpi-project.org"
GLPI_INSTALL_MODE: "TARBALL"
GLPI_NETWORK_MAIL: "glpi@teclib.com"
GLPI_NETWORK_SERVICES: "https://services.glpi-network.com"
GLPI_MARKETPLACE_ALLOW_OVERRIDE: true
GLPI_MARKETPLACE_MANUAL_DOWNLOADS: true
GLPI_USER_AGENT_EXTRA_COMMENTS: ""
GLPI_DISABLE_ONLY_FULL_GROUP_BY_SQL_MODE: "1"
GLPI_AJAX_DASHBOARD: "1"
GLPI_CALDAV_IMPORT_STATE: 0
GLPI_DEMO_MODE: "0"
GLPI_CENTRAL_WARNINGS: "1"
GLPI_DOC_DIR: "/var/www/glpi/files"
GLPI_CACHE_DIR: "/var/www/glpi/files/_cache"
GLPI_CRON_DIR: "/var/www/glpi/files/_cron"
GLPI_DUMP_DIR: "/var/www/glpi/files/_dumps"
GLPI_GRAPH_DIR: "/var/www/glpi/files/_graphs"
GLPI_LOCAL_I18N_DIR: "/var/www/glpi/files/_locales"
GLPI_LOCK_DIR: "/var/www/glpi/files/_lock"
GLPI_LOG_DIR: "/var/www/glpi/files/_log"
GLPI_PICTURE_DIR: "/var/www/glpi/files/_pictures"
GLPI_PLUGIN_DOC_DIR: "/var/www/glpi/files/_plugins"
GLPI_RSS_DIR: "/var/www/glpi/files/_rss"
GLPI_SESSION_DIR: "/var/www/glpi/files/_sessions"
GLPI_TMP_DIR: "/var/www/glpi/files/_tmp"
GLPI_UPLOAD_DIR: "/var/www/glpi/files/_uploads"
GLPI_INVENTORY_DIR: "/var/www/glpi/files/_inventories"
GLPI_NETWORK_REGISTRATION_API_URL: "https://services.glpi-network.com/api/registration/"
GLPI_MARKETPLACE_PLUGINS_API_URI: "https://services.glpi-network.com/api/glpi-plugins/"
GLPI_I18N_DIR: "/var/www/glpi/locales"
GLPI_VERSION: "10.0.6"
GLPI_SCHEMA_VERSION: "10.0.6"
GLPI_MARKETPLACE_PRERELEASES: false
GLPI_MIN_PHP: "7.4.0"
GLPI_MAX_PHP: "8.3.0"
GLPI_YEAR: "2023"

Libraries

htmlawed/htmlawed version 1.2.9 in (/var/www/glpi/vendor/htmlawed/htmlawed)
phpmailer/phpmailer version 6.6.0 in (/var/www/glpi/vendor/phpmailer/phpmailer/src)
simplepie/simplepie version 1.5.8 in (/var/www/glpi/vendor/simplepie/simplepie/library)
tecnickcom/tcpdf version 6.6.2 in (/var/www/glpi/vendor/tecnickcom/tcpdf)
michelf/php-markdown in (/var/www/glpi/vendor/michelf/php-markdown/Michelf)
true/punycode in (/var/www/glpi/vendor/true/punycode/src)
iamcal/lib_autolink in (/var/www/glpi/vendor/iamcal/lib_autolink)
sabre/dav in (/var/www/glpi/vendor/sabre/dav/lib/DAV)
sabre/http in (/var/www/glpi/vendor/sabre/http/lib)
sabre/uri in (/var/www/glpi/vendor/sabre/uri/lib)
sabre/vobject in (/var/www/glpi/vendor/sabre/vobject/lib)
laminas/laminas-i18n in (/var/www/glpi/vendor/laminas/laminas-i18n/src)
laminas/laminas-servicemanager in (/var/www/glpi/vendor/laminas/laminas-servicemanager/src)
monolog/monolog in (/var/www/glpi/vendor/monolog/monolog/src/Monolog)
sebastian/diff in (/var/www/glpi/vendor/sebastian/diff/src)
donatj/phpuseragentparser in (/var/www/glpi/vendor/donatj/phpuseragentparser/src/UserAgent)
elvanto/litemoji in (/var/www/glpi/vendor/elvanto/litemoji/src)
symfony/console in (/var/www/glpi/vendor/symfony/console)
scssphp/scssphp in (/var/www/glpi/vendor/scssphp/scssphp/src)
laminas/laminas-mail in (/var/www/glpi/vendor/laminas/laminas-mail/src/Protocol)
laminas/laminas-mime in (/var/www/glpi/vendor/laminas/laminas-mime/src)
rlanvin/php-rrule in (/var/www/glpi/vendor/rlanvin/php-rrule/src)
blueimp/jquery-file-upload in (/var/www/glpi/vendor/blueimp/jquery-file-upload/server/php)
ramsey/uuid in (/var/www/glpi/vendor/ramsey/uuid/src)
psr/log in (/var/www/glpi/vendor/psr/log/Psr/Log)
psr/simple-cache in (/var/www/glpi/vendor/psr/simple-cache/src)
psr/cache in (/var/www/glpi/vendor/psr/cache/src)
league/csv in (/var/www/glpi/vendor/league/csv/src)
mexitek/phpcolors in (/var/www/glpi/vendor/mexitek/phpcolors/src/Mexitek/PHPColors)
guzzlehttp/guzzle in (/var/www/glpi/vendor/guzzlehttp/guzzle/src)
guzzlehttp/psr7 in (/var/www/glpi/vendor/guzzlehttp/psr7/src)
glpi-project/inventory_format in (/var/www/glpi/vendor/glpi-project/inventory_format/lib/php)
wapmorgan/unified-archive in (/var/www/glpi/vendor/wapmorgan/unified-archive/src)
paragonie/sodium_compat in (/var/www/glpi/vendor/paragonie/sodium_compat/src)
symfony/cache in (/var/www/glpi/vendor/symfony/cache)
html2text/html2text in (/var/www/glpi/vendor/html2text/html2text/src)
symfony/css-selector in (/var/www/glpi/vendor/symfony/css-selector)
symfony/dom-crawler in (/var/www/glpi/vendor/symfony/dom-crawler)
twig/twig in (/var/www/glpi/vendor/twig/twig/src)
twig/string-extra in (/var/www/glpi/vendor/twig/string-extra)
symfony/polyfill-ctype not found
symfony/polyfill-iconv not found
symfony/polyfill-mbstring not found
symfony/polyfill-php80 not found
symfony/polyfill-php81 not found
symfony/polyfill-php82 in (/var/www/glpi/vendor/symfony/polyfill-php82)

Plugins list

    barcode              Name: Barcode                        Version: 2.7.1      State: Enabled                                 
        Install Method: Marketplace
    customcode           Name: CustomCode                     Version: 0.0.1      State: Enabled                                 
        Install Method: Manual
    formcreator          Name: Form Creator                   Version: 2.13.6     State: Enabled                                 
        Install Method: Marketplace
    fusioninventory      Name: FusionInventory                Version: 10.0.6+1.0 State: Enabled                                 
        Install Method: Manual
    gappessentials       Name: Gapp Essentials                Version: 2.1.2      State: Enabled                                 
        Install Method: Marketplace
    geninventorynumber   Name: Inventory number generation    Version: 2.8.3      State: Enabled                                 
        Install Method: Marketplace
    room                 Name: Rooms                          Version: 3.1.3      State: Enabled                                 
        Install Method: Manual
    fields              Name: Additional fields           Version: 1.20.6 State: Enabled
        Install Method: Marketplace
    news           Name: Alerts           Version: 1.12.0 State: Enabled
        Install Method: Marketplace
    dashboard           Name: Reports panel           Version: 1.0.3 State: Enabled
        Install Method: Manual
    behaviors           Name: Behavior           Version: 2.7.2 State: Enabled
        Install Method: Marketplace
    printercounters           Name: Printer counters           Version: 2.0.0 State: Installed / not activated
        Install Method: Marketplace
    tag           Name: Tag Management           Version: 2.11.2 State: Enabled
        Install Method: Marketplace

Anything else?

No response

trasher commented 1 year ago

10.0.6

Please update to latest version.

[...] It is noteworthy that the "php-errors.log" file had the rights and the "root" group, although "www-data" was set everywhere during the installation of the system.

You ran crontab as root user. GLPI does not change files owners...

[...] Further, when you go to the plugins / marketplace section, an error periodically appears: PHP User Warning (512): Connection error. If you are using a proxy server, set it up. (Resolving timed out after 5000 milliseconds) in /var/www/glpi/src/Toolbox.php at line 1514

Still not a GLPI issue, but probably a network one.

github-actions[bot] commented 1 year ago

This issue has been closed as we only track bugs here.

You can get community support on forums or you can consider taking a subscription to get professional support. You can also contact GLPI editor team directly.

GKurtasov commented 1 year ago

Please update to the latest version.

We tried and unfortunately, the update does not solve the problem.

You have started crontab as root user. GLPI does not change file owners...

"cron" is not running, more precisely, now in the settings the execution is inside GLPI, in other words, all automatic actions have a method of execution - "GLPI".

Still not a GLPI problem, but probably a network one.

This error also goes away with everyone when the user/group is exposed to "www-data"

trasher commented 1 year ago

It's requested to write english only.

GKurtasov commented 1 year ago

It's requested to write english only.

Sorry, auto translation. Already corrected the message

VasiliyMooduckovich commented 2 months ago

well when u getting support like that i guess i consider downgrade instead of an upgrade