With Associate-O-Matic now incorporating IonCube as part of the initial setup or upgrade process, some users are experiencing difficulties in getting IC to load properly in their server environment. The following procedure has been found to work with GoDaddy servers only. I am unable to recommend it with other webhosts because it has not been tested with them. This procedure was originally developed by AOM user Daniel Mangru, who has kindly allowed me to post about it here.
When you install AOM with IonCube for the first time (either as a new site or upgrading a previous version), you’ll know you have a problem if you see a message similar to this after uploading the files and trying to access your admin.php file:
Site error: the file /home/content/X/X/X/GoDaddyUserName/html/GoDaddyWebsite/admin.php requires the ionCube PHP
Loader ioncube_loader_lin_5.2.so to be installed by the site administrator.
The first thing to do is create a /temp folder in your store directory, alongside the /aom and /ioncube folders. Then in your web browser, go to the IonCube helper page, located in your /ioncube directory folder:
It should bring you to a screen like this:
Then click on the php.ini installation instructions. It will take you to this page:
Verify you are using PHP version 5.x.x, as shown in the first line of the first colored box. If you are using 4.x.x, contact GoDaddy to change it before proceeding.
At this point, you’ll need your file path. There are several ways to get this:
- The original error message will have /home/content/X/X/X/GoDaddyUserName/html/GoDaddyWebsite/admin.php
– the filepath will be everything up to admin.php.
- Go back to the ioncube-loader-helper.php file (the first image above) and click on the run-time loading installation instructions link and look for “Found Loader”. You should see something similar to /home/content/X/X/X/GoDaddyUserName/html/GoDaddyWebsite/ioncube/ioncube_loader_lin_5.2.so.
The filepath will be the entire line.
- The php.ini installation instructions may indicate a path to create a php.ini or php5.ini file, similar to /home/content/X/X/X/GoDaddyUserName/html/GoDaddyWebsite/php5.ini. The filepath will be everything up to php5.ini.
Once you have the file path, open a text editor such as notepad. Enter the following lines of text, substituting your file path for the parts indicated in red:
zend_extension = /home/content/X/X/X/GoDaddyUserName/html/GoDaddyWebsite/ioncube/ioncube_loader_lin_5.2.so
session.save_path = “/home/content/X/X/X/GoDaddyUserName/html/GoDaddyWebsite/temp”
It’s important that in the first line, the filepath ends with /ioncube/ioncube_loader_lin_5.2.so (or whatever is shown in the green box on the php.ini installation instructions) , and the second line ends with /temp (the /temp folder you created at the beginning. Note that this is case-sensitive, so Temp is not the same as temp). If you obtained your filepath with method #2 above, it already includes the /ioncube/ioncube_loader_lin_5.2.so ending.
Save this file as php5.ini, and upload it to the same directory as your admin.php and shop.php files. You should now be able to access your admin.php file. If you still get the initial error message, double-check your file path in the php5.ini file, and make sure it’s loaded in the correct area.
Daniel has also created a video which covers this procedure in somewhat more detail.
Update: 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.