Tento tutoriál ukazuje, jak můžete nainstalovat a spustit webovou stránku TYPO3 (verze 6.2) na systému Debian Wheezy nebo Ubuntu 13.10, který má nainstalovaný nginx místo Apache (LEMP =L inux + nginx (vyslovuje se „e ngine x") + M ySQL + P HP). nginx je HTTP server, který využívá mnohem méně zdrojů než Apache a poskytuje stránky mnohem rychleji, zejména statické soubory.
Neposkytuji žádnou záruku, že to pro vás bude fungovat!
1 předběžná poznámka
Chci nainstalovat TYPO3 do vhost s názvem www.example.com/example.com zde s kořenem dokumentu /var/www/www.example.com/web.
Měli byste mít funkční instalaci LEMP.
Poznámka pro uživatele Ubuntu:
Protože musíme všechny kroky z tohoto tutoriálu spustit s právy root, můžeme buď před všechny příkazy v tomto tutoriálu přidat řetězec sudo, nebo se staneme rootem hned teď zadáním
sudo su
2 Instalace APC
APC je bezplatný a otevřený PHP opcode cacher pro ukládání do mezipaměti a optimalizaci PHP přechodného kódu. 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 php-apc
Pokud používáte PHP-FPM jako svého FastCGI démona, restartujte jej následovně:
/etc/init.d/php5-fpm restart
Pokud jako svého FastCGI démona používáte program spawn-fcgi lighttpd, musíme zabít aktuální proces spawn-fcgi (běžící na portu 9000) a vytvořit nový. Spustit
netstat -tap
zjistit PID aktuálního spawn-fcgi procesu:
[email protected]:~# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:sunrpc *:* LISTEN 734/portmap
tcp 0 0 *:www *:* LISTEN 2987/nginx
tcp 0 0 *:ssh *:* LISTEN 1531/sshd
tcp 0 0 *:57174 *:* LISTEN 748/rpc.statd
tcp 0 0 localhost.localdom:smtp *:* LISTEN 1507/exim4
tcp 0 0 localhost.localdom:9000 *:* LISTEN 1542/php5-cgi
tcp 0 0 localhost.localdo:mysql *:* LISTEN 1168/mysqld
tcp 0 52 server1.example.com:ssh 192.168.0.198:2462 ESTABLISHED 1557/0
tcp6 0 0 [::]:www [::]:* LISTEN 2987/nginx
tcp6 0 0 [::]:ssh [::]:* LISTEN 1531/sshd
tcp6 0 0 ip6-localhost:smtp [::]:* LISTEN 1507/exim4
[email protected]:~#
Ve výše uvedeném výstupu je PID 1542, takže aktuální proces můžeme ukončit následovně:
kill -9 1542
Poté vytvoříme nový proces spawn-fcgi:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
3 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 6.2 jako soubor .tar.gz z http://typo3.org/download/ a umístíme jej do kořenového adresáře dokumentu:
cd /tmp
wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%206.2.1/typo3_src-6.2.1.tar.gz
tar xvfz typo3_src-6.2.1.tar.gz
cd typo3_src-6.2.1/
mv * /var/www/www.example.com/web/
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 -u root -p create typo3
mysql -u root -p
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
vi /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:
vi /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:
/etc/init.d/nginx reload
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 vám zobrazí pouze varování, že /typo3_src by měl být odkaz, můžete pokračovat kliknutím na Vím, co dělám, pokračovat! - pokud existují další varování, měli byste se je nyní pokusit opravit:
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 administrátora TYPO3. 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). 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 stahuje seznam dostupných ukázkových webových stránek:
Pokud si přejete nainstalovat jeden z nich, klikněte na příslušné tlačítko Instalovat:
Po úspěšné instalaci se zobrazí následující obrazovka. Varování RealURL můžete ignorovat:
Pokud opustíte backend, demo stránka vypadá následovně. Pokud jej projdete, všimnete si, že čisté adresy URL fungují ve výchozím nastavení:
4 odkazy
- TYPO3:http://typo3.org/
- nginx:http://nginx.org/
- nginx Wiki:http://wiki.nginx.org/
- Debian:http://www.debian.org/
- Ubuntu:http://www.ubuntu.com/
O autorovi
Falko Timme je vlastníkem Timme Hosting (ultrarychlý webhosting nginx). Je hlavním správcem HowtoForge (od roku 2005) a jedním z hlavních vývojářů ISPConfig (od roku 2000). Přispěl také do O'Reillyho knihy „Linux System Administration“.