簡體   English   中英

php7.4 opcache.preload - fpm 啟動時出錯

[英]php7.4 opcache.preload - Errors on fpm start

我正在升級到 php7.4 並希望利用新的 opcache 預加載。

當我service php7.4-fpm start ,出現以下錯誤:

NOTICE: PHP message: PHP Warning:  PHP Startup: failed to open stream: Permission denied in Unknown on line 0
NOTICE: PHP message: PHP Fatal error:  PHP Startup: Failed opening required '/mnt/a/b/c/opcachePreload.php' (include_path='.:/usr/share/php:/mnt/a/b/c:/mnt/a/b/d') in Unknown on line 0
php7.4-fpm.service: Main process exited, code=exited, status=70/n/a
Failed to start The PHP 7.4 FastCGI Process Manager.

我的fpm/php.ini包括以下 opcache 設置:

include_path              = ".:/usr/share/php:/mnt/a/b/c"

opcache.save_comments           = 1
opcache.max_accelerated_files   = 7963
opcache.interned_strings_buffer = 16
opcache.fast_shutdown           = 1
opcache.revalidate_freq         = 0

opcache.validate_timestamps     = 0
opcache.memory_consumption      = 128
opcache.preload                 = /mnt/a/b/c/opcachePreload.php
opcache.preload_user            = www-data

我試過讓opcachePreload.php只包含<?php並且錯誤仍然發生,通常它包含這樣的東西,在數組中有幾個絕對路徑:

<?php
declare(strict_types=1);

$scriptsArr = [
    'path',
    'path',
];
foreach ($scriptsArr as $fileStr) {
    opcache_compile_file($fileStr);
}

我已經嘗試了一系列不同級別的文件權限( ls -l /mnt/a/b/c/opcachePreload.php ,由 root 擁有),目前ls -l /mnt/a/b/c/opcachePreload.php顯示:

-rwxrwxrwx 1 www-data www-data 336 Dec 26 15:11 /mnt/a/b/c/opcachePreload.php

是文件權限問題,還是配置沖突,還是php7.4錯誤,還是其他什么?

opcache.preload是否被解釋為某種相對路徑而不是絕對路徑? (我試過opcache.preload = ./opcachePreload.php

我還能嘗試什么?

嘗試將您的opcachePreload.php放入例如/var/www/html並將opcache.preload更改為

opcache.preload = /var/www/html/opcachePreload.php

如果可行,則www-data無權訪問/mnt/a/b/c/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM