O nutnosti smazat install.php jsem se poučil už před lety, když jsem zprovoznil (na VPSku) můj vůbec první WordPress. Tento soubor jsem nesmazal a někdo (naštěstí hodný) do mě oprávněně rýpnul tím, že vlezl do mého webu a přidal tam článek.
WordPress bohužel po instalaci stále nemaže install.php a je s tím spojená jedna velmi nepříjemná letitá chyba.
Pokud dojde k výpadku databáze, tak by se měla objevit stránka s chybovou informací o “výpadku”, ale zaručeno to není. Zcela běžně se místo toho objeví právě install.php – a ten umožňuje “nainstalovat” WordPress – což obnáší i to, že se vám při vhodném načasování někdo může vloupat do vašeho webu a ukrást ho.
Pokud by vše fungovalo jak mělo, tak install.php už nebezpečný není, WordPress to má už ošetřené a při pokusu o otevření se zobrazuje to, co vidíte v obrázku v záhlaví.
Smazat
Poté co dokončíte instalaci byste tedy rozhodně install.php měli smazat, nebo, ještě lépe, ho nahradit něčím bezpečným. Smažete-li ho a dojde k výpadku databáze, tak váš web bude vyhazovat “TOO MANY REDIRECTS”, takže je vhodnější ho nahradit.
Install.php najdete ve složce wp-admin, takže stačí použít FTP a postarat se o nápravu. Buď smazáním souboru, nebo, chcete-li si ho nechat, tak přejmenováním – třeba na install.php.original
Háček je i v tom, že po aktualizaci WordPressu se vám tam install.php opět objeví. Aktualizace prostě zjistí chybějící soubor a dá ho tam.
Zablokujte přístup
Pokud nechcete mazat, tak můžete do .htaccess přidat následující
# PROTECT install.php
<Files install.php>
Order Allow,Deny
Deny from all
Satisfy all
</Files>
Dejte tam náhradu, vlastní kód
Případně, třetí elegantní řešení, můžete nahradit PHP kódem, který v případě výpadku bude zobrazovat 503 chybu (v Chrome 500 chybu).
<?php header("HTTP/1.1 503 Service Temporarily Unavailable"); ?>
<?php header("Status 503 Service Temporarily Unavailable"); ?>
<?php header("Retry-After 3600"); // 60 minutes ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Error Establishing Database Connection</title>
</head>
<body>
<h1>Error Establishing Database Connection</h1>
<p>We are currently experiencing database issues. Please check back shortly. Thank you.</p>
</body>
</html>
Případně, varianta, která vám pošle upozornění (musíte doplnit váš e-mail, nezapomente).
<?php
/*
WordPress install.php replacement page
@ https://perishablepress.com/important-security-fix-for-wordpress/
Place in /wp-admin/ directory
*/
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 3600'); // 3600 seconds = 60 minutes
mail('semdejtevas@emial', 'Database Error', 'There is a problem with the database!');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Site offline for maintenance</title>
</head>
<body>
<h1>We'll be right back..</h1>
<p>The site is currently offline for maintenance.</p>
</body>
</html>
Pomůže WordFence?
WordFence blokuje snahu o otevření install.php, ale má to jeden háček. Při skutečném výpadku databáze to neudělá. Takže na toto řešení se spoléhat nemůžete.
Další tipy týkající se WordPressu
-
TIP#2807: Bit.ly zavádí reklamu a splash screen? Co s tím? Jak na vlastní zkracovač?
Bit.ly, jeden z mála původních a široce rozšířených zkracovačů adres (URI) za pár měsíců zavede zobrazování reklamy pro ty, kdo kliknou na bit-ly odkaz. Doposud to fungovalo aniž by kliknutí bylo jakkoliv…
-
TIP#2799: Sdílíte nějaký odkaz? Měli byste ho vyčistit od věcí, které tam nemají zůstat
Zapeklitá záležitost, něco jste si otevřeli na Internetu nebo v aplikaci a chcete to nasdílet pomocí odkazu (link). V mnoha případech se k odkazu samotnému přidá řada dalších zbytečných věcí. Někde, třeba…
-
TIP#2791: Mám na webu WordPress v “anglické” verzi, je bezpečné přeinstalovat (změnit) na cs_CZ (či opačně)?
Může se vám to stát velmi lehce a možná si toho ani nevšimnete. Máte českou verzi WordPressu a při některé z aktualizaci si nevšimnete, že vám vlastně nenabízí českou, ale anglickou. To…
-
TIP#2753: Proč mi aktualizace WordPressu cs_CZ (českého) nabízí aktualizace na en_US?
Právě teď je to aktuální. Objevil se WordPress 6.6 a pro všechny weby s cs_CZ to nabízí (a vlastně i dost vnucuje) aktualizaci na tuto verzi, jenže en_US.
-
TIP#2733: Vývojová prostředí pro lokální vývoj pro WordPress (a webdesign vůbec)
Lokální vývojové prostředí vám umožní na vašem lokálním stroji mít vše co potřebujete pro provozování webu (s WordPressem, ale může to být i cokoliv jiného) – tedy web server (Apache, například), SQL…
-
TIP#2592: Ještě stále máte na webu Google AMP? Je to zlo, rychle s tím pryč
Je to vlastně už docela dlouho, co jsem na všech mých webech zrušil podporu Google AMP. Pak jsem delší dobu chtěl napsat tip tomu věnovaný, ale nějak to zapadlo v záplavě jiných…
-
TIP#2554: Potřebujete vyměnit obrázek v médiích na vašem WordPressu? Je nutné mít plugin
Jedna z věcí, kterou (neznámo proč) WordPress neumí přímo. Můžete nahrát média (obrázek, fotku, atd) ale když chcete nahrát upravenou verzi, tak to není možné. Přitom je to dost zásadní věc, kterou…
-
TIP#2548: Jak synchronizovat (zálohovat) web přístupný přes FTP na disk ve Windows?
Taková ta úplně klasická věc. Máte někde webový server (třeba právě jako 365tipu.cz) a je dostupný jen přes FTP (SFTP). Chcete si ho zálohovat na disk ve Windows (ať už lokální nebo…
-
TIP#2533: Jak získat štítky z WordPressu pomocí vlastního PHP
Když už byla řeč o tom jak analyzovat duplicitní štítky, tak je vhodné ještě přidat možnost jak exportovat štítky z WordPressu pomocí PHP. Předpokládá to, že máte přístup k vašemu hostingu a…
-
TIP#2514: Jak ve WordPressu deaktivovat plugin bez přístupu k WP-Admin
Tohle je snadné, ale musíte mít přístup k vašemu hostingu, tedy většinou FTP/SFTP přístup, ale může to být SSH. Prostě tak, abyste se dostali k souborům.
-
TIP#2505: Uklízíte v databázi ve vašem WordPressu? Co dělat s oEmbed Cache In Post Meta
Jedna maličkost, kterou nejspíš neznáte – kdykoliv do příspěvků umístíte nějaký ten “embedovaný” obsah, tedy například video na YouTube, tak editor stáhne potřebný kód pro embed a uloží do “oEmbed Cache” pro…
-
TIP#2500: Otevírat odkazy v novém okně (záložce) či neotevírat?
Otevření odkazu v novém okně či záložce je běžná praxe na mnoha webových stránkách. Ale je to vždy správný krok? Jaká jsou rizika a výhody obou přístupů?
-
TIP#2497: Uklízíte v databázi ve vašem WordPressu? Kolik revizí příspěvků tam máte schovaných?
Typická věc vhodná k úklidu jsou revize. Každá změna v příspěvku/stránce totiž uchovává předchozí verzi. A pokud hodně opravujete, ale třeba i postupně píšete, tak těch revizí může být docela dost a…