Hi,
ich suche aktuell schon seit einiger Zeit alle noetigen Infos zusammen, um Oxid 4.5.x unter folgender Umgebung ans Laufen zu bekommen: Ubuntu 10.04, Apache-2 localhost als IDE nutze ich Netbeans, aber da werde ich mich wohl separat damit herumschlagen müssen.
-
Frage: ich entwickle lokal und will den Shop dann ins Netz stellen. Macht ihr das auch so, oder würdet ihr den Shop direkt auf dem Webserver laden und dann direkt via FTP entwickeln, einige IDEs bieten ja einen solchen Remote-Zugriff.
-
Frage: ich folge der Installationsroutine (siehe http://www.oxid-esales.com/de/resources/help-faq/manual-eshop-pe-ce-4-0-0-0/oxid-eshop-installieren ) und hänge bei der .htaccess. Es gibt den Fehler 500, die mod_rewrite FAQ (http://forum.modrewrite.de/topic82.html ) sagt mir, nachdem ich das Server-Log betrachte, dass die Meldung ‘option is not allowed’ wohl damit zu tun hat, dass das Umschreiben in den apache-Konfigurationsfiles unterbunden wurde. Im Ubuntuusers-Wiki steht zwar wie ich virtuelle Hosts anlege (http://wiki.ubuntuusers.de/apache/Virtual_Hosts ), aber da gibt es viele Wege nach Rom und mir als Laie erschließt sich nicht, welcher wohl der geeigneteste ist. Ebenso ist der Ort fuer die Konfiguration nicht so klar, laut http://www.oxid-esales.com/forum/showthread.php?t=2073 wird die die default-site im Apachen verwendet, laut Ubuntuusers-Wiki aber sollten virtuelle Hosts angelegt werden.
Sofern jemand die gleiche Architektur nutzt (Ubuntu, public_html/myshop/ als Ort, localhost/~myusername/myshop/ als URL) und den Weg zu einer funktionierenden Installation kennt, freue ich mich auf das Posten der Schritte und Copy&Pasten der Dateien.
Was ich bis jetzt getan habe?
Schritt: Herunterladen und Entpacken der Software;
Schritt: Anlegen der MySql-Datenbank;
Schritt: Check das mod_rewrite beim Apachen installiert ist;
Schritt: Check das alle PHP-Module installiert sind;
Schritt: Anlegen eines Netbeans-Projekts, es werden so automatisch die Ordner ins public_html-Verzeichnis kopiert, der Test klappte der Aufruf von http://localhost/~joba/website_myshop_shop/mytestindexfile.php zeigt mir mein Hallo-Welt.
Schritt: Kopieren aller Dateien aus dem entpackten Oxid-Ordner in das Projekt, der Aufruf des Setups schlägt fehl, Server Error 500;
… ich probiere dann mal nach und nach weiter und aktualisiere diesen Post, damit am Ende eine brauchbare Anleitung entsteht!
Hallo Jochen,
zu1)
Das machst Du goldrichtig so: Eine Entwicklungsumgebung ist zwingend erforderlich!
zu2)
Es gibt einen bösen Trick, strampel Dich nicht weiter ab: Unter Debian-basierten systemen ist AllowOverride per default überall auf off gesetzt. Meine vhost-Datei /etc/apache2/sites-available/default sieht so aus:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Gruß
Danke Marco,
das heisst du editierst die /etc/apache2/sites-available/default Datei. Das heisst weiter du musst keine weiteren Dateien im Ordner /etc/apache2/sites-enabled/ anlegen?
Am Ende hast du dann in der htaccess die Rewrite-Rule in der htaccess. Die htaccess kann dann etwa so aussehen:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /~joba/website_mbroth_shop
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
RewriteCond %{REQUEST_URI} oxseo\.php$
RewriteCond %{QUERY_STRING} mod_rewrite_module_is=off
RewriteRule oxseo\.php$ oxseo.php?mod_rewrite_module_is=on [L]
RewriteCond %{REQUEST_URI} !(\/admin\/|\/core\/|\/export\/|\/modules\/|\/out\/|\/setup\/|\/tmp\/|\/views\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !(\.html|\/|\.jpg|\.css|\.pdf|\.doc|\.gif|\.png|\.js|\.htc)$ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{REQUEST_URI} !(\/admin\/|\/core\/|\/export\/|\/modules\/|\/out\/|\/setup\/|\/tmp\/|\/views\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (\.html|\/)$ oxseo.php
RewriteCond %{REQUEST_URI} (\/out\/pictures\/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (\.jpg|\.gif|\.png)$ core/utils/getimg.php
</IfModule>
# disabling log file access from outside
<FilesMatch "(EXCEPTION_LOG\.txt|\.log$|\.tpl$|pkg.rev)">
order allow,deny
deny from all
</FilesMatch>
Options -Indexes
DirectoryIndex index.php index.html
Schau mir gerade deine Konfigurationsdatei an und wundere mich, dass da keine Regeln fürs public_html-Verzeichnis festgelegt sind?!
[QUOTE=Jochen1980;80430]
das heisst du editierst die /etc/apache2/sites-available/default Datei. Das heisst weiter du musst keine weiteren Dateien im Ordner /etc/apache2/sites-enabled/ anlegen?
[/QUOTE]
Richtig.
[QUOTE=Jochen1980;80430]
Am Ende hast du dann in der htaccess die Rewrite-Rule in der htaccess. Die htaccess kann dann etwa so aussehen:
[/QUOTE]
Nö, das läuft bei mir mit der Standard .htaccess, egal in welchem Ordner ich den Shop ablege.
[QUOTE=Jochen1980;80430]
Schau mir gerade deine Konfigurationsdatei an und wundere mich, dass da keine Regeln fürs public_html-Verzeichnis festgelegt sind?!
[/QUOTE]
Hab mich damit noch nicht befassen müssen, weil ich es nicht wirklich brauche. Wenn Du herausbekommst, wie das funktioniert, würde ich mich auch über eine Lösung freuen. Ich hab bisher alles direkt unter /var/www/. Das geht natürlich nicht auf einer produktiven Maschine 
Gruß
Deine Lösung gefällt mir nicht, Marco … ich denke ich brauche das public_html-Verzeichnis, da meine IDE Netbeans so das Web-Verzeichnis und das Projektordner-Verzeichnis automatisch synchron halten kann. In /var/www/ darf Netbeans nicht so ohne weiteres schreiben. Mist! Vielleicht hat jemand anderes dann noch eine Lösung … kann doch nicht so schwer sein. Ärgerlich ist vor allem, dass bereits eine Installation bei mir läuft ich aber den Verlauf nicht reproduzieren kann.
Und via symlink unter var/www zum eigentlichen Verzeichnis, in dem Netbeans schreiben darf?
Klingt gut, weiss aber nicht was das ist mit dem symlink?! Danke vorab für etwas mehr Aufklärung.
Ein Symlink ist die Linux-Entsprechung zur Verknüpfung unter Windows.
Du legst also in var/www quasi einen "Pseudo-"Ordner, der als Link auf ein anderes Verzeichnis zeigt und alle Anfragen dorthin umleitet.
Hi,
Symlink hab ich schon probiert. Da der aber nur in das Verzeichnis verweist, gibt es ebenfalls ein Rechte-Problem, wenn der user ohne sudo in /var/www/ schreiben möchte.
Aber guck mal hier #tadaa:
http://wiki.ubuntuusers.de/apache#Benutzerspezifisch
Sag mal Bescheid, ob’s geklappt hat.
Gruß
So jetzt habe ich es, glaube ich, mal schauen, ob es in Zukunft klappt!
<VirtualHost *>
DocumentRoot /home/joba/public_html/website_mbroth_shop/
ServerName shop-mbroth.localhost
<Directory /home/joba/public_html/website_mbroth_shop/>
Options Indexes FollowSymLinks MultiViews +Includes
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Jetzt ist das Vorgehen identisch mit dem Produktivbetrieb, hier lege ich ja auch meist eine Subdomain an. Netbeans, meine IDE, hat weiterhin Schreibrechte, hält so alles schön synchron und da meine .htaccess unangetastet bleibt, kann ich mir da auch nichts verbocken.
Super 
Ich probier das bei Gelegenheit auch aus. Danke!
Hi,
noch da, hat sich das bewährt?
Gruß