ProEvilz
ProEvilz

Reputation: 5455

How do I install other applications alongside Laravel?

I'm building a website in Laravel 5.2 and rather than building a forum from scratch, I wish to install one such as SMF.

Laravel is currently in the root directory of my web server and I wish to keep it there as I wish to install SMF in a folder.

For example: www.example.com/smf

I'm thinking to install it in Laravel's /public folder but I'm afraid they will they conflict with each other. Is the /publicfolder the correct place to install SMF and should I use a route to point to the SMF folder?

Server: D.O droplet via Laravel Forge

Upvotes: 0

Views: 380

Answers (2)

Alexey Mezenin
Alexey Mezenin

Reputation: 163768

You need to add custom rules for the folder(s) you want to use before Laravel related rules:

location /smf/index.php(/.*)?$ {        
    fastcgi_split_path_info ^(/smf/index.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_read_timeout 1000;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    include fastcgi_params;
}
location /smf/ { 
    if (!-e $request_filename) {
            rewrite ^.*$ /smf/index.php last;    
        }
    try_files $uri $uri/ smf/index.php?args; 
}

Please look for sample nginx config file here.

Upvotes: 1

Nasreddine
Nasreddine

Reputation: 37808

You could use Nginx to redirect www.example.com/smf to your SMF installation. To do so add this to your server block:

location /smf {
    # nginx will concatenate the string above with the root value
    # so your SMF files should be in "/path/to/smf/parent/dir/smf".
    # Make sure that Nginx can access them.
    root "/path/to/smf/parent/dir";

    # change this config to suit your needs
    index  index.php index.html index.htm;

    location ~ \.php$ {

        # Here use the same config from the server block that allows you
        # to execute PHP scripts
        fastcgi_pass   127.0.0.1:9123;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

A couple of things I should add:

  • Backup the config file before editing them.
  • Although I've tried the code above (and it works on my machine™) I must say that I'm not an Nginx expert.

Upvotes: 1

Related Questions