===How to migrate/upload a Laravel website/project on N99panel=== **Step 1 :** Prepare archive of the Laravel website/project files/folders. This archive has to be of the folder containing the Laravel setup, for e.g. if our setup looks like the following public_html |__ app (folder) |__ bootstrap (folder) |__ .... (other folders) |__ .env (file) |__ composer.json (file) |__ .... (other files) We would make the archive or a zip/gz/bz2 file of the public_html folder. Typically on your PC you would right-click on public_html folder and do the necessary steps to prepare the archive. Also you need to get the SQL file corresponding to your project setup. That you can easily get/export from PHPMyAdmin which most likely would be installed on your system or the system from where you are migrating from. **Step 2 :** Now in N99panel, [[:n99panel:create_user|create a user]] and a [[:n99panel:create_vhost|Website/VHost]] under it **Step 3 :** Also now create a [[n99panel:create_mysql_pair|MySQL DB and a user pair]]. The same DB would be populated/used later **Step 4 :** Upload both the archive file and the sql (can be zipped) file into the user directory using a SFTP client like FileZilla **Step 5 :** Now under N99panel dashboard, click on 'VHosts/Websites' {{:wordpress:dashboard-click-vhosts.png?direct&400|}} **Step 6 :** You will see the list of all the VHosts. Please click 'Details/Manage' link against the appropriate VHost/Website {{:wordpress:vhosts-lists-details.png?direct&400|}} **Step 7 :** Now click on ‘Restore an Archive to the VHost’ . {{:laravel:retsore-archive.png?direct&400|}} \\ **Step 8 :** Now you would be prompted to enter the uploaded archive file name. Click Submit to restore the archive. {{:laravel:retsore-archive-form-2.png?direct&400|}} Restoration of large archives can take time. Please ensure from from Dashboard >> Tasks, that all the requisite tasks are completed before going on to the next steps. **Step 9 :** [[n99panel:restore_sql_file|Restore]] the uploaded SQL file to the DB. For a new Laravel setup, this step may not be required. **Step 10 :** Modify the .env file of your Laravel project with the appropriate settings especially w.r.t. MySQL **Step 11 :** Now if you are using Laravel 8 or before, and if index.php files are present in both the Laravel setup directory, and the public directory within it, your Laravel project should be able to work now. \\ \\ For Laravel 9 and 10, index.php may not be present in the Laravel setup directory, but the public folder within the base directory will contain the index.php (the start point). Under Laravel 9 and 10, this ensures better security when the document root of the web-server points to that public folder. To make the document root to point to the public folder, we would need to [[n99panel:root-dir-extn|extend the root dir]]