J'ai configuré un serveur Apache avec l'URL suivant: https://dev.mysite.com
. Je suis en train de créer des sous-répertoires pour chaque projet que j'ai en développement. Par exemple, il peut s'agir de https://dev.mysite.com/project
ou de https://dev.mysite.com/anotherproject
. Certains des projets en développement utilisent le (s) framework (s) Laravel et Laravel Lumen.Apache héberge de nombreux projets laravel dans des sous-répertoires
Je n'utiliserai pas de fichier vhost pour chaque projet, car ils existeront dans les sous-répertoires. L'objectif est d'être en mesure de visiter https://dev.mysite.com/project/public/
et avoir l'application Laravel, ou Lumen, servie à l'utilisateur visitant le projet. Je suis d'accord pour que le client visite/public/pour voir leur projet. Cela n'arrive pas.
-Indexes
a été défini sur le fichier virtualhost du serveur pour empêcher la liste des fichiers/répertoires dans le navigateur.
Lorsque je navigue vers {url}/project/public/heartbeat
(par exemple), la route n'est pas servie (ou analysée) correctement. Quand je fais un die
du $_SERVER['REQUEST_URI']
je reçois /project/public/heartbeat
. La route heartbeat
est configurée comme suit: $app->get('/heartbeat', '[email protected]');
. La consultation de cette URL donne l'exception HTTP non trouvée typique du code Illuminate. Toutefois; quand j'ajoute project/public/
au début du chemin d'itinéraire (résultant en $app->get('/project/public/heartbeat'...
) cela fonctionne. J'ai essayé d'ajouter les paramètres RewriteBase /
et RewriteBase /project/public/
et RewriteBase /project/
au fichier .htaccess et aucun ne fonctionne. Je sais que le .htaccess est utilisé (je peux ajouter 'asdf' au fichier et le casser). Le module mod_rewrite est activé.
Voici les fichiers de configuration pour le vhost et le fichier project/public/.htaccess.
.htaccess:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [L]
</IfModule>
vhost:
<VirtualHost *:80>
ServerName dev.mysite.com
Redirect permanent/https://dev.mysite.com
</VirtualHost>
<VirtualHost *:443>
ServerName dev.mysite.com
DocumentRoot /var/www/public
<Directory /var/www/public>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/dev-error.log
CustomLog ${APACHE_LOG_DIR}/dev-access.log combined
ErrorDocument 403 https://dev.mysite.com
</VirtualHost>
S'il vous plaît laissez-moi savoir si vous avez besoin de plus amples informations. Encore une fois, l'objectif final est d'être en mesure de visiter https://dev.mysite.com/project/public/
et avoir l'application Laravel, Lumen, etc. servis à l'utilisateur visitant le projet.