Aktionen

APC Cache mit Plesk und die APC-Admin-Seite

Aus znilwiki

Warning.png
Warnung: Vergesst diesen Artikel! Nachfolgende beschriebene Anleitung richtet zwar den APC ein ... es fnktioniert aber NICHT da Plesk am System vorbei arbeitet

Da XCache mit Plesk scheinbar nicht funktioniert nehmen wir eben APC! mag mein Mediawiki genauso gern.

Installation unter Ubuntu Linix 12.04.x LTS mit Plesk 12:

pecl install apc

Er fragt dann einiges - jedesmal einfach Enter bzw. Return bestätigen!

Dann ein

nano /etc/php5/conf.d/apc.ini

Die Datei ist leer - denn diese gibt es noch nicht. Fügt einfach folgende Zeilen ein:

extension=apc.so
apc.enabled=1
apc.shm_size=256M

Das aktiviert APC und setzt einen 256MByte großen Cache - den Wert könnt ihr ggf. noch anpassen.
Ein Liste mit allen möglichen Werten findet Ihr unter http://us3.php.net/manual/en/apc.configuration.php

Jetzt noch ein

service apache2 restart

Und der Cache läuft (und funktioniert!)

Nun könnt Ihr danach euch auch noch die APC-Webseite - auf der man den Erfolg begutachten kann - einrichten - das war etwas knifflig denn ich habe es wieder ums verderben nicht geschafft mich an der Seite dann anzumelden ...
Ihr braucht entweder eine Subdomain oder eine normale Domain in die es mit rein soll.
In den Ordner dieser Domain kopiert Ihr die eine(!) einzelne apc.php:

cp /usr/share/php/apc.php /var/www/vhosts/eure.domaene/euerVerzeichnis

zum Beispiel

cp /usr/share/php/apc.php /var/www/vhosts/h2321041.stratoserver.net/apc.znil.net

Die Datei muss dem Plesk-Benutzer des Webspace gehören, also noch den Besitzer anpassen:

chown -R manfred:psaserv /var/www/vhosts/h2321041.stratoserver.net/apc.znil.net/apc.php

nun bearbeitet Ihr die apc.php:

nano /var/www/vhosts/h2321041.stratoserver.net/apc.znil.net/apc.php

Und sucht folgende Zeilen:

//defaults('DATE_FORMAT', "d.m.Y H:i:s"); // German
defaults('DATE_FORMAT', 'Y/m/d H:i:s');       // US

ändert Ihr zu

defaults('DATE_FORMAT', "d.m.Y H:i:s"); // German
//defaults('DATE_FORMAT', 'Y/m/d H:i:s');       // US


Und dann noch:

// authentication needed?
//
if (!USE_AUTHENTICATION) {
        $AUTHENTICATED=1;
} else {
        $AUTHENTICATED=0;
        if (ADMIN_PASSWORD!='password' && ($MYREQUEST['LO'] == 1 || isset($_SERVER['PHP_AUTH_USER']))) {

                if (!isset($_SERVER['PHP_AUTH_USER']) ||
                        !isset($_SERVER['PHP_AUTH_PW']) ||
                        $_SERVER['PHP_AUTH_USER'] != ADMIN_USERNAME ||
                        $_SERVER['PHP_AUTH_PW'] != ADMIN_PASSWORD) {
                        Header("WWW-Authenticate: Basic realm=\"APC Login\"");
                        Header("HTTP/1.0 401 Unauthorized");

                        echo <<<EOB
                                <html><body>
                                <h1>Rejected!</h1>
                                <big>Wrong Username or Password!</big><br/>&nbsp;<br/>&nbsp;
                                <big><a href='$PHP_SELF?OB={$MYREQUEST['OB']}'>Continue...</a></big>
                                </body></html>
EOB;
                        exit;

                } else {
                        $AUTHENTICATED=1;
                }
        }
}

Ändern in

// authentication needed?
//
/*if (!USE_AUTHENTICATION) {
        $AUTHENTICATED=1;
} else {
        $AUTHENTICATED=0;
        if (ADMIN_PASSWORD!='password' && ($MYREQUEST['LO'] == 1 || isset($_SERVER['PHP_AUTH_USER']))) {

                if (!isset($_SERVER['PHP_AUTH_USER']) ||
                        !isset($_SERVER['PHP_AUTH_PW']) ||
                        $_SERVER['PHP_AUTH_USER'] != ADMIN_USERNAME ||
                        $_SERVER['PHP_AUTH_PW'] != ADMIN_PASSWORD) {
                        Header("WWW-Authenticate: Basic realm=\"APC Login\"");
                        Header("HTTP/1.0 401 Unauthorized");

                        echo <<<EOB
                                <html><body>
                                <h1>Rejected!</h1>
                                <big>Wrong Username or Password!</big><br/>&nbsp;<br/>&nbsp;
                                <big><a href='$PHP_SELF?OB={$MYREQUEST['OB']}'>Continue...</a></big>
                                </body></html>
EOB;
                        exit;

                } else {
                        $AUTHENTICATED=1;
                }
        }
}
*/
$AUTHENTICATED=1;


Damit seit Ihr dann IMMER angemeldet. Wir haben die Authentifizierung umgangen (weil irgendetwas es uns unmöglich macht das Passwort richtig einzutippen)

Nun könnt Ihr im Webbrowser euch die Status-Webseite zu APC Cache ansehen:

http://h2321041.stratoserver.net/apc.php
http://apc.znil.net/apc.php
APCCache-001.png



Tja ... aber das da nun jeder ran kann ist doch blöd?
ja ist es - aber wir sichern das einfach über die Plesk-Oberfläche ab!
Geht in Plesk in die Übersicht der Domänen Websites & Domains und klickt die Domäne an zu welcher der Ordner mit der apc.php gehört.
Dann geht dort auf Passwortgeschütze Verzeichnisse
Dort fügt Ihr erst das Verzeichnis hinzu

/apc

wenn es in einem Unterorder liegt (Aufruf mit .../apc) oder nur

/

wenn diese direkt im Hauptordner der Domäne liegen.
Wenn das Verzeichnis hinzugefügt ist, klickt es in der Liste unten an.
Im neuen Dialog könnt Ihr nun einen Benutzer hinzufügen. Und schon erscheint beim Aufruf der APC-Webseite ein Abfrage nach Benutzername und Passwort - und die funktioniert auch!


--Bernhard Linz 00:43, 18. Jul. 2014 (CEST)



eddi13

46 Monaten zuvor
Punktzahl 0++
Leider bie mir ist das gleiche Geschichte - cache wird immer wieder (je Minute) gelöscht. Gennau wie bei XCache. das gleiche.

Thomas Reif

40 Monaten zuvor
Punktzahl 0++

Leider komplett falsch, wie auch der Kommentar vor mir schreibt. APC funktioniert eben nicht so einfach mit Plesk. Hättest du dir mal lieber die Uptime vom APC angeschaut. Sieht man auch schön an deinem Screenshot. Das liegt an dem von Plesk verwendeten fcgi, welches jedes mal den APC wieder killt. ;-)

Da sind schon ein paar Handgriffe mehr notwendig. Teste auch gerade mal wieder mit Plesk rum. Letztes mal vor 5 Jahren genervt aus Zeitmangel aufgegeben, da händisch einfach schneller geht. In den 5 Jahren hat sich außer ein bisschen Kosmetik und ein viertelster, kastrierter nginx nichts getan. Plesk war 2005 unbrauchbar, 2010 unbrauchbar und jetzt 2015 ebenso. Zumindest wenn man auf Performance und wenig Zeit aus ist.

BLinz

40 Monaten zuvor
Punktzahl 0++
Habe oben einen Hinweis gesetzt das es nicht funktioniert. Bin Inzwischen auf ISPConfig umgestiegen. Das kann zwar nur einen Bruchteil von Plesk - zickt dafür bei solchen Sachen nicht rum.

Thomas Reif

40 Monaten zuvor
Punktzahl 0++

Gute Entscheidung!

ISPConfig ist eigentlich vollkommen ausreichend. Plesk ist meiner Meinung nach komplett unbrauchbar. Geht viel zu viel Zeit drauf.
Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen.