CakePHP: beim installieren einer Anwendung in eine subdomain
Ich versuche zu installieren eine CakePHP-app auf eine subdomain in meinem server. Ich möchte, um eine erweiterte installation aus und trennen Sie die Kern-und app-libs aus dem webroot-Verzeichnis.
Setzte ich das gesamte Projekt in einen Ordner auf home-Verzeichnis und verschieben Sie den Inhalt des webroot-Verzeichnis sub-Domain-httpdocs-Verzeichnis.
Dann sieht es so aus:
subdomains-httpdocs:
drwxrwxrwx 2 root root 4096 Mar 21 08:34 css
-rwxrwxrwx 1 root root 2760 Mar 21 08:34 css.php
-rwxrwxrwx 1 root root 374 Mar 21 08:34 favicon.ico
drwxrwxrwx 2 root root 4096 Mar 21 08:34 files
drwxrwxrwx 2 root root 4096 Mar 21 08:34 img
-rwxrwxrwx 1 root root 2731 Mar 21 08:43 index.php
drwxrwxrwx 2 root root 4096 Mar 21 08:34 js
-rwxrwxrwx 1 root root 3086 Mar 21 08:34 test.php
Bearbeitete ich die index.php Datei und ROOT ändern und APPDIR Konstanten zu-Punkt-Kuchen Halter und app-Ordner (im home-Verzeichnis), beziehungsweise. Schließlich habe ich geändert .htaccess-Dateien (3 Dateien) hinzufügen RewriteBase parameter zeigt auf app-Verzeichnis (als Koch-Buch sagt http://book.cakephp.org/view/917/Apache-and-mod_rewrite-and-htaccess).
Ich habe das mod_rewrite geladen wird und apache AllowOverride All ist aktiv, aber es funktioniert nicht. Es Antworten HTTP 500 everytime.
Wenn ich das gesamte Projekt im httpdocs-Verzeichnis (einschließlich webroot-Verzeichnis), es funktioniert perfekt.
Können Sie mir helfen mit diesem?
UPDATE
Ich nochmals überprüft und es funktioniert, wenn alle Verzeichnisse sind in den httpdocs Ordner (Kern-und app-Verzeichnissen). Jedoch, Sie arbeiten nicht an einem anderen Ort.
Gibt es
Warning: include(cake/bootstrap.php) [function.include]: failed to open stream: No such file or directory in /var/www/vhosts/mydomain.com/subdomains/subscribers/httpdocs/apptest/webroot/index.php on line 83
Warning: include(cake/bootstrap.php) [function.include]: failed to open stream: No such file or directory in /var/www/vhosts/mydomain.com/subdomains/subscribers/httpdocs/apptest/webroot/index.php on line 83
Warning: include() [function.include]: Failed opening 'cake/bootstrap.php' for inclusion (include_path='/home/systemtest:/home/systemtest/app/:.:') in /var/www/vhosts/mydomain.com/subdomains/subscribers/httpdocs/apptest/webroot/index.php on line 83
Vielen Dank im Voraus
- Hat der webserver die Berechtigung zum Zugriff auf die Kuchen-und app-Dateien?
- Vielen Dank für deine Antwort, Amy. Wahrscheinlich ist es nicht berechtigt ist. Wie kann ich Berechtigungen für den webserver? httpd.conf?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe eine Lösung gefunden:
Nach dem Versuch verschiedene Dinge, die ich herausgefunden, dass das problem mit webserver-Berechtigungen. Wenn die app-und-Kuchen-Ordner im httpdocs-Verzeichnis der Anwendung perfekt gearbeitet, aber nach dem verschieben in ein anderes Verzeichnis, index.php wurde wieder ein HTTP 500, der angibt, dass failed opening-Dateien in Kuchen core-Verzeichnis.
War die Lösung, fügen Sie ein VirtualHost in der httpd.include-Datei der subdomain:
Ich dachte, ich könnte separate app, Kuchen-und webroot-Verzeichnisse und die Verwaltung der installation mit .htaccess ohne apache bestimmten virtuellen host.
Dank Amy und Leo für Ihre Hilfe
Könnte dies auf eine andere Weise getan.
Es gibt einige Einschränkungen auf die Verzeichnis-Pfade, die geöffnet werden kann, in php.
PHP definiert die open_basedir Richtlinie, die wiederum schränkt die
Dateien, die aufgenommen werden können.
Auf virtuelle hosting (wie dein Fall) das Standard-Verzeichnis-Struktur enthält
nur Ihre
$_SERVER['DOCUMENT_ROOT']
und/tmp
Verzeichnissen, so dass es keine Möglichkeit gibt,für Sie gehören die Kuchen-core, wenn es an anderer Stelle befindet.
Eine saubere und einfache Lösung ist, fügen Sie den absoluten Pfad zu dem Verzeichnis
in dem Sie speichern die Kuchen-Kern, in deiner php.ini
Nach, dass Sie einfach definieren Sie Ihre
CAKE_CORE_INCLUDE_PATH
zu zeigenin dem Verzeichnis, in dem Kuchen-Kern installiert ist.
So vermeiden Sie, dass das hinzufügen einer VirtualHost-Direktive in httpd.conf
für jede Anwendung, die Sie erstellen, das läuft auf einer subdomain oder auch die domain selbst.
Hoffe, das war hilfreich.
Jose
Verlassen Sie die ROOT-und APPDIR allein ( in Ihrer /app/index.php ) und ändert nur die CAKE_CORE_INCLUDE_PATH in /app/webroot/index.php
Wird, Lesen Sie die core-libs von einer gemeinsamen Quelle. Fügen Sie die Kuchen-core-source-path in der php-include-Pfad, wenn der Kuchen kann nicht festgelegt werden.