iPanel Installation Manual

<!-- Unable to read content directory /www/sites/centova.com/wiki/doc/ipanel/installation_manual/ -->

iPanel Installation Manual

System requirements

  • PHP v5.x
  • MySQL v5.x
  • Apache 2.2+ or nginx 0.7+ (note: nginx is not compatible with forced ads)
  • PHP's libcurl and openssl extensions required for some functionality
  • Root access is required to install forced ads and the prohibited file scanner
  • mod_forcedads is required for forced ads (available from your client area)

Installation

  1. Upload the iPanel folder to your web server's public_html directory. You can rename the iPanel folder to any name you like (eg: billing, clients, etc.)

  2. Make the following folders (under your iPanel directory) and all of the files they contain writable by the web server:

    /conf
    /ads
    /media
    

    If you are a novice user, the simplest way to do this is by setting their permissions to 0777 with the chmod command. This will work fine, but it is insecure.

    If you care about security, however, you will need SSH access to the server to set the permissions properly. If you have SSH access, this can be done by running:

    cd /path/to/ipanel
    chgrp -R nobody conf ads media
    chmod -R g+w conf ads media
    

    Replace "nobody" with your web server's UNIX user group. Usually it will be "nobody" or "www-data". If you are unsure, ask your web hosting provider.

  3. Create a MySQL database and write down the MySQL connection information. You would do this in phpMyAdmin or whatever interface your web hosting provider has made available for managing MySQL databases.

  4. If you wish to offer file downloads to your clients as part of the packages you sell, create a directory above your public_html for downloadable files. For example, if your public_html directory is located at /home/yourname/public_html, you should create a directory named (for example) /home/yourname/downloads or similar.

    This new directory must be made writable using the same procedure described in step 2 above (eg: set it to chmod 0777 or make it group-writable).

  5. To complete the automated installation, launch your web browser and visit the following URL:

    http://www.yourdomain.com/ipanel_folder/install/

    Replace yourdomain.com with your actual domain, and ipanel_folder with the name of the folder you used for iPanel in step 1.

    The installer will prompt you for various information such as your MySQL connection details. Follow each step through to completion.

  6. After completing the web-based installation steps, delete the installation folder (/install) under your iPanel folder. It is important to remember to remove this for security reasons.

  7. If you are using a web hosting control panel (cPanel, Plesk, etc.) you can likely skip this step and proceed to step 8.

    If you are NOT using a web hosting control panel, and you are managing your web server manually via SSH:

    • If you are using Apache, ensure that Apache's mod_rewrite module is installed and enabled. If it is not, install it, enable it, and restart Apache.
    • If you are using nginx, add the following to your nginx configuration file inside the server block for your web site configuration, replacing ipanel_folder with the name of the folder you used for iPanel in step 1:

      rewrite ^/ipanel_folder/payment/return.php/.* /ipanel_folder/payment/return.php;
      
  8. Next, you must configure iPanel's cron jobs. The procedure for doing this may vary depending on how you access your server, but typically this step is performed by logging in to your web hosting control panel (eg: cPanel, DirectAdmin, etc.) and going to the Cron Jobs configuration section.

    • Select the option to create a new cron job. Under cPanel, you will need to select "Simple" mode.
    • For the command to run, enter the following:

      php -q /path/to/public_html/ipanel_folder/cron/cronjob.php
      

      Replace /path/to/public_html with the actual path to your public_html directory (usually /home/username/public_html, where username is the username of your web hosting account) and replace ipanel_folder with the name of the folder you used for iPanel in step 1.

    • Set the cron job to run every 2 minutes. (This is a "master" job scheduler which will in turn dispatch all of the jobs necessary for invoice generation and so-on at the appropriate times.)

    Example cron job configuration:

    */2 * * * * php -q /home/username/public_html/ipanel/cron/cronjob.php
    
  9. If you do not have root access to your server, you will not be able to use forced ads nor the prohibited file scanner. If you do not have root access to your server, the installation is now complete and you should skip to step 11.

    If you do have root access to your server, launch your web browser and visit the following URL:

    http://www.yourdomain.com/ipanel_folder/exclude/phpinfo.php
    

    Replace yourdomain.com with your actual domain, and ipanel_folder with the name of the folder you used for iPanel in step 1.

    Scroll down to the section regarding Apache information. Under the list of loaded Apache modules, verify that mod_forcedads appears. If it does not, you have not yet installed the mod_forcedads module and will need to download that from your client area (at https://centova.com/cp/) and install it before proceeding.

  10. Next, you must configure the forced ads cron job by logging in to the server as root and running:

    crontab -e
    

    Add the following to the end of the file:

    */10 * * * * root php -q /path/to/public_html/ipanel_folder/cron/cronjob.php --job=httpd_conf --apache2
    

    Replace /path/to/public_html with the actual path to your public_html directory (usually /home/username/public_html, where username is the username of your web hosting account) and replace ipanel_folder with the name of the folder you used for iPanel in step 1.

    This configures iPanel to check for new accounts and apply forced ads to them every 10 minutes. If you prefer that new accounts have forced ads applied more quickly, you can reduce this value (eg: using */2 to run the cron job every 2 minutes) instead.

  11. Your iPanel installation should now be ready to use. You can log in to configure iPanel at:

    http://www.yourdomain.com/ipanel_folder/

    Again, replace ipanel_folder with the name of the folder you used for iPanel in step 1.

Installing Forced Ads RPC System

The RPC system is used to apply forced ads and perform prohibited file scanning on a different server (or servers) than the one on which iPanel is actually hosted. If, for example, you have 3 web hosting servers, where iPanel is installed on server #1 and servers #2 and #3 are only used for free hosting clients, iPanel can apply forced ads (and scan for prohibited files) on all three servers without separately installing iPanel on servers #2 and #3.

To prepare a remote server with the RPC system:

  1. Copy the rpc folder from your iPanel folder to the remote server. Place it under a valid web root, eg: /home/username/public_html/rpc/ or similar.

  2. On the remote server, make the forcedads/data/ folder (under the rpc/ folder you created in step 1 above) writable by the web server.

    If you are a novice user, the simplest way to do this is by setting their permissions to 0777 with the chmod command. This will work fine, but it is insecure.

    If you care about security, however, you should set the permissions properly by running:

    cd /path/to/public_html/rpc/
    chgrp -R nobody forcedads/data
    chmod -R g+w forcedads/data
    

    Replace "nobody" with your web server's UNIX user group. Usually it will be "nobody" or "www-data". If you are unsure, ask your web hosting provider.

  3. On the remote server, edit /rpc/conf.inc.php and set the API_KEY setting to a long (32+ letters) password.  This is used as an access key to ensure that only iPanel can remotely this server.

  4. In the iPanel administration area, click Servers, then choose a server type and click Create. (Or, if you have already configured the remote server in iPanel, simply edit it.)

  5. Configure the server settings appropriately. For RPC URL, enter the URL to the rpc folder on the remote server. For example:

    http://www.otherserver.com/rpc/

    For RPC Key, enter the value you chose for API_KEY in step 2 above.

  6. At this point, the RPC subsystem is configured and ready to use.

    To enable remote prohibited file scanning, just turn on the prohibited file scanning feature in iPanel and it will automatically scan the remote server.

  7. To enable remote forced ads on the remote server, log in to the remote server as root and run:

    crontab -e
    

    Add the following to the end of the file:

        */10 * * * * root php -q /path/to/public_html/rpc/forcedads/cronjob.php
    

    Replace /path/to/public_html/rpc/ with the actual path to your rpc/ directory that you created in step 1 above.

    If you altered the timing of the cron job when configuring forced ads on the main server, you should set the timing of this cron job to be identical to the main server otherwise the ad rotation will become out-of-sync.

Installing Post-for-Hosting RPC System

The RPC system is used to perform post-count checking in a forum hosted on different (remote) server than the one on which iPanel is installed.

Note that if you have already prepared the remote server with the forced-ads RPC system (described in the section above) you can skip steps 1-3 and proceed directly to step 4.

To prepare a remote server with the RPC system:

  1. Copy the rpc folder from your iPanel folder to the remote server. Place it under a valid web root, eg: /home/username/public_html/rpc/ or similar.

  2. On the remote server, make the forcedads/data/ folder (under the rpc/ folder you created in step 1 above) writable by the web server.

    If you are a novice user, the simplest way to do this is by setting their permissions to 0777 with the chmod command. This will work fine, but it is insecure.

    If you care about security, however, you should set the permissions properly by running:

    cd /path/to/public_html/rpc/
    chgrp -R nobody forcedads/data
    chmod -R g+w forcedads/data
    

    Replace "nobody" with your web server's UNIX user group. Usually it will be "nobody" or "www-data". If you are unsure, ask your web hosting provider.

  3. On the remote server, edit /rpc/conf.inc.php and set the API_KEY setting to a long (32+ letters) password.  This is used as an access key to ensure that only iPanel can remotely this server.

  4. In the iPanel administration area, click Post for Hosting, then click New Forum.

  5. Configure the forum settings appropriately. For RPC URL, enter the URL to the rpc folder on the remote server. For example:

    http://www.otherserver.com/rpc/

    For RPC Key, enter the value you chose for API_KEY in step 2 above.

    For Database hostname, enter the database hostname relative to the remote server -- that is, if MySQL is running on the same machine as the forum software, enter localhost.

  6. At this point, the RPC subsystem is configured and ready to use.

    To enable remote post-for-hosting support, just create a new package that uses the forum you just created.