Installation de cakePHP sous LAMP

Par maximeshr, il y a 12 ans


Bonsoir à tous !
Je viens vers vous, car j'ai un léger problème avec l'instalation de cakePHP sous mon serveur local LAMP.

Après avoir cloné le github de cakePHP à l'aide d'un petit alias ! alias getcake="git clone https://github.com/cakephp/cakephp.git cakePHP", RIEN, NADA, ... :'(

Enfin juste une erreur :

Not Found

The requested URL /media/www-dev/public/cakePHP/app/webroot/ was not found on this server.
Apache/2.2.22 (Ubuntu) Server at localhost Port 80

L'arborescence est bien présente :

bluebear@bluebear-laptop:~$ ll /media/www-dev/public/cakePHP/
total 72
drwxr-xr-x 7 bluebear bluebear 4096 Oct 8 21:22 ./
drwxr-xr-x 6 bluebear users 4096 Oct 8 21:21 ../
drwxrwxr-x 14 bluebear bluebear 4096 Oct 8 21:22 app/
-rw-rw-r-- 1 bluebear bluebear 174 Oct 8 21:22 build.properties
-rw-rw-r-- 1 bluebear bluebear 10347 Oct 8 21:22 build.xml
-rw-rw-r-- 1 bluebear bluebear 3184 Oct 8 21:22 CONTRIBUTING.md
-rw-rw-r-- 1 bluebear bluebear 265 Oct 8 21:22 .editorconfig
drwxrwxr-x 8 bluebear bluebear 4096 Oct 8 21:22 .git/
-rw-rw-r-- 1 bluebear bluebear 333 Oct 8 21:22 .gitignore
-rw-rw-r-- 1 bluebear bluebear 139 Oct 8 21:22 .htaccess
-rw-rw-r-- 1 bluebear bluebear 1467 Oct 8 21:22 index.php
drwxrwxr-x 3 bluebear bluebear 4096 Oct 8 21:22 lib/
drwxrwxr-x 2 bluebear bluebear 4096 Oct 8 21:22 plugins/
-rw-rw-r-- 1 bluebear bluebear 1670 Oct 8 21:22 README.md
-rw-rw-r-- 1 bluebear bluebear 3592 Oct 8 21:22 .travis.yml
drwxrwxr-x 2 bluebear bluebear 4096 Oct 8 21:22 vendors/

Voici le contenu des mes trois .htaccess :

  1. cakePHP/.htaccess

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^$ app/webroot/ [L]
    RewriteRule (.*) app/webroot/$1 [L]
    </IfModule>

  2. cakePHP/app/.htaccess

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^$ webroot/ [L]
    RewriteRule (.*) webroot/$1 [L]
    </IfModule>

  3. cakePHP/app/webroot/.htaccess

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    </IfModule>

__________________________________________________________________

Je travaille sous PHP 5.3 :

PHP 5.3.10-1ubuntu3.8 with Suhosin-Patch (cli) (built: Sep 4 2013 20:00:51) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

J'ai installé mon serveur LAMP en suivant ce tutorial : http://doc.ubuntu-fr.org/lamp
De plus, je l'utilise pour développer des application Symfony2 sans aucun problème... Mais bon, souhaitant revenir aux bonnes vieilles habitudes :'D

J'ai configuré mes répertoires de travail en suivant ce tutorial : http://doc.ubuntu-fr.org/tutoriel/lamp\_repertoires\_de\_travail

__________________________________________________________________

Voici mes fichiers de configuration sites Apache2 (/etc/apache2/sites-available/default) :

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order deny,allow
        deny from all
        allow from 127.0.0.1
        allow from 192.168.1.0/24
    </Directory>
    Alias /public /media/www-dev/public
    <Directory /media/www-dev/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    Alias /private /media/www-dev/private
    <Directory /media/www-dev/private>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order deny,allow
        deny from all
        allow from 127.0.0.1
        allow from 192.168.1.0/24
        allow from .w3.org
        allow from sandbox.paypal.com
    </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>

__________________________________________________________________

Le mode rewrite est bel et bien activé et présent dans ma configuration de mon serveur (visible avec un phpinfo();) :

Loaded Modules : 
core
mod_log_config
mod_logio
prefork
http_core
mod_so
mod_alias
mod_auth_basic
mod_authn_file
mod_authz_default
mod_authz_groupfile
mod_authz_host
mod_authz_user
mod_autoindex
mod_cgi
mod_deflate
mod_dir
mod_env
mod_mime
mod_negotiation
mod_php5
mod_reqtimeout
<strong>mod_rewrite</strong>
mod_setenvif
mod_status

__________________________________________________________________

Voila, je vous laisse la parole, et je continue de chercher le pourquoi du comment !

9 réponses

maximeshr, il y a 12 ans

En effet, je me place bien sur localhost/public/cakePHP
J'ai déjà redémarrer plusieurs fois apache sans succès ... :'(

Ch0c4, il y a 12 ans

quand tu vas sur le lien http://localhost/public est-ce que tu vois ton dossier cakePHP si c'est pas le cas c'est que tu n'as pas fait de lien symbolique de /var/www vers /media/www-dev/public pour cela tu vas dans ton dossier /var/www et tu tape

sudo ln -s . /media/www-dev/public

ou l'inverse je sais plus vraiment

si tu vois ton dossier cakePHP dans http://localhost/public sa doit être bon

maximeshr, il y a 12 ans

Mon dossier /media/www-dev/public est relié à /var/www/public ... par un lien symbolique justement :°D

Lorsque je vais sur http://localhost/ je vois mon arborescence (phpmyadmin/private/public).
Dans public, je vois mes sites stocké sur /media/www-dev/public (et vu qu'il y a un lien symbolique dessus, il se retrouve également dans /var/www/public) et cakePHP y est bien présent !

Mais lorsque je clique dessus, erreur (not found the requested URL /media/www-dev/public/cakePHP/app/webroot/ was not found)

Lors que je retire le .htaccess du dossier racine, j'accède cependant bien aux pages, ce qui me laisse penser à un soucis au niveau des redirections.

Ch0c4, il y a 12 ans

Ok peut-être que je tape en touche mais tu peux changer dans /etc/apache2/site-available/default la ligne

<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order deny,allow
        deny from all
        allow from 127.0.0.1
        allow from 192.168.1.0/24
    </Directory>

par

<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order deny,allow
        deny from all
        allow from 127.0.0.1
        allow from 192.168.1.0/24
    </Directory>

et restart apache bien sur

sinon réessaye une installation en faisant juste dans le bon dossier

git clone https://github.com/cakephp/cakephp.git cakePHP

et si sa marche toujours pas voila ma config :

j'ai crée un dossier htdocs dans mon dossier $user

mkdir ~/htdocs

ou dedans j'ai fait un git clone de cakephp

mon fichier /etc/apache2/site-available/default

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>
        <Directory ~/htdocs/>
                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
</VirtualHost>

j'ai un lien symbolique dans mon dossier /var/www/ qui pointe vers ~/htdocs en faisant un

sudo ln -s user ~/htdocs

j'ai bien sur installer la réécriture d'url en tapant

sudo a2enmod rewrite

j'ai mis les droits d'écriture sur app/tmp comme un barbare

sudo chmod -R 777 ~/htdocs/cakephp/app/tmp

j'ai rebooter apache

sudo service apache2 restart

et je vais sur la page localhost/user/cakephp pour voir le résultat

tout sa sans changer un seul fichier du framework

maximeshr, il y a 12 ans

Bon aucune de vos suggestions ne fonctionnent... Je pense donc qu'il s'agit d'une erreur de manipulation de mon LAMP. Je vais donc ré-installer et recommencer. Je vous tiens au jus les amis !

Merci en tout cas du temps que vous m'avez consacré !

coloo, il y a 12 ans

Il est toujours compliqué de trouver les problemes des gens au niveau des installetions, surtout si on ne les a pas eu :)

Bonne continuation.

maximeshr, il y a 12 ans

Tout à fait ! Je vais faire mon maximum :')