How to Install Magento 2 on Hypernode
Magento 2 requires preferably a Falcon M hosting plan or bigger. Want to install Magento 1 instead?
Installing Magento 2 will take only 5-10 minutes (add 15 minutes if you want the sample data).
Upgrade Your PHP Version
Before installing Magento, change your PHP version to 8.1 or higher
Some vendor libraries are not compatible with older PHP version anymore, causing errors during the installation.
That’s why you must first change your PHP version to PHP7.1 before starting the Magento 2 installation.
Remove Existing Magento 1 Installation (If Any)
This is obviously only required if you have a previous Magento 1 installation. Log in to your Hypernode and run this command
magerun --root-dir=/data/web/public uninstall --installationFolder=/data/web/public --force
This will delete the default database (such as shop_preinstalled_magento
), and recursively delete the /data/web/public directory
. Any instances of Magento installed in other directories will not be touched.
Remove Existing Magento 2 Installation (If Any)
This is obviously only required if you have a previous Magento 2 installation. Use this command to clean up any previous Magento 2 installation:
rm -rf /data/web/public /data/web/magento2-sample-data
Drop any previous M2 preinstall db:
mysql
show databases;
drop database appname_preinstalled_magento;
Activate Magento 2 Mode
Hypernode will activate all kinds of Magento 2 cleverness when you activate M2 mode. This happens if you create a file called /data/web/nginx/magento2.flag
:
touch ~/nginx/magento2.flag
NEW
: Install our Pre-installed Magento 2 version with ONE command
Using the command hypernode-systemctl preinstall [preinstall_type]
, the installation is automatically installed. The current supported preinstall_types are magento_1
, magento_2
, shopware_5
, shopware_6
, akeneo3.2
and akeneo4.0
. By adding --sample-data
as an argument we install the version with sample data . Take a look at the livelog
command to check the progress on the update job.
Please be aware that this does not set the general Hypernode settings (php, mysql) to the proper values. This still needs to happen manually. In addition, for Magento make sure the /data/web/public folder is empty.
First make sure the current Composer version is set to 2.x
# Check composer version
composer -V
Composer version 1.10.26 2022-04-13 16:39:56
# Update composer version to 2.x
hypernode-systemctl settings composer_version 2.x
Now you can start the preinstall of Magento 2
# Start the preinstall
app@appname.hypernode.io:~$ hypernode-systemctl preinstall magento_2 --sample-data
Preinstall magento2 with sample data job posted, see hypernode-log (or livelog) for job progress.
# Check the preinstall status
app@appname.hypernode.io:~$ livelog # or hypernode-log
# Check out your new installation
app@appname.hypernode.io:~$ ls /data/web # See the magento2 directory and the contents of public
Install Magento 2 Using the Command Line
Create project from a certain release to /data/web/magento2
composer create-project --repository-url=https://mage-os.hypernode.com/mirror/ magento/project-community-edition /data/web/magento2
Create a Database (In This Example, We Named the Database ‘magento2’, but You Can Name It However You Like)
echo "create database magento2" | mysql
Enable the Magento 2 Management Tool
cd ~/magento2
chmod 755 bin/magento
Almost Done! Look up Your Database Credentials
cat ~/.my.cnf
Fill in the User, Hostname and Password in the Following Command and You Are Ready to Install Magento 2
bin/magento setup:install --db-host=[HOSTNAME] --db-name=[DATABASE] --db-user=app --db-password=[DATABASE_PASSWORD] \
--admin-firstname=[YOURFIRSTNAME] --admin-lastname=[YOURSURNAME] --admin-user=[ADMINNAME] \
--admin-password=[ADMINPASSWORD] --admin-email=[YOUR@EMAIL.COM] --base-url=[http://YOUR.HYPERNODE.IO] \
--language=en_US --timezone=Europe/Berlin --currency=EUR --use-rewrites=1
Enable Secure Document Root
rm --dir /data/web/public
ln -s /data/web/magento2/pub /data/web/public
Build Static Assets
cd ~/magento2
bin/magento setup:static-content:deploy
Alternatively you can deploy only the static content for a single theme:
bin/magento setup:static-content:deploy --theme=Magento/luma en_US
Or for a single language:
bin/magento setup:static-content:deploy --language=en_US
A secure, random Magento admin URL will be created for you and printed. Bookmark it for future access.
Congratulations, Magento 2 is installed on your Hypernode!
Want to Install Sample Data Too?
Login at the Magento Marketplace with your account. Go to the top right => My Profile => Under Marketplace => Access Keys. Create a new access key. Copy your public key (username) and private key (password).
cd ~/magento2
composer update
Enter your public and private key when asked for user and password.
When asked to save to a location, the default is fine.
ln -fs ~/.composer/auth.json var/composer_home/
This is required due to a bug: https://github.com/magento/magento2/issues/2523
bin/magento sampledata:deploy
This action will take about 10-15 minutes:
bin/magento setup:upgrade
Configure Your Magento 2 Cron
After installing Magento, you can install the Magento crons by by running:
bin/magento cron:install
Troubleshooting
I’m getting the error:
PHP Parse error: syntax error, unexpected '.' in /data/web/magento2/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 93
This is caused by the php version. Upgrade from php5 to php7 as not all vendor libraries are php5 compatible anymore.
Web Setup Wizard is not visible: Check/Recreate the symlinks on your Hypernode:
mv /data/web/public /data/web/public_OLD
mkdir /data/web/public
ln -fs /data/web/magento2/pub/* /data/web/public
ln -fs /data/web/magento2/setup/ /data/web/public/
cd ~/magento2/
magerun2 cache:flush
I’m getting
out-of-memory
errors: If you are running on a Start plan: Upgrade to a bigger hypernode with more memory available. If this happens while you are running a setup:static-content:deploy: Try deploying static content per language or per theme rather then all at once.