Instalace LAMP na Ubuntu

27.1.2016 (aktualizováno 17.12.2018) Pavel PHP, Linux

Minule jsme si ukázali, jak na LAMP serveru ukládat emaily. Co když ale server na Linuxu vůbec nemáme? Dnešní krátký průvodce napoví jak nainstalovat, nastavit a zprovoznit LAMP server na Ubuntu/Debian.

Instalace LAMP na Ubuntu

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

Zbývá už jen povolit rozšíření, které chceme využívat. Ty jsou vždy na řádku začínajícím slovem extension=. Pro povolení stačí odstranit středník na začátku řádku. Mnou povolené rozšíření v základu jsou většinou tyto:

extension=bz2
extension=curl
extension=fileinfo
extension=ftp
extension=gd2
extension=mbstring
extension=exif  ; Must be after mbstring as it depends on it
extension=mysqli
extension=openssl
extension=pdo_mysql
extension=pdo_sqlite

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

Přidat komentář

Právě odpovídáte na existující komentář. Zrušit

Komentáře

m

25.3.2016 05:44

after of
sudo mysqld --initialize

[ERROR] --initialize specified but the data directory has files in it. Aborting.

Odpovědět

Jan Dohnálek

http://www.ictus.cz 6.12.2018 13:09

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

Odpovědět

Novinky z blogu

Responzivní obrázky v HTML

V tomto článku se podíváme na to, jak lze pomocí atributů srcset a sizes servírovat obrázky různých velikostí podle kontextu webové...

Další články