Requires 4.x.x version ionCube Loaders (more info)
Associate-O-Matic is encoded with the ionCube encoder, which requires a special "loader" program to run the PHP the store.php and admin.php scripts. We have bundled the loaders in the ioncube directory of the zip archive, and Associate-O-Matic is designed to automatically use the appropriate loader whenever possible.
1. What is IonCube?
IonCube is a PHP encoder, which is used to encrypt PHP source files. It prevents the AOM code from being copied, altered or used in other programs without permission. Basically it secures the program to prevent it being stolen.
2. Why is it now being used with AOM?
The AOM source code prior to V4.2.0 was encrypted in a different manner, which used the aom.php file to secure the code. Eventually this encryption was cracked, and pirated copies of the software began to appear. IonCube uses a much stronger method of locking the code. Also, since Amazon has introduced extra AWS keys, this means all the pirate copies will no longer function after August 15th, 2009.
3. Do I need to buy a license to use IonCube with AOM?
No! AOM customers do not need to purchase an IonCube license to use it with their stores. A license is required for the developer who uses IonCube to encrypt their code, but not for the end user. We bought the license - it's totally, completely, 100% free for you to use with whichever version of AOM you have.
4. How do I install ionCube?
For many users, IonCube will install automatically; you don't have to do anything special other than the usual AOM upgrade process. Others may have to delve into a manual install. In these cases, basically what you're doing is providing a path for your server to load the IonCube files. When you install or upgrade to a version of AOM that uses IonCube, you might find a message like this when you try to log into the control panel:
Site error: the file /usr/www/users/accountname/public_html/store/admin.php requires the ionCube PHP Loader ioncube_loader_lin_5.2.so to be installed by the site administrator.
Make a note of the part up to '/admin.php'. That's the file path we'll need in a moment, replacing 'admin.php' with '/ioncube'. You should then point your browser to the ioncube-loader-helper.php file in the /ioncube directory:
Then click on the php.ini installation instructions. The important information here is in the green box: zend_extension = /<path>/ioncube_loader.lin_5.2.so. Fill in the <path> spot with the file path you got from the initial message, adding the /ioncube folder in place of 'admin.php': /usr/www/users/accountname/public_html/store. What you end up with is:
zend_extension = /usr/www/users/accountname/public_html/store/ioncube/ioncube_loader.lin_5.2.so
This is the file path to the IonCube loader you need. The next step is to add this line to your php.ini file. If there are any other 'zend_extension =' lines in the file, add the new line above them. Ask your webhost for help if you're unsure about how to edit your php.ini file. Your webhost can also tell you if the server needs restarted or not once the file is added. And that should do it. Returning to http://yourstorename.com/ioncube/ioncube-loader-helper.php should tell you if the install was a success or not (remember your server may need restarted). Some servers may have slightly different methods, but this is the basic format.
5. What if the loader file I need isn't included in the /ioncube folder?
The loaders included with AOM are the most common, but not all of the loader files IonCube has available . You can go directly to the IonCube loader download site to look for the one you need. If you don't see it there, contact IonCube directly for assistance. Also, note that the files included with AOM are 32-bit only. For 64-bit loader files, see the link above.
6. Is there an easier method than that?
It will depend on your host. There are alternative methods for Bluehost, Dreamhost, GoDaddy, Ipower and Jumpline customers below. We will try to add more information about other hosts as we hear about them. Check with your own host for details about how they use or don't use IonCube.
Bluehost - They have an FAQ Thread that explains how to activate IonCube.
Dreamhost - Strictly speaking DH does not appear to authorize changes to the php.ini file. However, an automated script is available from http://sxi.sabrextreme.com/forum/viewtopic.php?f=3&t=3 that does it all for you. The script is free (donations are accepted), but site registration is required.
GoDaddy - You will also need to create a /temp subfolder in your site directory. Then create a file named php5.ini in the directory where your shop.php and admin.php files are. In this file, place these lines, filling in the path with the information for your site:
zend_extension = /<path>/ioncube/ioncube_loader_lin_5.2.so
session.save_path = "/<path>/temp"
NOTE: The ioncube_loader should match the one indicated in the green box when you view the 'ioncube-loader-helper.php' file. You will not need to restart the server, and should be able to access admin.php as soon as you save the php5.ini file.
NOTE: There have been some instances where the default php.ini file overrides any custom version in a subdirectory. GoDaddy Support suggests that if you are running multiple domains as subdirectories off of a common root directory, you may need to put the php5.ini file in the common root.
1and1.com - :
Ipower - An FAQ on-site says depending on which version of PHP you use, you need to insert one of the following lines in your php.ini file:
* for PHP4
zend_extension = /usr/local/lib/ioncube/ioncube_loader_lin_4.3.so
* for PHP5
zend_extension = /usr/local/lib/ioncube/ioncube_loader_lin_5.1.so
The php.ini file is reached from the CGI and Scripted Langage Support button on the control panel. Then PHP Scripting and select the version you're using. Scroll down to the end of the file and look for the [ZEND] section. Paste one of the lines above as the first line of that section and save.
Jumpline - Their Support staff recommend the following procedure: Create a file named 49ioncube.ini in the /etc/php.d directory on your hosting plan, then put the following text inside of the 49ioncube.ini file (replacing /path/to with the path where the ioncube_loader_lin_5.2.so file was uploaded).
zend_extension = /path/to/ioncube_loader_lin_5.2.so
Next, create a file called 99user.ini in the /etc/php.d directory (if it has not already been created) and put the following lines inside of the 99user.ini file.
zend_optimizer.enable_loader = 1
zend_optimizer.disable_licensing = 0
Once these steps have been completed, you can restarted the server from within the VDS Manager by logging in to the VDS Manager, clicking on the "Web Server" listing in the navigation menu, then clicking on the "Restart" button. Restarting the web server will start the web server with the ionCube software loaded.
7. What if my host does not support IonCube and will not allow me to install it?
There are hosts out there that will not allow users to edit php.ini files. Usually this makes sense, especially on a shared server, since errors could cause problems for a great many people. But if the host cannot or will not accommodate you by offering support, the only option would be to move your sites to a different host.
8. If I have multiple AOM sites on the same server, do I need to install IonCube on all of them?
You shouldn't have to, if you install IonCube a level above all your sites, if possible. For example, if you have several stores all set up as subdirectories of a common root, then you can install IonCube in the root. Every server seems to be different, so if this does not work for you, you may have to install it multiple times.
9. Once installed, are all the ioncube files necessary?
Certainly not the ones you didn't use. Once IonCube has been successfully loaded on your site, the extra loaders can be safely deleted. If your host already has IonCube set up, you could delete the entire /ioncube folder if you would like to reclaim the disc space it takes up.
10. Where can I get more information?
You can read the IonCube instructions at http://www.ioncube.com/loader_installation.php