如何安装 Magento 2 with Varnish, Apache and Pound as SSL Termination

在这篇文章, we will show you how to install Magento 2 关于 Ubuntu 16.04 VPS 与 MariaDB, Varnish as a full page cache, Apache and Pound as SSL termination. 本指南应该在其他工作 Linux VPS systems as well but was tested and written for an Ubuntu 16.04 VPS.

Before we begin, you may want a different setup for your Magento. You can follow this tutorial to install Magento 2 在 Ubuntu 上 16.04 VPS 的 MariaDB, PHP FPM 7.0, Varnish as a full page cache, Nginx as SSL termination and Redis for session storage and page caching.

Or you can check out this tutorial to install Magento 2 关于 Ubuntu 16.04 VPS 与 MariaDB, Varnish as a full page cache, Apache and Memcache for session storage.

If you have any different requirements, just get a Linux VPS from us and we’ll set everything up for you, 免费.

1. Login and update your server

首先, you need to login to your Ubuntu 16.04 VPS via SSH as user root:

ssh [email protected]_IP_address

It is also recommended to start a screen session by executing the following command

screen -U -S magento

更新系统 and install necessary packages with:

apt-get 来更新 && apt-get -y upgrade
apt-get -y install curl nano git

It is crucial that you always keep your server up to date. 您甚至可以 enable automatic updates in order to achieve this.

2. Install and configure MariaDB

Install the latest MariaDB 10.0 server from the official Ubuntu repositories:

易于获取安装-mariadb-服务器

下一个, we need to create a database for our Magento installation.

mysql-u 根-p
MariaDB [(无)]> CREATE DATABASE magento;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'strong_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> q

Do not forget to replace ‘strong_password’ with an actual strong password. 您甚至可以 generate a strong password from the command line.

3. Install Apache2 web server

apt-get install apache2

4. 安装 PHP 和所需的 PHP 模块

若要安装最新的稳定版本的 PHP 版本 7 和所有必要的模块, 运行︰

apt-get install php7.0 libapache2-mod-php7.0 php7.0-mbstring php7.0-curl php7.0-zip php7.0-gd php7.0-mysql php7.0-mcrypt php7.0-xsl php-imagick php7.0-gd php7.0-cli php-pear php7.0-intl

Change few default PHP settings:

sed -i "s/memory_limit = .*/memory_limit = 256M/" /etc/php/7.0/cli/php.ini
sed -i "s/upload_max_filesize = .*/upload_max_filesize = 128M/" /etc/php/7.0/cli/php.ini
sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.0/cli/php.ini
sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.0/cli/php.ini

Enable the Apache2 rewrite module if it is not already done:

a2enmod 重写

In order to activate the new configuration, restart the Apache web server using the following command:

服务 apache2 重新启动

5. Install Composer

作曲家是 php,您可以安装软件包的依赖关系管理器. 作曲家将拉在所有需要的库和依赖项,您需要为您的项目.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

6. 安装 Magento 2 from Github

Clone the Magento repository to the ~/myMagentoSite.com directory using the following command:

git clone https://github.com/magento/magento2.git /var/www/myMagentoSite.com

Get the latest Magento 2 stable release:

cd /var/www/myMagentoSite.com
git checkout $(git describe --tags $(git rev-list --tags --max-count=1))

Run composer to install all Magento dependencies:

composer install

To continue with the installation you can either use the installation wizard or the command line, in this guide we will use the latter.

bin/magento setup:install 
--base-url=http://myMagentoSite.com/ 
--db-host=localhost 
--db-name=magento 
--db-user=magento 
--db-password=strong_password 
--admin-firstname=First  
--admin-lastname=Last 
[email protected] 
--admin-user=admin 
--admin-password=strong_password123 
--language=en_US 
--currency=USD 
--timezone=America/Chicago 
--use-rewrites=1

If the installation is successful you will see something like below:

[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1m0ezr

运行 crontab command to create a cronjob

crontab -u www-data -e

并添加以下行:

* * * * * /usr/bin/php /var/www/myMagentoSite.com/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/myMagentoSite.com/var/log/magento.cron.log

最后, set the correct permissions:

chown -R www-data: /var/www/myMagentoSite.com

7. 配置 Apache

在 Apache 中创建一个新的虚拟主机指令. 举个例子, you can create a new Apache configuration file named ‘magento.conf’ on your server:

touch /etc/apache2/sites-available/magento.conf
ln -s /etc/apache2/sites-available/magento.conf /etc/apache2/sites-enabled/magento.conf
nano /etc/apache2/sites-available/magento.conf

然后, 添加以下行:

<虚拟主机 *: 80>
ServerAdmin [email protected]
DocumentRoot /var/www/myMagentoSite.com/
ServerName myMagentoSite.com
ServerAlias www.myMagentoSite.com
<Directory /var/www/myMagentoSite.com/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</目录>
ErrorLog /var/log/apache2/myMagentoSite.com-error_log
CustomLog /var/log/apache2/myMagentoSite.com-access_log common
</虚拟主机>

重新启动 Apache web 服务器以使更改生效:

服务 apache2 重新启动

You should be now able to login to your Magento back-end by going to http://myMagentoSite.com/admin_1m0ezr using the information you set when running the bin/magento setup:install.

8. Install and configure Varnish

To install Varnish, simply run the following command:

apt-get install varnish

From you Magento Admin dashboard click on the STORES link (left sidebar) -> Configuration -> ADVANCED -> 系统-> Full Page Cache

Uncheck “Use system value” and from the Caching Application list, select Varnish Cache (Recommended), save the configuration, click on the Varnish Configuration link and click on the Export VCL for Varnish 4 按钮. 的 varnish.vcl file which we will use will be exported in the /var/www/myMagentoSite.com/var/ 目录.

Flush the Magento cache with:

php bin/magento cache:flush

Delete the /etc/varnish/default.vcl and symlink it to the exported varnish configuration.

rm -f /etc/varnish/default.vcl
ln -sf /var/www/myMagentoSite.com/var/varnish.vcl /etc/varnish/default.vcl

To change varnish port from 6081 自 80, we need to edit the systemd service configuration.

创建一个新的 customexec.conf 文件

mkdir -p /etc/systemd/system/varnish.service.d
nano /etc/systemd/system/varnish.service.d/customexec.conf

粘贴以下内容:

[Service]
ExecStart=
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

and reload systemd units

立即守护进程重新加载

Now we need to change Apache listening port from 80 自 8080. 要做到这一点, open the Apache ports configuration file and change it as follows:

nano /etc/apache2/ports.conf

Listen 80 -> 听着 8080
nano /etc/apache2/sites-available/magento.conf

<虚拟主机 *: 80> -> <虚拟主机 *:8080>

If everything is setup correctly now you should be able to login to your Magento back-end by going to https://myMagentoSite.com/admin_1m0ezr.

困在某个地方吗? 得到一个 VPS 从我们,我们会为你做这一切, free of charge!

9. Install and configure Pound as SSL termination

Varnish doesn’t support SSL traffic, so you will need to install a proxy or load balancer like Pound to handle the SSL traffic. 要做到这一点, we will configure Pound to only listen on port 443 and pass the traffic to Varnish on port 80.

第一次, let’s install Pound with:

apt-get install pound

Open the Pound configuration file:

nano /etc/pound/pound.cfg

和设置以下内容:

ListenHTTPS
    Address 1.2.3.4 ## this should be your server public IP address
    Port 443
    Cert "/etc/apache2/ssl/myMagentoSite.com.pem" ## path to your SSL certificate
    HeadRemove "X-Forwarded-Proto"
    AddHeader "X-Forwarded-Proto: https"
    Service
        BackEnd
            Address 127.0.0.1
            端口 80
        End
    End
End

After you are done, restart your Apache and Varnish, and Pound:

service apache2 restart
service varnish restart
service pound restart

10. Further Optimizations

To further optimize your Magento installation from your Magento admin dashboard:

1. Go to STORES -> Configuration -> CATALOG -> Catalog -> Use Flat Catalog Category, select Yes and click Save Config.
2. Go to STORES -> Configuration -> ADVANCED -> Developer -> JavaScript Settings and set both Merge JavaScript Files and Minify JavaScript Files to Yes and click Save Config..
3. Go to STORES -> Configuration -> ADVANCED -> Developer -> CSS Settings and set both Merge CSS Files and Minify CSS Files to Yes and click Save Config.
4. Consider using a CDN – Content Delivery Network

Do not forget to flush the cache again:

php bin/magento cache:flush

You can also follow our guide on how to speed up Magento.

就是这样. You have successfully installed Magento 2 with Memcache as a session storage and page caching, Varnish as a full page caching and Apache on your Ubuntu 16.04 VPS and you have set up Pound as SSL termination. For more information about how to manage your Magento installation, 请参阅向官员 Magento 文档.

留言