Nebudeme se zdržovat a jdeme na to. K instalaci využijeme příkazy apt-get, které jsou na Ubuntu a Debianu základní příkazy pro instalaci balíčků.
AKTUALIZACE PHP 7 - 17.12.2018 - Článek je aktualizován, protože končí podpora PHP 5 a na nových Ubuntu se již PHP 5 stejně nedalo instalovat.
Instalujeme
Začneme instalací Apache2, MySQL a PHP a potřebných knihoven pro vzájemnou kompatibilitu. Budete v průběhu instalace dotázání na jméno a heslo do MySQL databáze pro root uživatele.
Dále nastavíme MySQL server instalací základních schémat a volitelně můžeme spustit zabezpečení databáze. Na závěr doinstalujeme balíčky do PHP, zde záleží na vás, které vyberete, mě tyto stačí.
# Stáhneme aktuální seznam balíčků z repozitářů sudo apt-get update # Nainstalujeme vše nezbytné a nejnovější PHP sudo apt-get install apache2 mysql-server php # Případně lze místo MySQL použít MariaDB sudo apt-get install mariadb-server # Zabezpečení MySQL serveru, na localhostu není nutné sudo mysql_secure_installation # Doinstalování PHP knihoven sudo apt-get install php-curl php-gd php-imagick php-mysql php-sqlite3 php-dom php-mbstring php-xml
Nastavení
Při zadání adresy http://localhost/ uvidíte základní index s umístěním konfiguračních souborů. Hlavní adresář pro weby je /var/www/html. Stále to ale bude chtít nějaké úpravy
Povolení htaccess
Abychom mohli využívat soubor .htaccess, musíme jej povolit v souboru /etc/apache2/apache2.conf. Najdeme tento blok a přepíšeme AllowOverride z none na all
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride all Require all granted </Directory>
Instalace mod_rewrite
Asi nejčastější použití souboru .htaccess je právě kvůli možnost podsouvat URL adresy pomocí mod_rewrite. Povolení se provádí pomocí příkazu a2enmod
sudo a2enmod rewrite
Priorita PHP nad HTML
Pokud budete mít ve složce index.html i index.php, větší prioritu bude mít nyní HTML soubor. Toto chování lze změnit v souboru /etc/apache2/mods-enabled/dir.conf. Přesuneme index.php z prostřed druhého řádku na první pozici a uložíme.
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule>
Nastavení PHP
Základní nastavení PHP je někdy ne příliš vyhovující. Následující hodnoty doporučuji změnit, nejčastěji zvýšit. Soubor naleznete na /etc/php/x.y/apache2/php.ini, kde x.y je aktuální verze PHP. V době opravy článku tedy 7.2
; V základu Off, pak nebude fungovat <? ... ale jen <?php ... short_open_tag = On ; Nyní již limit je 128MB, můžete ale zvýšit v případě potřeby memory_limit = 128M ; Chyby se vůbec nevypisují, což je při vývoji docela otravné display_errors = On ; Výpis všech chyb kromě DEPRECATED a STRICT ; může se hodit vypisovat všechny error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT ; V základu max 2M upload, zvyšte si alespoň na 20M upload_max_filesize = 20M ; Nastavte si základní časové pásmo date.timezone = Europe/Prague ; Viz minulý článek sendmail_path = /usr/sbin/sendmail
Rozšíření se povolí automaticky po jejich nainstalování. Ve složce /etc/php/x.y/mods-available je souborů možných rozšíření a pro jejich povolení se ve složce /etc/php/x.y/mods-available/apache2/conf.d vytváří symbolický odkaz. Pro zakázání stačí tento odkaz smazat.
Rozšíření se v PHP 7.2 a dříve povolovaly v souboru php.ini odkomentováním řádků začínajících extension=
.
Restart Apache
Když jsme provedli všechny změny, je na čase restartovat Apache server pro aplikování změn. Apache2 je nainstalován také jako service, takže restart provedeme jednoduše
sudo service apache2 restart
Závěrem
Nastavení serveru je vhodné pro vývoj, nikoli ostrý provoz. Pokud chcete takto provozovat server veřejně, bylo by potřeba více nastavení a zabezpečení. Snad jsem nezapomněl na žádné doplňky ať už do PHP nebo Apache. Případně napište do komentářů a do článku je doplním
K tomuto článku již není možné přidávat další komentáře
Komentáře
after of
sudo mysqld --initialize
[ERROR] --initialize specified but the data directory has files in it. Aborting.
Dobrý den,
našel jsem LAMPdu a chtěl jsem podle Vás nainstalovat.
root@jd-desktop:/home/jd# sudo apt-get install apache2 mysql-server php5 libapache2-mod-php5
Načítají se seznamy balíků… Hotovo
Vytváří se strom závislostí
Načítají se stavové informace… Hotovo
Balík php5 není dostupný, ale jiný balík se na něj odkazuje.
To může znamenat že balík chybí, byl zastarán, nebo je dostupný
pouze z jiného zdroje
Balík libapache2-mod-php5 není dostupný, ale jiný balík se na něj odkazuje.
To může znamenat že balík chybí, byl zastarán, nebo je dostupný
pouze z jiného zdroje
E: Balík „php5“ nemá kandidáta pro instalaci
E: Balík „libapache2-mod-php5“ nemá kandidáta pro instalaci
root@jd-desktop:/home/jd#
můžete mi pomoct
Děkuji Dohnálek