Tento tutoriál ukazuje, jak nainstalovat a nakonfigurovat webovou stránku TYPO3 (verze 7) na serveru Debian 8 (Jessie), který má nainstalovaný Nginx jako webový server a MariaDB jako databázový server. Nginx je rychlý webový server, který v tomto nastavení nahrazuje standardní webový server „Apache“, MariaDB je vidlice MySQl, která je rychlejší než MySQL a kterou vyvinul původní vynálezce MySQL Monty Widenius.
Typo3 je podnikový CMS systém napsaný v PHP, který má velkou uživatelskou a vývojářskou komunitu.
Předběžná poznámka
Chci nainstalovat TYPO3 do vhost s názvem www.example.com zde s kořenem dokumentu /var/www/www.example.com/web. Můj server používá IP adresu 192.168.1.100, prosím nahraďte tuto IP adresu ve všech konfiguračních souborech a příkazech IP adresou vašeho serveru.
Výukový program předpokládá, že již máte funkční instalaci Nginx, pokud ne, nainstalujte Nginx, PHP a MariaDB nejprve podle tohoto průvodce.
Přihlaste se jako uživatel root na serveru a pokračujte dalším krokem.
Instalace APCu
APCu je bezplatný a otevřený PHP opcode cacher pro ukládání do mezipaměti a optimalizaci PHP přechodného kódu, přidává funkce dříve poskytované APC do nyní integrované PHP opcache. Je to podobné jako u jiných cacherů PHP operačních kódů, jako jsou eAccelerator a XCache. Důrazně se doporučuje mít jeden z nich nainstalovaný, aby se urychlila vaše stránka PHP.
APC lze nainstalovat následovně:
apt-get install php5-apcu
Pokud používáte PHP-FPM jako svého FastCGI démona, restartujte jej následovně:
systemctl restart php5-fpm.service
Instalace TYPO3
Kořen dokumentu mého webu www.example.com je /var/www/www.example.com/web – pokud neexistuje, vytvořte jej následovně:
mkdir -p /var/www/www.example.com/web
Dále stáhneme TYPO3 7.6.4 jako soubor .tar.gz z https://typo3.org/download/ a umístíme jej do kořenového adresáře našeho dokumentu:
cd /tmp
wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%207.6.4/typo3_src-7.6.4.tar.gz
tar xfz typo3_src-7.6.4.tar.gz
mv typo3_src-7.6.4 /var/www/www.example.com/
cd /var/www/www.example.com/web
ln -s ../typo3_src-7.6.4 typo3_src
ln -s typo3_src/index.php
ln -s typo3_src/typo3
Doporučuje se nastavit kořen dokumentu a soubory TYPO3 v něm zapisovatelné démonem nginx, který běží jako uživatel www-data a skupina www-data:
chown -R www-data:www-data /var/www/www.example.com/web
Pokud jste ještě nevytvořili databázi MySQL pro TYPO3 (včetně uživatele MySQL TYPO3), můžete to udělat následovně (v tomto příkladu pojmenuji databázi typo3 a uživatel se jmenuje typo3_admin a jeho heslo je typo3_admin_password):
mysqladmin --defaults-file=/etc/mysql/debian.cnf create typo3
mysql --defaults-file=/etc/mysql/debian.cnf
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost' IDENTIFIED BY 'typo3_admin_password';
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost.localdomain' IDENTIFIED BY 'typo3_admin_password';
FLUSH PRIVILEGES;
quit;
Dále vytvoříme konfiguraci nginx vhost pro náš www.example.com vhost v adresáři /etc/nginx/sites-available/ následovně:
nano /etc/nginx/sites-available/www.example.com.vhost
server { listen 80; server_name www.example.com example.com; root /var/www/www.example.com/web; if ($http_host != "www.example.com") { rewrite ^ http://www.example.com$request_uri permanent; } index index.php index.html; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). location ~ /\. { deny all; access_log off; log_not_found off; } location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_read_timeout 1200; } client_max_body_size 100M; location ~ /\.(js|css)$ { expires 604800s; } if (!-e $request_filename){ rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last; } location ~* ^/fileadmin/(.*/)?_recycler_/ { deny all; } location ~* ^/fileadmin/templates/.*(\.txt|\.ts)$ { deny all; } location ~* ^/typo3conf/ext/[^/]+/Resources/Private/ { deny all; } location ~* ^/(typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) { } location / { if ($query_string ~ ".+") { return 405; } if ($http_cookie ~ 'nc_staticfilecache|be_typo_user|fe_typo_user' ) { return 405; } # pass POST requests to PHP if ($request_method !~ ^(GET|HEAD)$ ) { return 405; } if ($http_pragma = 'no-cache') { return 405; } if ($http_cache_control = 'no-cache') { return 405; } error_page 405 = @nocache; try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache; } location @nocache { try_files $uri $uri/ /index.php$is_args$args; } }
Tato konfigurace již obsahuje vše, co je potřeba pro čisté URL (kvůli try_files $uri $uri/ /index.php$is_args$args; řádek v umístění @nocache).
Dále se ujistěte, že máte v /etc/nginx/mime.types následující řádek:
nano /etc/nginx/mime.types
[...] text/x-component htc; [...]
Abychom povolili vhost, vytvoříme na něj symbolický odkaz z adresáře /etc/nginx/sites-enabled/:
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost
Znovu načtěte nginx, aby se změny projevily:
systemctl reload nginx.service
Poté upravte některé hodnoty v souboru php.ini pro TYPO3. Na tomto serveru používám php-fpm, takže soubor je /etc/php5/fpm/php.ini. Otevřete soubor pomocí editoru:
nano /etc/php5/fpm/php.ini
a upravte následující nastavení.
[...]
always_populate_raw_post_data=-1
[...]
max_execution_time=240
[...]
post_max_size = 20M
[...]
upload_max_filesize = 20M
[...]
max_input_vars=2000
[...]
Aplikujte změny pomocí:
systemctl reload php5-fpm.service
Nyní můžeme spustit webový instalátor TYPO3 tím, že přejdeme na http://www.example.com/ – nejprve budete vyzváni k vytvoření souboru FIRST_INSTALL v kořenovém adresáři dokumentu, aby mohla instalace pokračovat:
cd /var/www/www.example.com/web/
touch FIRST_INSTALL
chown www-data:www-data FIRST_INSTALL
Nyní znovu načtěte stránku. Instalační program zkontroluje, zda jsou splněny všechny předpoklady – pokud se objeví další varování, měli byste se je pokusit nyní opravit:
Klikněte na Pokračovat.
Dále vyplňte údaje o databázi (uživatel:typo3_admin; heslo:typo3_admin_password z doby, kdy jsme databázi typo3 vytvořili) a klikněte na Pokračovat:
Na další stránce zvolte Použít existující prázdnou databázi a z rozbalovací nabídky vyberte typo3. Poté klikněte na Pokračovat:
Dále zadejte uživatelské jméno a heslo pro uživatele admin TYPO3 a název vašeho webu. Klikněte na Pokračovat:
Instalace je nyní dokončena. Pokud chcete začít s demo webem místo zcela prázdného systému, ponechte zaškrtnuté políčko Ano, stáhnout seznam distribucí (tímto nedojde k okamžité instalaci demo dat, ale pouze zpřístupnění demo webu v backendu, odkud můžete zvolte instalaci). Rozhodnu se začít s prázdnou stránkou, abych si mohl vytvořit vlastní web. Poté klikněte na Otevřít backend:
Administrátorskou oblast lze nalézt na http://www.example.com/typo3/. Přihlaste se pomocí uživatelského jména admin a hesla, které jste definovali při instalaci:
Nyní se přihlaste pomocí uživatelského jména a hesla, které jste zvolili během nastavení Typo3.
Typo3 byl úspěšně nainstalován. Nyní můžete začít budovat svůj web Typo3.
Obrázek virtuálního počítače
Tento tutoriál je k dispozici jako virtuální stroj připravený k použití ve formátu OVA / OVF pro předplatitele Howtoforge. Formát VM je kompatibilní s VMWare a Virtualbox a dalšími nástroji, které dokážou tento formát importovat. Odkaz ke stažení najdete v pravém menu nahoře. Kliknutím na název souboru zahájíte stahování.
Přihlašovací údaje virtuálního počítače jsou:
Přihlášení Typo3
Uživatelské jméno:admin
Heslo:howtoforge
Přihlášení SSH
Uživatelské jméno:root
Heslo:howtoforge
Přihlášení do MariaDB
Uživatelské jméno:root
Heslo:howtoforge
Po prvním spuštění změňte hesla.
VM je nakonfigurován pro statickou IP 192.168.1.100, IP lze změnit v souboru /etc/network/interfaces.
Odkazy
- TYPO3:http://typo3.org/
- nginx:http://nginx.org/
- nginx Wiki:http://wiki.nginx.org/
- Debian:http://www.debian.org/