Nastavení PHP

Jaké je nastavení PHP, konkrétně pro mou doménu?

Přehled nastavených funkcí PHP serveru pro vaši doménu získáte vytvořením souboru s koncovkou *.php např. "info.php" do kterého vložíte funkci:

phpinfo()

Soubor umístíte na FTP vaší domény a url otevřete ve svém webovém prohlížeči.

Na co si dát pozor při tvorbě emailů z PHP skriptů?

Důrazně doporučujeme nastudovat dokumentaci RFC 2822. Emaily, které neodpovídají specifikaci mohou být antispamovými servery vyhodnoceny jako SPAM !

Časté chyby a řešení

  1. Uvádějte korektní adresu odesilatele. E-mail s uvedenou neexistující adresou odesilatele nebude odeslán.

    • Příklad správného zápisu adresy ve skriptu: "From: info@example.com".
  2. Uvádějte obálkovou adresu odesilatele s parametrem -f (viz php dokumentace).
  3. Enkódujte správně subject. Data v hlavičce emailu nesmí obsahovat diakritiku. V případě použití diakritiky je nutné data správně zakódovat (base64, uuencode, atd.).
  4. Neodesílejte e-mail na velké množství příjemců. Při odesílání z PHP aplikace doporučujeme max. 10 příjemců na e-mail.
  5. Pokud odesíláte e-mail v HTML, důrazně doporučujeme použít MIME multipart a přidat i plain-text variantu. E-mail bez plain-text varianty bývá často odmítán antispamovými servery nebo házen do spamového koše.

Odesílání e-mailů z PHP přes funkci mail()

Funkce PHP mail() je sice podporována, nicméně s velkým rozšířením redakčních systémů ve webových prezentacích přibývá i případů zneužití domén ke spamování a není proto možné provozovat tuto službu bez bezpečnostních omezení v podobě limitů. Celkem je možné v programech Hosting90 Lite, Hosting90 a Hosting90 Plus odeslat maximalně 100 zpráv za hodinu a celkem 500 zpráv za den pomocí této funkce.

Zprávy, které vás skript nestihne v tomto časovém limitu odeslat, nejsou uloženy do fronty zpráv k pozdějšímu odeslání, je proto nutné s tímto omezením počítat při tvorbě vašich skriptů.

Berte prosím na vědomí, že funkce mail() je primárně určena pro "komunikaci webové prezentace s uživatelem". Pokud potřebujete rozesílat hromadné emaily, použijte odesílání přes SMTP za použití existujícího emailového účtu.

Odesílání e-mailů z PHP přes smtp (doporučeno)

Potřebujete-li odesílat více emailů tzv. newslettery, doporučujeme k odesílání využít SMTP server a to buď náš nebo jiného provozovatele. V případě, že využíváte náš SMTP server, lze zprávu odeslat v jednom spojení (tj. jeden email), najednou max. 100 příjemcům (včetně příjemce kopie a skryté kopie). V poli mail From je nutné uvést existující emailovou adresu odesilatele a platnou autorizaci. V opačném případě dojde k zablokování odeslání emailu. Max. počet odeslaných zpráv přes smtp je 1000 emailů na doménu za 24h.

Podporujete url_fopen a knihovnu CURL?

Direktiva allow_url_fopen je z bezpečnostních důvodů na serveru standardně zakázána. Pro dosažení stejného výsledku doporučujeme nahradit řešení ve vaší aplikaci za pomocí knihovny CURL, která je na naších serverech podporována.

Příklad možného řešení nahrazení url_fopen za pomocí CURL knihovny

V souvislosti s url_fopen se volá nejčastěji obsah pomocí direktivy file_get_contents: $obsah = file_get_contents("http://example.com");

S CURL pak předešlé řešení odpovídá následujícím řádkům:

$handler = curl_init("http://example.com");
curl_setopt($handler, CURLOPT_RETURNTRANSFER,1);
$obsah = curl_exec($handler);
curl_close($handler);

Způsobů volání CURL knihovny je více a záleží na potřebách vaší aplikace. Správné řešení by vám měl navrhnout a realizovat autor vaší webové aplikace. Blíže o CURL viz dokumentace k PHP na http://php.net/manual/en/book.curl.php.

Co je to WebCron?

Služba WebCron slouží k pravidelnému spouštění uživatelských skriptů v prostoru WWW prezentace. Skripty je možné spouštět pravidelně v intervalech 5 minut, 10 minut, 15 minut, 30 minut, 1 hodina, 1 den a 1 týden.

Kde lze nastavit pravidelné spouštění skriptu Cronem?

Periodu spouštění cronu v intervalech 5 min., 10 min., 15 min., 30 min.,1 hod., 1 den a 1 týden a url cestu s umístěním vašeho skriptu lze nastavit v uživatelském rozhraní v menu "Domény> Správa domén> ..Detail> WebCron". Zároveň zde uvidíte i čas posledního spuštění cronu.

Nastavení konkrétního času spuštění není možné. Čas určí systém sám, pouze s ohledem na dodržení intervalu spouštění. Nedoporučujeme spouštět často déle trvající skripty, aby nedošlo ke zbytečně brzkému vyčerpání prostředků vyhrazených pro domény.

Pozn.: Službu WebCron je možné získat u hostingového programu HOSTING90 Plus.

Jak změnit nastavení souboru php.ini?

Soubor php.ini

Nastavení v souboru php.ini ovlivňuje nastavení všech domén hostovaných na serveru. Není proto bohužel možné vyhovět individuálním požadavkům na úpravu tohoto souboru.

Jak tedy ovlivnit chování php serveru, bez editace souboru php.ini?

Řešením je textový soubor s názvem .htaccess, který umístíte na FTP server.

Ukázka obsahu nastavení souboru .htaccess:

php_flag magic_quotes_gpc on
php_flag register_globals on
php_flag session.auto_start off

Výčet a popis všech direktiv naleznete v dokumentaci k PHP.

Co je to soubor .htaccess?

Soubor .htaccess je textový soubor obsahující uživatelské nastavení parametrů pro chod vašeho webu na webserveru apache, například pravidla pro mód rewrite. Soubor .htaccess umisťujete zpravidla na FTP do hlavní složky se jménem vaší domény nebo některé ze subdomén, které má ovlivnit.

K čemu slouží mod_rewrite?

Mod_rewrite se používá pro "překládání" URL požadavků. Zpravidla pro vytvoření "hezkých" odkazů, vhodných pro SEO. Jedná se o rozšiřující modul webserveru apache a na našich serverech je povolen. Pravidla rewrite modu nastavujete v souboru .htaccess, který musí být v uživatelském rozhraní povolen.

Dokumentace je k dispozici na http://httpd.apache.org/

Má přednost nastavení v .htaccess nebo v uživatelském rozhraní?

Pokud máte některou z direktiv "session.auto_start" a "display_errors" nastavenou zároveň v uživatelském rozhraní a zároveň v souboru .htaccess, má přednost vždy nastavení v souboru .htaccess, samozřejmě vyjma případu, kdy v uživatelském rozhraní nemáte používání souboru .htaccess aktivováno.