|
Discovery,
Mate, I upgraded to php5.2 and all is sweet.
I really should have done this before - but I eventually found a very easy and “safe” way to do it without breaking too much!
NOTE: It will possibly affect a sitebuilder module if you have it installed - which depends on php-sqlite2
I just removed it as this is more important to me;
rpm -e php-sqlite2 --nodeps
For anyone on Plesk - get OFF php5.1x - it is more trouble than it is worth and will save you hours of buggering around.
And because everyone is so bloody helpful, I will share my perfect solution on Plesk 8.6 starting out with php5.1 on CentOS-5 with VZ4
NOTE: If you are using Virtuozzo Containers, php is most likely installed with EZ Templates (CentOS5.2) - so this next operation will manually/physically upgrade php and it will now be non-EZ Templated.
On command line:
wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh
Select Y (yes) and 8 (Plesk version) etc
Then run:
yum upgrade php
It will then collect all the required apps and just say: Y (Yes)
That is it! It was really way too painless..
Now SOAP and all other gear works - and don’t have to bugger around with that shizer cgi binary.
Next, to do multiple/unlimited domains in ONE physical server based on ONE Magento app and database:
* First set up the domain vhost.conf properly to allow access to the core Magento app;
For this example, I will make the core Magento on domain1.com
I will then make a “virtual” Magento on domain2.com
(This file doesn’t exist by default)
vi /var/www/vhosts/domain2.com/conf/vhost.conf
(Also, do the same for SSL if needed and make vhost_ssl.conf and make httpsdocs in place of httpdocs)
# Added by ME
<Directory /var/www/vhosts/domain2.com/httpdocs>
php_admin_value open_basedir “/var/www/vhosts/domain2.com/httpdocs:/var/www/vhosts/domain1.com/httpdocs:/tmp”
Options Indexes FollowSymLinks
</Directory>
# To here
Then execute the below commands to let Plesk know it must include the vhost.conf file when it loads httpd
/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=domain2.com
/etc/init.d/httpd restart
The above will now let your new domain get access to the core domain
Next, we just need to make symbolic links to the core Magento.
For this, my core Magento will be here:
/var/www/vhosts/domain1.com/httpdocs/store <- in here
It doesn’t have to be here - could be anywhere - even at root level;
/var/www/vhosts/domain1.com/httpdocs/ <- in here
But I think having the core here makes it simpler to target and maybe have something like drupal or normal website on root level already.
On the web it looks like this: http://www.domain1.com/store
cd into /var/www/vhosts/domain2.com/httpdocs/
ln -s /var/www/vhosts/domain1.com/httpdocs/store/* . <- don’t forget this little “period” here or do this;
ln -s /var/www/vhosts/domain1.com/httpdocs/store/* /var/www/vhosts/domain2.com/httpdocs/
This will make a symbolic link of EVERYTHING in the /store folder and put it in the root level of domain2.com
I made these links have user permission of domain2.com - let’s assume domain2ftp is my FTP username;
Still inside; /var/www/vhosts/domain2.com/httpdocs/
chown domain2ftp.psacln -R *
On the web it looks like this: http://www.domain2.com/
Before Magento will recognise this new store, you have to set the website and store from inside Magento Admin;
http://www.domain1.com/store/admin/
I won’t go over that, but the KEY thing you need is the “code” name you give your second website - let’s say you call it: domain2
This shows how to set that up pretty clearly:
http://www.magentocommerce.com/blog/comments/video-creating-multiple-online-storefronts-part1/
Finally, in /var/www/vhosts/domain1.com/httpdocs/store/index.php - you need to add your website code(s).
Some other smart fella put this out there somewhere and works sweet - especially if you plan to do multiple domains - with symbolics - then all you have to do is update the core index.php file in domain1.com because the index.php file itself is ALSO a symbolic link.
vi /var/www/vhosts/domain1.com/httpdocs/store/index.php
Comment out this;
Mage::run();
to this
#Mage::run();
then, below that add this - which basically replaces the above but provides extensibility;
switch($_SERVER[’HTTP_HOST’]) {
case ‘domain2.com’:
case ‘www.domain2.com’:
Mage::run(’domain2’, ‘website’);
break;
default:
Mage::run();
break;
}
And that is it! It will work sweet.
|