Overview.

Note: We actually offer a free installation service! So if you need any assistance, please feel free to create a support ticket with your installation request and include your host cPanel access credentials. Our experts will take care of installing the software for you in no time.

To use phpListings, you must have your own web server or hosting account since it is a self-hosted software. The server requirements are outlined in the "Server Requirements" manual, so please make sure to check that before proceeding with the installation.

Here's an overview of the steps you need to take to install the phpListings software on your server:

  • Download the script package from your phpListings.com client panel.
  • Extract the files onto your local computer.
  • Transfer the extracted files to your hosting server using FTP.
  • Adjust file and directory permissions as needed.
  • Create a new MySQL database, or use an existing one.
  • Upload the database dump.
  • Modify the script's configuration files to include your license key and database credentials.
  • Open the script's administrator panel and complete the final configuration steps to ensure your installation is secure.

 

Downloading The Installation Package.

To download the software installation package from your phpListings.com client panel, you'll need an active software license. Once you have that, follow these steps:

  • Log in to your phpListings.com client panel and find the license you want to download the package for.
  • Click the "Manage" button next to that license.
  • On the license page, you'll see a "Download" button in the "Download" section. Click that button.
  • When your browser's download notification window appears, make sure to save the file to your local folder.

If your download access for a license has expired, the download link won't be available. In that case, you'll need to purchase a Download Access Renewal service for another year to access the software installation package.

 

Extracting Files.

After you download the software installation package from your phpListings.com client panel, you'll get a compressed ZIP file containing the package files. Extract (unzip) the package files to a local folder on your computer. It's a good idea to create a new folder specifically for these files. Most modern operating systems include built-in support for ZIP archives. Check your operating system manual for instructions on how to extract the archive files into a folder.

 

Transferring Files to the Server.

We recommend using the FTP protocol and a free multi-platform FTP client like Filezilla to upload the extracted files to your server. Check the Filezilla manual for instructions on how to upload files from your local folder to your web server.

The uncompressed package contains three main directories: "app", "public", and "vendor".

You'll need to upload the contents of the "public" folder (not the "public" folder itself) to your web server's web root directory which is usually called /public_html. This directory is publicly accessible on the Internet and typically contains index.php or index.html placeholder files.

The "app" and "vendor" directories, along with the files located in the package root, should be uploaded to the directory one level above the web root. This will help secure the framework and any user-uploaded files.

 

Setting File Permissions.

After you've uploaded all the necessary files to your server via FTP, you'll need to adjust some of the directory and file permissions to ensure the PHP user can access them for writing. We recommend using Filezilla or your preferred FTP client to manage these permissions.

The following directories need to be made writable:

  • /app/Cache
  • /app/Exports
  • /app/Imports
  • /app/Imports/Logs
  • /app/Imports/Temp
  • /app/Sessions
  • /app/Storage
  • /app/Storage/Large
  • /app/Storage/Medium
  • /app/Storage/Small
  • /public/assets
  • /public/sitemap/categories
  • /public/sitemap/listings
  • /public/sitemap/locations
  • /public/sitemap/pages
  • /public/sitemap/types

Generally, setting the access permission to -rwxrwxr-x (CHMOD 775) is a good choice, but we recommend checking your hosting service manual for instructions on making a directory writable for a web server. In some cases, no permissions alteration is necessary.

In addition, these files must be made writable:

  • /license.bin
  • /public/robots.txt
  • /public/sitemap.xml

For these files, set the access permission to -rw-rw-r-- (CHMOD 664).

 

MySQL Database Setup.

phpListings software relies on the MySQL relational database management system to store its data. To set up the software, you can either create a new database or use an existing one. However, it's important to make sure that the database has an associated user account with all necessary privileges for accessing and modifying all tables in that database.

If you choose to use an existing database that's already being used by other software, please note that we add the "phpls_" prefix to all phpListings database tables to avoid overwriting any of your existing data.

Here's a brief manual on how to create a new database and user account and associate them in cPanel:

  • Log in to your cPanel account.
  • Scroll down to the "Databases" section and click on the "MySQL Databases" icon.
  • In the "Create a New Database" section, enter a name for your new database and click the "Create Database" button.
  • In the "Add New User" section, enter a username and password for your new user account, then click the "Create User" button.
  • In the "Add User to Database" section, select your new database and user account from the drop-down menus, then click the "Add" button.
  • On the next page, select "All Privileges" for your user account, then click the "Make Changes" button to save the changes.

That's it! You should now have a new database and user account set up and associated with each other in cPanel.

 

Importing Database Dump.

Once the database setup is complete, the next step is to import the initial database dump. This will create all the necessary database tables and populate them with initial data. You can find the "dump.sql" file to import in the root folder of the software package.

To import the dump, we recommend using the phpMyAdmin tool. This free tool is typically available through your web hosting control panel and is designed to make database management tasks like this easier.

Here is a short guide on how to import a database dump in cPanel:

  • Log in to your cPanel account and navigate to the "Databases" section.
  • Click on "phpMyAdmin" to open the database management tool.
  • Select the database that you want to import the dump into, from the list of databases on the left-hand side.
  • Once you have selected the database, click on the "Import" tab in the top menu.
  • Click on the "Choose File" button, and select the database dump file ("dump.sql") that you want to import from your local computer.
  • In the "Format" dropdown, select "SQL" as the import format.
  • Click on the "Go" button at the bottom of the page to start the import process.
  • Wait for the import process to complete. This could take a few minutes.
  • Once the import process is complete, you should see a message indicating that the import was successful.

 

Altering Configuration Files.

To configure the most important script settings, access your installation using Filezilla or your preferred FTP client and edit the following script files:

/app/Config/App.php: Insert your license key and website URL as shown in the example below:

<?php

return [
    // INSERT YOUR PHPLISTINGS LICENSE KEY HERE
    'license' => 'PHPLS-4d519ffa5d4b',
    
    'debug' => false,
    'charset' => 'utf-8',
    // INSERT YOUR WEBSITE URL HERE, WITHOUT A TRAILING SLASH
    'url' => 'https://demo.phplistings.com',
    'admin_directory' => 'admin',

    'locale_fallback' => 'en',
    'locale_url_default_exclude' => true,
    'locale_browser' => false,
    'locale_storage' => 'files',
    'locale_path' => ROOT_PATH_PROTECTED . DS . 'I18n',

    'storage_path' => ROOT_PATH_PROTECTED . DS . 'Storage',
    'storage_size_limit_per_ip' => 1024*1024*250,
    'storage_file_limit_per_ip' => 1000,
];

 

/app/Config/Db.php: Set your database host, database name, username, and password, as shown in the example below. Please note that you should not modify the driver name, charset, and collation.

 

<?php

return [
    'default' => [
        'driver' => 'mysql',
        'host' => '127.0.0.1',
        'port' => '3306',
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_general_ci',
        'db' => 'DATABASE NAME HERE',
        'username' => 'DATABASE USER NAME HERE',
        'password' => 'DATABASE USER PASSWORD HERE',
        'prefix' => 'phpls_',
    ],
];

 

Final Steps.

Now that we've gone through all the necessary steps and have everything set up, it's time to access the administrator panel and do some final configuration updates to secure your installation. Once you've done that, your installation will be complete and ready to use.

To access your website's administrator panel, please visit https://your-domain-name.tld/admin. The first time you log in, you'll need to use the following credentials:

Email: admin@phplistings.com
Password: admin

Once you're logged in, click on the "Users" menu and then on the "Users" sub-menu. You'll see the only administrator account listed there. Click the "Edit" button next to the user record, then on the user form, refresh the authentication token by clicking the "refresh" icon in the "Authentication Token" field, set a new email address and password for your administrator account, and click "Update" to save your changes. This will help ensure your account is secure.

Finally, click on the "Security" tab on the "Settings - Settings" page. You'll see two options for encryption and authentication keys. Click the "refresh" icon for each field to generate a new hash value, then click "Update" to save your changes.

Congratulations, you're all set up! If you have any questions about the installation process, please don't hesitate to submit a support ticket.