• Hej!

    Jag har en WP multisite miljö som jag administrerar via cPanel. Där har jag valt PHP 8.3 till samtliga aktiva sidor. Inne i WordPress Dashboard står det dock PHP 7.4.33 överallt. Vad kan detta bero på?

    /LS

Visar 1 svar - 1 till 15 (av 25 totalt)
  • Moderator tobifjellner (Tor-Bjorn “Tobi” Fjellner)

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Jag tror att värdet du ser i WordPress är det korrekta.

    Kolla om det kanske finns några kommandon som laddar den äldre PHP-versionen i .htaccess, php.ini, httpd.conf eller liknande.

    Trådstartare lensv

    (@lensv)

    OK. Är det bland huvudwebbplatsens filer som jag ska söka då (eller måste jag leta även i de underliggande webbsajterna)? Kan jag bara ta bort dylika rader/kommandon om jag hittar några eller sabbar jag saker då?

    Moderator tobifjellner (Tor-Bjorn “Tobi” Fjellner)

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Tekniskt är en WordPress ”multisite” en enda webbplats, som styr alla inkommande förfrågningar till samma huvudinstallation.

    Om en utvecklare eller webmaster styrt om webbplatsen till en äldre PHP-version kan anledningen vara att hen inte ville gå in och lösa kompatibilitetsproblem där något tillägg eller tema anropar borttagna eller förändrade PHP-funktioner.

    Om multi-webbplatsen kan tåla att vara nere någon timme kan du prova att byta PHP-version och kolla vad som händer. Jag skulle aktivera loggning av PHP-fel först för att hitta ledtrådar till var det blir fel. (Se https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/ )

    Om nätverket helst bör hållas igång kanske du kan prova att klona det till en staging-miljö.

    Börja i vilket fall som helst med att ta ordentlig backup på allting.

    Och stäng av felsökningen när den inte längre behövs. Du vill inte att angripare ska kunna sniffa fram fel-loggar som direkt pekar på eventuell föråldrad kod.

    Trådstartare lensv

    (@lensv)

    Jag kollade .htaccess i rotkatalogen (i /public_html) och den ser lite skum ut…

    RewriteOptions inherit
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]

    # uploaded files
    RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule . index.php [L]

    # php -- BEGIN cPanel-generated handler, do not edit
    # Set the “ea-php56” package as the default “PHP” programming language.
    <IfModule mime_module>
    AddHandler application/x-httpd-ea-php56___lsphp .php .php5 .phtml
    </IfModule>
    # php -- END cPanel-generated handler, do not edit

    Som synes nämns PHP 5. Det är dock PHP 7 som visas inne i WordPress (och PHP 8 i cPanel). Hur hänger det ihop?

    Moderator tobifjellner (Tor-Bjorn “Tobi” Fjellner)

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Intressant.

    Jag kan tänka mig olika varianter.

    Kanske detta kommando pekar på några filer som i själva verket ”säkerhetsuppdaterats” från 5.6 till 7.4.

    Kanske det finns avvikande inställningar i någon överordnad eller underordnad katalog (även om rewrite-reglerna ser ut att vara normala).

    Kanske webbserverns konfigurationsparametrar är hårdkodade till 7.4 och ignorerar försök att välja specifika PHP-versioner via cpanel och/eller .htaccess. Kolla med webbhotellet.

    Trådstartare lensv

    (@lensv)

    Det är enl. webbhotellets egna anvisningar som jag har försökt göra ändringarna i cPanel. Att de skulle ha hårdkodat något känns således inte särskilt sannolikt, men om alt.1 eller 2 skulle vara orsaken… Var ska jag börja leta (vilka platser och vilka filer ska jag fokusera på)?

    Moderator tobifjellner (Tor-Bjorn “Tobi” Fjellner)

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Titta på filer som heter saker i stil med ini, conf etc. i den publika rotkatalogen, men också i eventuella privata kataloger ovanför den publika roten.

    Trådstartare lensv

    (@lensv)

    /public_html/user.ini ser misstänkt ut… Något man kan editera?

    ; cPanel-generated php ini directives, do not edit
    ; Manual editing of this file may result in unexpected behavior.
    ; To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
    ; For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)

    [PHP]
    display_errors = Off
    max_execution_time = 3000
    max_input_time = 6000
    max_input_vars = 1000
    memory_limit = 1024M
    post_max_size = 1024M
    session.gc_maxlifetime = 1440
    session.save_path = "/var/cpanel/php/sessions/ea-php74"
    upload_max_filesize = 2048M
    zlib.output_compression = Off

    Helst skulle jag dock vilja undvika att hårdkoda specifika filer. Det bästa vore såklart att kunna sköta sådana här saker i administrationsgränssnittet (cPanel).

    Trådstartare lensv

    (@lensv)

    En ny iakttagelse… På alla andra platser som jag kan hitta .user.ini finns även php.ini (med till synes identiskt innehåll), men inte i /public_html. Där finns enbart .user.ini. Det verkar dessutom endast vara där som det finns en referens till PHP 7.4.

    För att testa om filen alls behövs döpte jag om den till .user.ini_OLD, men det det blev ingen skillnad. Frågan är om php.ini behöver finnas i samma katalog för att det ska bli rätt?

    • Det här svaret redigerades för 2 månader sedan av lensv.
    Moderator tobifjellner (Tor-Bjorn “Tobi” Fjellner)

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Nu handlar den här tråden inte längre om WordPress.
    Jag har ingen aning om vilken variant av Apache som körs eller hur webbhotellets miljö ser ut. Jag vet inte ens vilket webbhotell det gäller. Så du får väl prova runt och kanske fråga deras support.

    När jag googlar runt verkar det som om php.ini och user.ini i princip fyller samma funktion.

    Trådstartare lensv

    (@lensv)

    Oj, då ber jag om ursäkt för att jag frågade. Jag tänkte mest att det kan finnas någon mer vänlig själ här som har erfarenheter av PHP, men det kanske det inte gör?

    Moderator tobifjellner (Tor-Bjorn “Tobi” Fjellner)

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Jag tror att jag hittat en liten ledtråd.

    https://docs.cpanel.net/ea4/php/about-php/ säger ”EasyApache 4 supports PHP version 7.4 and PHP 8.1 through 8.5.”

    Så OM du begär en äldre version kommer antagligen den äldsta som stöds att hämtas.

    Kan du prova att skapa en fil ”mintestfil.php” med följande innehåll:

    <?php
    phpinfo();

    och lägga den i katalogen där WordPress finns?

    När du kör den bör du kunna se vilken eller vilka konfigurationsfiler som körts, mm.

    Trådstartare lensv

    (@lensv)

    Tnx!

    Jag har skapat filen och lagt den i /public_html, men hur exekverar jag den?

    Som du märker är jag inte helt hemma i den här miljön 😉

    Moderator tobifjellner (Tor-Bjorn “Tobi” Fjellner)

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Du besöker helt enkelt filens URL från en webbläsare. 🙂 https://min.domän/mintestfil.php, typ.

    Trådstartare lensv

    (@lensv)

    Nu lyckades jag. Det är helt klart 7.4 som körs, men frågan är varifrån den hämtar informationen? Det var rätt mycket output från filen, men jag klistrar in det specifika PHP-avsnittet…


    Core

    PHP Version 7.4.33
    Directive Local Value Master Value
    allow_url_fopen On On
    allow_url_include Off Off
    arg_separator.input & &
    arg_separator.output & &
    auto_append_file no value no value
    auto_globals_jit On On
    auto_prepend_file no value no value
    browscap no value no value
    default_charset UTF-8 UTF-8
    default_mimetype text/html text/html
    disable_classes no value no value
    disable_functions no value no value
    display_errors Off Off
    display_startup_errors Off Off
    doc_root no value no value
    docref_ext no value no value
    docref_root no value no value
    enable_dl On On
    enable_post_data_reading On On
    error_append_string no value no value
    error_log error_log error_log
    error_prepend_string no value no value
    error_reporting 32767 32767
    expose_php On On
    extension_dir /opt/alt/php74/usr/lib64/php/modules /opt/alt/php74/usr/lib64/php/modules
    file_uploads On On
    hard_timeout 2 2
    highlight.comment #FF8000 #FF8000
    highlight.default #0000BB #0000BB
    highlight.html #000000 #000000
    highlight.keyword #007700 #007700
    highlight.string #DD0000 #DD0000
    html_errors On On
    ignore_repeated_errors Off Off
    ignore_repeated_source Off Off
    ignore_user_abort Off Off
    implicit_flush Off Off
    include_path .:/opt/alt/php74/usr/share/pear .:/opt/alt/php74/usr/share/pear
    input_encoding no value no value
    internal_encoding no value no value
    log_errors On On
    log_errors_max_len 1024 1024
    mail.add_x_header Off Off
    mail.force_extra_parameters no value no value
    mail.log no value no value
    max_execution_time 1000 30
    max_file_uploads 20 20
    max_input_nesting_level 64 64
    max_input_time 600 -1
    max_input_vars 1000 1000
    max_multipart_body_parts -1 -1
    memory_limit 128M 128M
    open_basedir no value no value
    output_buffering 4096 4096
    output_encoding no value no value
    output_handler no value no value
    post_max_size 128M 8M
    precision 14 14
    realpath_cache_size 4096K 4096K
    realpath_cache_ttl 120 120
    register_argc_argv Off Off
    report_memleaks On On
    report_zend_debug On On
    request_order GP GP
    sendmail_from no value no value
    sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
    serialize_precision -1 -1
    short_open_tag On On
    SMTP localhost localhost
    smtp_port 25 25
    sys_temp_dir no value no value
    syslog.facility LOG_USER LOG_USER
    syslog.filter no-ctrl no-ctrl
    syslog.ident php php
    track_errors Off Off
    unserialize_callback_func no value no value
    upload_max_filesize 256M 4M
    upload_tmp_dir no value no value
    user_dir no value no value
    user_ini.cache_ttl 300 300
    user_ini.filename .user.ini .user.ini
    variables_order EGPCS EGPCS
    xmlrpc_error_number 0 0
    xmlrpc_errors Off Off
    zend.assertions 1 1
    zend.detect_unicode On On
    zend.enable_gc On On
    zend.exception_ignore_args Off Off
    zend.multibyte Off Off
    zend.script_encoding no value no value
    zend.signal_check Off Off

    *Edit: Jag ser följande path här ovan…

    include_path	.:/opt/alt/php74/usr/share/pear	.:/opt/alt/php74/usr/share/pear

    Jag kan dock inte se /opt över huvud taget i katalogsstrukturen. Ligger den möjligtvis utanför den miljö som jag kommer åt?

    • Det här svaret redigerades för 2 månader sedan av lensv.
    • Det här svaret redigerades för 2 månader sedan av lensv.
Visar 1 svar - 1 till 15 (av 25 totalt)

Du måste vara inloggad för att svara på detta ämne.