Skip to main content

Einführung

Einfaches aufsetzen von  Apache, MySQL und PHP für Ubuntu , optional mit FastCGI und PHP5-FPM - ideal für Ihre gut besuchten Server.

 

Vorteile

PHP5-FPM mit Apache und mpm-event reduziert die Anzahl Prozesse, was in verbesserter Leistung resultieren kann, da weniger forks gemacht und weniger Speicher benötigt wird.Natürlich können Sie auch bequem wieder auf Standard zurückschalten.

Installieren von allen benötigten Paketen - ohne die typo3 Pakete.

export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install exim4 dbconfig-common debconf graphicsmagick lsb-base mysql-client php5 php5-cli php5-gd php5-mysql debconf

Zusätzlich multiverse auswählen und php5-fpm installieren

 

apt-get install software-properties-common -y
apt-add-repository multiverse
apt-get update
apt-get install apache2-mpm-event # might already be installed
apt-get install libapache2-mod-fastcgi php5-fpm

die php5-fpm Konfiguration für apache2 erstellen

cat > /etc/apache2/conf-available/php5-fpm.conf << EOF
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
    Require all granted
</Directory>
</IfModule>
EOF

Tuning von php5 für Typo3

cat > /etc/php5/mods-available/typo3_tune.ini << EOF
; configuration for php tuning 
; priority=20
max_execution_time = 240
memory_limit = 80M
upload_max_filesize = 1G
post_max_size = 1G
max_input_vars = 1500
EOF

php5enmod gd
php5enmod mysql
php5enmod typo3_tune

Aendern von DocumentRoot auf /var/www (statt /var/www/html )

# vi /etc/apache2/sites-enabled/000-default.conf

sed -ie 's/DocumentRoot .*/DocumentRoot \/var\/www/' /etc/apache2/sites-enabled/000-default.conf

service apache2 restart
service php5-fpm restart

Optional: Prüfen ob php5-fpm funktioniert

cat > /var/www/info.php << EOF
<?php phpinfo(); ?>
EOF

 

http:// <yoursite> /info.php  öffnen und kontrollieren ob Server API = FPM/FastCGI

Anschliessend sollten Sie /var/www/info.php löschen.

Enable UTF8 for mysql

mysql für UTF8 konfigurieren

cat > /etc/mysql/conf.d/utf8_charset.cnf << EOF
[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
[client]
default-character-set=utf8
EOF

Typo3 Datenbank erstellen

mysqladmin -pmysqlrootpw create TYPO3

Dem mysql user typo3 mit passwort typo3 zugriff auf die obige Datenbank erlauben. (Nehmen Sie ein anderes passwort !)

echo "grant all privileges on TYPO3.* to typo3@localhost identified by 'typo3'; flush privileges;" | mysql -u root -pmysqlrootpw

NOTE: Wenn Sie ein root password für mysql gesetzt haben, verwenden Sie hier auch -p<password> .

mysql root passwort setzen (optional)

Aktuelle Benutzer anzeigen

mysql -e "SELECT User, Host, Password FROM mysql.user;"

Alle root passworte auf 'newpwd' setzen

mysql -u root -e "UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE User = 'root'; FLUSH PRIVILEGES;"

Typo3 Installation

Den neuesten Typo3 Release auspacken

cd /var/www
curl -L  get.typo3.org/current | tar zxpvf -
# Die neuesten Releases können Sie auch von hier kopieren
# wget prdownloads.sourceforge.net/typo3/typo3_src-7.3.0.tar.gz
# wget get.typo3.org/current --content-disposition
# curl -L -o typo3_src.tgz get.typo3.org/current
# tar xpvf typo3_src-*.tar.gz

Die nötigen links und Verzeichnisse erstellen

ln -s typo3_src-* typo3_src
ln -s typo3_src/typo3
ln -s typo3_src/index.php
mkdir typo3temp
mkdir typo3conf
mkdir uploads
chown www-data.www-data typo3* uploads /var/www
chmod 2775 /var/www
chmod -R 2775 typo3* uploads
chown root:www-data -R typo3_src-*
chmod -R 775 typo3_src-*

Das Install Tool einschalten

touch typo3conf/ENABLE_INSTALL_TOOL

nun können Sie Typo3  mittels dem Install Tool aufsetzen !

http:// <yoursite> /typo3/install

Einschalten von php5-fpm und mpm_event

a2dismod mpm_prefork php5
a2enmod actions fastcgi alias mpm_event
a2enconf php5-fpm
service apache2 restart

Falls Sie lieber apache mit mod-php5 benutzen, können Sie folgendermassen vorgehen:

a2dismod mpm_event fastcgi
a2enmod actions alias mpm_prefork php5
a2disconf php5-fpm
service apache2 restart

Optional:

service php5-fpm stop
service php5-fpm disable

Google Pagespeed

Optimierung aktivieren

Beta Version:

#!/bin/sh
curl -O dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb
dpkg -i mod-pagespeed-beta_current_amd64.deb
service apache2 restart

Stabile Version:

#!/bin/sh
curl -O dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
dpkg -i mod-pagespeed-stable_current_amd64.deb
service apache2 restart

Die allerneuesten Entwickler Versionen sind auf GitHub zu finden : github.com/pagespeed/mod_pagespeed/releases

Typo3 kann mit diesen zusätzlichen Optionen arbeiten - mittels ModPagespeedDisallow kann pagespeed für bestimmte Pfade ausgeschaltet werden.

/etc/apache2/mods-enabled/pagespeed.conf hat die original Konfiguration, wir erstellen ein separates File mit der lokalen Änderungen.

cat > /etc/apache2/conf-available/local_pagespeed.conf << EOF
<IfModule pagespeed_module>
    <Location /pagespeed_admin>
        Order allow,deny
        Allow from localhost
        Allow from 127.0.0.1
        SetHandler pagespeed_admin
    </Location>
    <Location /pagespeed_global_admin>
        Order allow,deny
        Allow from localhost
        Allow from 127.0.0.1
        SetHandler pagespeed_global_admin
    </Location>
ModPagespeedFetchHttps enable
ModPagespeedEnableFilters defer_javascript
ModPagespeedEnableFilters move_css_to_head
# ModPagespeedEnableFilters prioritize_critical_css
ModPagespeedEnableFilters local_storage_cache
ModPagespeedEnableFilters sprite_images
# ModPagespeedEnableFilters insert_ga
ModPagespeedEnableCachePurge on
ModPagespeedDisallow "*/path/*"
</IfModule>
EOF

a2enconf local_pagespeed.conf

Optimieren des Webservers

.htaccess in apache konfiguration wandeln

cat > htaccess_import.sh << XEOF
#!/bin/bash
for i in \$( find /var/www -name .htaccess )
do
ht_path=\$( dirname \$i )
ht_conf=\${ht_path//\//_}
# echo \${ht_conf} \${i}
cat > /etc/apache2/conf-available/\${ht_conf}.conf <<EOF
<Directory \$ht_path>
\$( cat \$i )
</Directory>
EOF
done
(cd /etc/apache2/conf-available/; a2enconf _var*)
echo "Check the configuration for AllowOverride All in these files (if any)"
find /etc/apache2/ -type f | xargs grep -li "AllowOverride.*All"
XEOF
chmod 755 htaccess_import.sh
./htaccess_import.sh