20 June, 2011

Sådan: Cakephp og Ubuntu konfiguration

Når CakePHP installeres på en Ubuntu server, så forsvinder layoutet. Det skyldes problemer med konfigurationen af mod_rewrite. Opskrifterne på nettet er ikke altid komplette, så her er den opskrift, der (endelig) virker for mig på Ubuntu 10.04.



Download CakePHP og pak filerne ud, hvor du vil have din cakeroot, jeg bruger fx:

# /var/www/cake/
Husk at give læserettigheder og at tmp skal være skrivbar:
# sudo chmod -R 775  /var/www/cake
# sudo chmod -R 777 /var/www/cake/app/tmp

Først skal mod_rewrite aktiveres i apache, dette gøres i et terminalvindue:

# sudo a2enmod rewrite

Så skal filen /etc/apace2/sites-available/default rettes:

# sudo gedit /etc/apace2/sites-available/default

Tilføj disse linjer:

    <directory /var/www/cake/app/webroot>
        AllowOverride All
    </Directory>
    <Directory /var/www/cake>
        AllowOverride All
    </Directory>
    <directory /var/www/cake/app>
        AllowOverride All
    </Directory>

Måske burde man kunne nøjes med at give tilladelsen AllowOverride All i ../cake; men det virkede ikke på mit system. Til gengæld virker ovenstående.

Herefter skal Apache genstartes:

# sudo /etc/init.d/apache2 restart

 Nu mangler de sidste detaljer. På skærmbilledet kan man læse, at "security salt"skal ændres, og at oplysningerne om databasen skal være korrekte. Tilføj disse detaljer i ../cake/app/config/core.php (security salt). I samme directory omdøbes database.php.default til database.php. Filen skal rettes, således at databaseoplysningerne bliver korrekte:


class DATABASE_CONFIG {

    var $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'user',
        'password' => 'password',
        'database' => 'database_name',
        'prefix' => '',
    );

    var $test = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'user',
        'password' => 'password',
        'database' => 'test_database_name',
        'prefix' => '',
    );
}

Tilbage står kun at tjekke om sagerne virker i en browser:

# firefox http://localhost/cake (bare for at være kontrær og initiere firefox fra et terminalvindue...)

No comments: