Freitag, 30. Dezember 2016

Oracle VirtualBox - Shared Folder - Virtual Host

Nach dem einbinden des Shared-Folders war der Zugriff für den Apache User nicht erlaubt (Forbidden 403) . Das Verzeichnis konnte zwar gemounted und mittels Symlink in das /var/www/html/ gemounted werden. Auch User und Group war dem Apachen zugewiesen, jedoch ohne Erfolg.

Diese Lösung wurde nur für ein Versuchsprojekt angewendet und deaktiviert gewisse Sicherheitseinstellungen.

Lösung

  • Der apache User wurde der vboxsf Gruppe zugewiesen.
    usermod -a -G vboxsf apache


  • Deaktivieren von selinux
    vim /etc/selinux/config → set SELINUX from enforcing to disabled

  • Erstellen des Links vom Mount zum Zielfolder
    ln -s /media/sf_php5 /mnt/share/php5

  • Entfernen von  /etc/httpd/conf.d/welcome.conf und erstellen eines neuen .config-Files (VirtualHost Eintrag)  vim example_php 5.conf mit folgendem Inhalt.
    <VirtualHost *:80>
        DocumentRoot /mnt/share/php5 
        <Directory /mnt/share/php5>
            Require all granted
        </Directory>
    </VirtualHost>  
  • Neustarten des Server 
    apachectl restart


Oracle VirtualBox - Shared Folder - Konfiguration

In den letzten Tagen war ich gezwungen eine virtuelle Maschine aufzusetzen, welche auf ein gemeinsames Verzeichnis mit dem Hostsystem zugreift. Im folgenden Ablauf zeige ich wie die aufgetretenen Probleme behoben werden konnten.

Enviroment

Host - Windows 10
VirtualBox - Centos 7 
Oracle VirtualBox Version - 5.1.10 
Development Tools are installed gcc version - gcc-Version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) perl version - v5.16.3 
Server version: Apache/2.4.6(Centos) 
Server build: Nov 14 2016 18:04:44

Problem
Bei dem Versucht die Gasterweiterung einzulegen wird dann die folgende Fehlermeldung ausgegeben.



Lösung
Nach mehreren Recherchen konnte ein Weg gefunden werden. 

  • Als erstes muss das Verzeichnis, welches als Shared-Folder verwendet werden soll in der VM als gemeinsamer Ordner definiert werden. Hierzu einfach das Verzeichnis unter den VM Einstellungen in der Rubrik "Gemeinsame Ordner" hinzufügen.



  • Beim Hinzufügen, müssen die folgenden Checkboxen auf angehackt sein.



  • Über den DOWNLOAD konnte die akutelle Version des  VBoxGuestAdditions.iso Files geladen werden. Dieses File muss anschließend in der VM unter der Rubrik "Massenspeicher" als CD-ROM Laufwerk geladen werden.



Auf der Commandline der VM werden nun einige Befehle ausgeführt um die Prozesse am Ziel zu installieren.
  • Als erstes muss das iso-File eingebunden werden

    mkdir --p /media/cdrom 
    cd /media/cdrom/ 
    mount -t auto /dev/cdrom cdrom/ 

    Nun sollten es möglich sein, den Inhalt des .iso-Files auszugeben.
  • Für die nächsten Schritte müssen ein weiteres Repository für YUM eingebunden und Programme installiert werden.

    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
   rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

         yum install bzip2 
    yum group install "Development Tools" 
    yum install dkms 
  • Neustart des Systems
  • Ausführen des Befehles  sh VBoxLinuxAdditions.run im .iso-File
  • Öffnen des Verzeichnis /opt/VBoxGuestAdditions-*/init und ausführen sh vboxadd setup. Sollte es zu Problemen kommen, ist es möglich  in der ersten Zeile der Datei vboxadd den Parameter -x für das Debugging anzuführen. 
          #! /bin/sh -x 


    Wenn der Status von ./vboxadd status folgende Message ausgibt  kann das Verzeichnis gemounted werden.
         The VirtualBox Additions are currently running
  • Nun kann der Shared-Folder hinzugefügt werden
    mount -t vboxsf php5 /mnt/share/php5/


Zusatzinfo vom 03. Jan 2017

Für den Fall, dass Sourcecode verwendet wird ist folgendes zu beachten:

Es kann sein, dass beim Speichern von Files in Windows und bei anschließender Verwendung unter Linux Probleme mit dem Zeilenumbruch auftreten. Eine Möglichkeit dies unter CentOS zu beheben ist, die Verwendung von dos2unix ( yum install dos2unix ). Dies korrigiert die Zeilenumbrüche von Windows auf  Unix Zeilenumbrüche.

In meinem Fall traten ein seltsames Verhalten bei der Verwendung von HTML Code auf.

  • Elemente wie <button ...> wurden falsch angezeigt.
  • Das geänderte HTML File wurde vom Browser nicht geladen, obwohl es im DocumentRoot korrekt vorlag.