navody:f15:web

Hlavní stránka

Pomocí trojice aplikací MySQL, PHP a Apache můžete svůj linuxový počítač „proměnit“ v plnohodnotný webový server. O této trojici se někdy hovoří jako o tzv. LAMP (Linux, Apache, MySQL, PHP).

Apache je pravděpodobně nejpopulárnější webový server používaný nejen pod Linuxem ale také pod OS Windows a představuje jakýsi „benchmark“, podle kterého jsou hodnoceny ostatní servery. Tato aplikace je v současné době udržovaná nadací Apache Software Foundation.

Pomocí následujících příkazů nainstalujete potřebné balíčky a spustíte httpd server.

yum -y install httpd
yum -y install mod_ssl
yum -y install httpd-manual
yum -y install mod_perl
yum -y install mod_auth_mysql
yum -y install crypto-utils
yum -y install mod_python
/etc/init.d/httpd -k start

Pokud se Vám spuštění httpd nepodaří, je možné, že byla instalována jako služba. V tomto případě server spustíte příkazem service

service httpd start

Funkčnost webového serveru ověříte pomocí odkazu http://localhost popř. http://127.0.0.1.

PHP je programovací jazyk určený pro vývoj dynamických webových stránek. Je používán především v aplikacích, které jsou spouštěny na straně serveru. Umožňuje tak implementovat složitější procedury, čím se liší od klasického HTML, který je pouze formátovacím jazykem a tudíž nezvládá např. cykly nebo vyhodnocování podmínek.

Instalaci a spuštění PHP serveru lze provést pomocí následujících příkazů

yum -y install php
yum -y install php-mysql
/etc/init.d/httpd -k restart

pokud server běží jako služba obnovení provedete příkazem

service httpd restart

Pomocí příkazu

gedit /var/www/html/testphp.php

otevřete soubor testphp.php a na jeho konec vložte následující řádek

<?php phpinfo(); ?>

Soubor uložte. Funkčnost PHP serveru lze ověřit pomocí odkazu http://localhost/testphp.php.

Server MySQL spustíte pomocí

/etc/init.d/mysqld start

Je-li instalován jako služba

service mysqld start

phpMyAdmin - webové rozhraní databáze MySQL jež je přístupné na adrese http://localhost/phpMyAdmin doinstalujete příkazem

yum install phpMyAdmin

Pro odstranění podpisu serveru otevřete soubor httpd.conf pomocí

gedit /etc/httpd/conf/httpd.conf

a řádek

ServerSignature on

změňte na

ServerSignature off

Pod tento řádek přidejte

ServerTokens ProductOnly

Editovaný soubor uložte a restartuje Apache pomocí

/etc/init.d/httpd -k restart

uživatelské rozhraní „Nastavení Serveru HTTP“ (Aplikace > Systémové nástroje > HTTP) doinstalujete pomocí příkazu

yum -y install system-config-httpd

Standardně je třeba webové stránky spravované serverem Apache umisťovat do adresáře /var/www. Toto nastavení je však možné změnit.

Do příkazové řádky zadejte

gedit /etc/httpd/conf.d/alias.conf

a vložte následující řádky do nově vytvořeného souboru alias.conf

Alias /URL-path /location_of_folder/

<Directory /location_of_folder/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Uložte soubor alias a restartuje webový server pomocí

/etc/init.d/httpd restart

Funkčnost nastavení ověříte pomocí odkazu http://localhost/URL-path, kde URL-path je vámi zvolený adresář.

Standardně „naslouchá“ server Apache na portu 80. Tento defaulní port je možné změnit. Předpokládejme, že nové číslo portu webového serveru Apache má být 78.

Následujícími příkazy zálohujeme soubor ports.conf a otevřeme tento soubor v textové editoru.

cp /etc/httpd/ports.conf /etc/httpd/ports.conf_backup
gedit /etc/httpd/ports.conf

V souboru ports.conf nalezněte řádku

Listen 80

nahraďte ji řádkou

Listen 78

uložte editovaný soubor a restartujte webový server pomocí

/etc/init.d/httpd restart

Funkčnost úpravy lze zkontrolovat pomocí odkazu http://localhost:78.

RSS (Really Simple Syndication) je rodinou webových formátů, které slouží k poskytování obsahu popř. shrnutí webových stránek spolu s odkazem na stránku obsahující kompletní obsah. RSS „doručí“ tyto informace ve formě XML souboru, který nazýváme RSS streamem. Tento soubor pak může být zpracován speciálním programem a nové příspěvky pak zobrazeny na stránce.

Předpokládejme, že RSS je DistroWatch.com - novinky.

Prostřednictvím příkazové řádky zadejte

wget -c http://easylinux.info/uploads/magpierss-0.71.1.tar.gz
mkdir /var/www/feeds
tar zxvf magpierss-0.71.1.tar.gz -C /var/www/feeds/
mv /var/www/feeds/magpierss-0.71.1/* /var/www/feeds/
rm -fr /var/www/feeds/magpierss-0.71.1/
chown -R www-data:root /var/www/feeds/
gedit /var/www/feeds/index.php

Do nově vytvořeného souboru index.php zadejte

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>

<title>DistroWatch.com - News</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

<style type="text/css">
/*<![CDATA[*/
/* 
 DEFAULT TAG STYLES
*/

body {
 background: #ffffff;
 margin-left: 20px;
 font-family: bitstream vera sans,sans-serif;
 font-size: 9pt;
}

h1 {
 font-family: luxi sans,sans-serif;
 font-size: 15pt;
}

/*]]>*/
</style>

</head>

<body>

<?php

require_once 'rss_fetch.inc';
error_reporting(E_ERROR);

$url = 'http://distrowatch.com/news/dw.xml';
$rss = fetch_rss($url);

if ($rss) {

echo "<h1>";
echo "<a href=$url>", $rss->channel[title], "</a><br/>";
echo "</h1>";

 foreach ($rss->items as $item ) {
  $url = $item[link];
  $title = $item[title];
  $description = $item[description];
  echo "<li>";
  echo "<b>Topic:</b> <a href=$url><b><u>$title</u></b></a><br/><br/>";
  echo "$description<br/><br/>";
  echo "</li>";
 }

}

else {
 echo "<a href=$url>", $url, "</a> - Server Down!<br/>";
}

?>

</body>

</html>

Editovaný soubor index.php uložte. Funkčnost můžete vyzkoušet pomocí odkazu http://localhost/feeds/index.php.

Zend Framework

Zend Framework je open-source sada nástrojů pro vývojáře webových aplikací. Slouží k efektivnímu ovládání aplikace, podpoře mnoha web technologií, přehlednosti v rozsáhlých projektech, bezpečnosti aplikace. Využívá aplikačního modelu MVC - Model View Controller. Pro pochopení principů frameworku existuje na internetu spousta video tutoriálů a referenční příručka. Stránky projektu: http://www.zendframework.com/

Tento návod pochází od JR z http://www.if-not-true-then-false.com/2010/install-zend-framework-on-fedora-centos-red-hat-rhel/

Instalace Zend Framework

Nainstalujte repozitář REMI

rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm 
rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm 
rpm -Uvh http://rpms.famillecollet.com/remi-release-14.rpm

Minimální instalace ZF (instaluje minimální množství souborů potřebných pro spuštění aplikace)

yum --enablerepo=remi install php-ZendFramework

Plná instalace ZF (obsahuje všechny dodávané knihovny, DOJO a JQuery, ukázky apod.)

yum --enablerepo=remi install php-ZendFramework* --exclude php-ZendFramework-Db-Adapter-Oracle

poznámka:Zend Framework Oracle DB Adapter vyřadíme, protože k běhu vyžaduje doinstalování závislostí Oracle, které bez dalšího nastavení nepracují.

Vlastní instalace

yum --enablerepo=remi install komponenta_z_následujícího_seznamu

php-ZendFramework: Leading open-source PHP framework

php-ZendFramework-Auth-Adapter-Ldap: Zend Framework LDAP Authentication Adapter

php-ZendFramework-Cache-Backend-Apc: Zend Framework APC cache backend

php-ZendFramework-Cache-Backend-Memcached: Zend Framework memcache cache backend

php-ZendFramework-Cache-Backend-Sqlite: Zend Framework sqlite back end

php-ZendFramework-Captcha: Zend Framework CAPTCHA component

php-ZendFramework-Db-Adapter-Firebird: Zend Framework database adapter for InterBase

php-ZendFramework-Db-Adapter-Mysqli: Zend Framework database adapter for mysqli

php-ZendFramework-Db-Adapter-Oracle: Zend Framework database adapter for Oracle

php-ZendFramework-Dojo: Zend Framework Dojo Toolkit integration component

php-ZendFramework-Feed: Live syndication feeds helper

php-ZendFramework-Gdata: Google Data APIs

php-ZendFramework-Ldap: Basic LDAP operations API

php-ZendFramework-Pdf: PDF file handling helper

php-ZendFramework-Search-Lucene: Apache Lucene engine PHP port

php-ZendFramework-Services: Web service APIs for a number of providers

php-ZendFramework-Soap: SOAP web services server part helper

php-ZendFramework-demos: Demos for the Zend Framework

php-ZendFramework-extras: Zend Framework Extras (ZendX)

php-ZendFramework-tests: Unit tests for the Zend Framework

Vytvoření nového ZF projektu

Zkontrolujte dostupnost příkazu zf a verzi Zend Framework

zf show version

Přesuňte se do kořenového adresáře Vašeho serveru

cd /var/www/html

Pomocí příkazu zf vytvořte nový projekt

zf create project test-project

Nakopírujte si soubory Zend do knihovny projektu

cd /var/www/html/test-project/library
cp -R /usr/share/php/Zend .

Zkontrolujte obsah adresáře projektu a obsah knihoven

test-project
|-- application
|   |-- Bootstrap.php
|   |-- configs
|   |   `-- application.ini
|   |-- controllers
|   |   |-- ErrorController.php
|   |   `-- IndexController.php
|   |-- models
|   `-- views
|       |-- helpers
|       `-- scripts
|           |-- error
|           |   `-- error.phtml
|           `-- index
|               `-- index.phtml
|-- docs
|   `-- README.txt
|-- library
|   `-- Zend -> /usr/share/php/Zend
|-- public
|   `-- index.php
`-- tests
    |-- application
    |   `-- bootstrap.php
    |-- library
    |   `-- bootstrap.php
    `-- phpunit.xml
----------------------------
16 adresářů, 11 souborů

Funkčnost zkontrolujete ve webovém prohlížeči na domovské url projektu http://localhost/test-project/public/

firefox http://localhost/test-project/public/ 

Směrování (Routes)

Index.php celého projektu je umístěn ve složce public. Je to jediný PHP soubor ve veřejně přístupné části projektu. V případě ZF nebo Nette Framework jsou v něm zadány pouze cesty ke spuštění aplikace (include). Aby bylo možné procházet virtuální složky musíme vytvořit a nebo upravit soubor .htaccess tak, aby při zadání jakékoli cesty nad public směřoval na soubor index.php s vyjímkou adres obrázků, stylů, sriptů a souborů určených k downloadu.

su -
gedit /var/www/html/test-project/public/.htaccess

Pomocí příkazů RewriteRule provedeme potřebné úpravy směrování v souboru .htaccess a uložíme je. Například

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Framework má mechanismus (router nebo-li směřovač), jehož pomocí rozezná zadanou adresu, zavolá příslušný Controler a provede požadovanou akci. Pokud jej nerozezná nastane výjimka a provede se akce definovaná k výjimce.

Virtuální host podle jména

Pokud chcete nastavit jména virtuálního hostitele k projektu upravte soubor hosts

gedit /etc/hosts

Řádek který začíná IP adresou 127.0.0.1 upravte tak aby obsahoval požadované adresy. Například

127.0.0.1   localhost.localdomain   localhost   testproject.loc   www.testproject.loc   admin.testproject.loc

Poznámka: Doménu 1. řádu můžete klidně vynechat. V tomto příkladu byla použita k odlišení produkčního www.testproject.org od vyvíjeného místního www.testproject.loc

otevřeme soubor httpd.conf nebo vhosts.conf :!: V případě ručního zápisu do httpd.conf můžete mít problém s povolením SELinuxu. Proto by se měl používat samostatný soubor konfigurace vhost /etc/httpd/conf/vhosts.conf

gedit /etc/httpd/conf/httpd.conf

a na konec souboru přidáme specifikaci vhost:

<VirtualHost *:80>
  ServerAdmin lh@lh.cz
  DocumentRoot /var/www/html
  ServerName localhost
  ServerAlias localhost
</VirtualHost>

<VirtualHost *:80>
  ServerAdmin admin@testproject.org
  DocumentRoot /var/www/html/test-project/public
  ServerName www.testproject.loc
  ServerAlias testproject.loc  *.testproject.loc
</VirtualHost>

Poznámka: Toto nastavení se neslučuje s použitím SSL. V takovém případě by se musel použít vhost podle IP

restartujte server

service httpd restart

Index projektu by nyní měl být přístupný na adresách URL:

Homepage bude přístupná pouze na adrese nastavené routováním v souboru bootstrap.php v aplikační části projektu frameworku.

Eclipse PHP PDT

PDT - PHP Development Toolkit je rozšíření vývojového prostředí eclipse od vývojářů Zend. Podporu PHP Projektů doinstalujete pomocí příkazu

yum install eclipse-phpeclipse

:!: Vlastník /var/www/html je implicitně Superuživatel. Pokud adresář chcete použít jako pracovní prostor Eclipse, musíte upravit oprávnění k přístupu do adresáře.

:!: Spouštění prostředí Eclipse jako superuživatel se nedoporučuje

Adresáře otevřené pro čtení a zápis

Například adresář pro ukládání dočasných souborů projektu /var/www/html/test-project/application/temp nastavíme oprávnění pro zápis takto

md /var/www/html/test-project/application/temp
chmod 777 /var/www/html/test-project/application/temp

Nastavení SELinux provedeme příkazem

chcon -R -t httpd_sys_rw_content_t '/var/www/html/test-project/application/temp'

:!: Nevypínejte SELinux, nevystavujte svůj počítač zbytečně bezpečnostnímu riziku

NetBeans PHP

Vzhledem k opožděné podpoře PHP 5.3 (listopad 2011 - zejména namespaces) v PDT pro prostředí Eclipse je možné využít konkurenčního prostředí České pobočky společnosti SUN - NetBeans

yum -y install netbeans

Podporu PHP a například Nette Frameworku či jiných lze doinstalovat dodatečně pomocí nabídky Tools/Plugins


Hlavní stránka

  • Poslední úprava: 2022/11/14 12:25
  • autor: 127.0.0.1