简介
Magento 是最流行的电子商务网站内容管理系统。它被小型企业和大型企业公司广泛使用,并且可以通过成千上万的扩展和主题进行增强。Magento 使用 MySQL 数据库系统、PHP 编程语言和 Zend Framework 的部分功能。
在本教程中,我们将介绍如何在 Ubuntu 14.04 上使用 Apache web 服务器安装 Magento,同时还会介绍一些常见的性能和安全配置。
先决条件
在开始本指南之前,需要完成一些步骤。
由于处理 Magento 操作的需求,建议您在至少拥有 2GB RAM 的 VPS 上安装 Magento。这将确保管理商店所涉及的所有软件都有足够的内存来运行。
您需要访问一个具有 sudo
权限的非根用户。如果您还没有这样的用户,可以按照 Ubuntu 14.04 初始服务器设置指南创建此帐户。
此外,您需要在 VPS 实例上安装 LAMP(Linux、Apache、MySQL 和 PHP)堆栈。如果您尚未安装和配置这些组件,可以使用此指南了解如何在 Ubuntu 14.04 上安装 LAMP。
完成这些步骤后,您可以作为非根用户连接到 Ubuntu 服务器,并继续进行 Magento 安装。
步骤 1 — 配置 Apache 和 PHP
在下载和安装 Magento 之前,需要配置 Apache 和 PHP,以便正确处理 Magento 的流量和计算任务,并且需要安装和激活一些额外的模块。
Apache 虚拟主机
首先,我们需要配置一个虚拟主机文件,以便 Apache 知道如何正确管理我们的 Magento 站点。我们可以使用文本编辑器在 /etc/apache2/sites-available/
中创建一个新的虚拟主机文件。在本示例中,虚拟主机称为 magento
,但如果您愿意,也可以使用其他名称。
sudo nano /etc/apache2/sites-available/magento.conf
Magento 的虚拟主机需求相当简单。首先使用 <VirtualHost>
标记监听来自端口 80 的所有流量,即标准的 HTTP 端口。然后添加一行告诉 Apache 在哪里找到您站点的文件,使用 DocumentRoot
指令:
<VirtualHost *:80> DocumentRoot /var/www/html </VirtualHost>
我们需要添加一些额外的参数,以使 Magento 正常工作。在指向我们文档根目录的 <Directory>
标记内,我们将输入 Apache 目录索引、符号链接支持和多语言支持的选项。我们还将添加一行,允许 .htaccess
文件覆盖 Apache 设置,从而提供对单个文件夹的更精细的控制。
. . . <Directory /var/www/html/> Options Indexes FollowSymLinks MultiViews AllowOverride All </Directory> . . .
完成所有这些组件后,您的虚拟主机文件将如下所示:
<VirtualHost *:80> DocumentRoot /var/www/html <Directory /var/www/html/> Options Indexes FollowSymLinks MultiViews AllowOverride All </Directory> </VirtualHost>
完成编写服务器块后,保存并关闭文件。要使用 a2ensite
命令启用 Apache 的新站点:
sudo a2ensite magento.conf
我们还希望禁用随 Apache 一起提供的默认虚拟主机,因为它将与我们的新虚拟主机发生冲突。要使用 a2dissite
命令禁用 Apache 的站点:
sudo a2dissite 000-default.conf
PHP 设置
接下来,我们需要更改 Apache 分配给 PHP 进程的内存量。Magento 几乎在所有操作中都使用 PHP,并且对于索引产品和类别等复杂操作需要相当多的内存。默认情况下,PHP 为在 Apache 上运行的每个脚本分配最多 128MB 的内存。我们应该将该限制提高到合理的数量,以确保 Magento 的脚本不会因内存不足而崩溃。
使用文本编辑器和 root 权限打开 Apache 的 PHP 配置文件:
sudo nano /etc/php5/apache2/php.ini
找到以下行,该行声明每个 PHP 脚本的内存限制:
memory_limit = 128M
更改该行,使限制提高到 512MB。根据您的目录中产品数量和每日访问者数量,您的商店的内存需求可能更高。一些较大的商店需要将其内存限制设置为 2GB 或更高,但是 512MB 目前应该是足够的。
memory_limit = 512M
注意: 请确保在内存数字的末尾使用 “M”。
完成此更改后,保存并关闭文件。下次重新启动 Apache 时,内存限制更改将生效。
Magento 需要一些 PHP 模块,除了 PHP 自带的模块之外。我们可以从 Ubuntu 的默认存储库直接获取这些模块,方法是更新本地软件包索引:
sudo apt-get update sudo apt-get install libcurl3 php5-curl php5-gd php5-mcrypt
这些扩展将允许 Magento 正确处理 HTTP 请求、图像缩略图和数据加密。现在我们已经获得了所有需要的软件包,可以为 Apache 启用 URL 重写支持,并为 PHP 启用加密支持:
sudo a2enmod rewrite sudo php5enmod mcrypt
完成所有这些配置和扩展更改后,是时候重新启动 Apache 服务器实例,以应用更改:
sudo service apache2 restart
步骤 2 —— 创建 MySQL 数据库和用户
Magento 使用 MySQL 数据库来管理网站数据,如产品和订单信息。我们已经安装并配置了 MySQL,但我们需要为 Magento 创建一个数据库和一个用户。
首先登录到 MySQL root 账户:
mysql -u root -p
系统会提示输入 MySQL 的 root 账户密码,这是您在安装 MySQL 时设置的密码。输入正确的密码后,将进入 MySQL 命令提示符。
首先,我们将创建一个 Magento 可以写入数据的数据库。在本例中,数据库将被命名为 magento
,但您可以根据需要命名。
CREATE DATABASE magento;
注意: 每个 MySQL 语句必须以分号(;
)结尾,因此如果遇到任何问题,请确保您已经包含了分号。
接下来,我们将创建一个新的 MySQL 用户账户,该账户将专门用于操作新数据库。创建单一功能的数据库和账户是一个好主意,因为它可以更好地控制权限和其他安全需求。
我将新账户命名为 magento_user
,并分配密码为 password
。您应该使用不同的用户名和密码,因为这些示例并不安全。
CREATE USER magento_user@localhost IDENTIFIED BY 'password';
此时,您已经拥有了一个专门为 Magento 制作的数据库和用户账户。然而,用户没有访问数据库的权限。我们需要通过授予用户访问权限来将这两个组件联系在一起:
GRANT ALL PRIVILEGES ON magento.* TO magento_user@localhost IDENTIFIED BY 'password';
现在用户已经可以访问数据库,我们需要刷新权限,以便 MySQL 知道我们所做的最近的权限更改。完成后,我们可以退出 MySQL 命令提示符。
FLUSH PRIVILEGES; exit
现在您应该回到常规的 SSH 命令提示符。
步骤 3 —— 下载并设置 Magento 文件
现在我们准备下载并安装 Magento。要查看 Magento Community Edition 的最新稳定版本是什么,请前往社区下载页面。在本例中,当前发布版本号为 1.9.0.1,但您应该将该数字替换为您可用的最新版本。通常建议使用最新版本的 Magento,因为新版本通常包括重要的安全更新,以及新的和改进的功能。
使用 wget
将 Magento 文件存档下载到您的主目录:
cd ~ wget http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz
我们可以使用 tar
解压缩存档文件以重建 Magento 目录:
tar xzvf magento-1.9.0.1.tar.gz
现在您的主目录中将会有一个名为 magento
的目录。我们需要将解压后的文件移动到 Apache 的文档根目录,以便为我们网站的访问者提供服务。我们将使用 rsync
将 Magento 文件传输到那里,因为 rsync
将包括重要的隐藏文件,如 .htaccess
。传输完成后,我们可以通过删除主目录中的 magento
文件夹和存档来清理主目录。
sudo rsync -avP ~/magento/. /var/www/html/ rm -rf ~/magento*
rsync
将安全地将您解压的目录中的所有内容复制到文档根目录 /var/www/html/
。现在我们需要将文件和文件夹的所有权分配给 Apache 的用户和组:
sudo chown -R www-data:www-data /var/www/html/
此更改将允许 Apache 创建和修改 Magento 文件。现在我们已经准备通过 Magento 的基于浏览器的配置界面完成安装过程。
步骤 4 —— 通过 Web 界面完成安装
要使用浏览器访问 Web 界面,请导航到您服务器的域名或公共 IP 地址:
http://server_domain_name_or_IP/
如果之前的步骤都正确执行,您将看到 Magento 的安装向导。第一页将显示许可协议,您需要同意后才能点击 继续。
!Magento Installation Wizard
接下来的页面是您可以更改区域设置的地方,如语言、时区和货币。将这些更改为最适合您产品销售地点的设置,然后点击 继续。
!Magento Localization Settings
配置页面分为三个部分。第一部分是您可以设置 Magento 如何连接到其 MySQL 数据库的地方。确保 数据库类型 设置为 “MySQL”,主机 设置为 “localhost”。然后,您需要使用您在之前创建 MySQL 数据库和用户账户时决定的设置填写 数据库名称、用户名 和 用户密码。
!Magento Database Connection
配置页面的下一部分是您可以配置商店的 URL,以及其他一些由 Apache 控制的功能。确保 基本 URL 与您服务器的域名匹配;如果您还没有设置域名,您现在可以使用服务器的公共 IP 地址。将 管理路径 更改为比 “admin” 更不明显的内容是个好主意,这样可以增加别人找到您管理面板的难度。您还应该考虑勾选 使用 Web 服务器(Apache)重写,以使您网站的 URL 对用户和搜索引擎更友好。支持此功能所需的 Apache 模块 mod_rewrite
已经被启用并准备就绪。
!Magento Web Access Options
配置页面的最后一部分是选择会话数据存储方法。Magento 自带两种保存用户会话数据的方法。文件系统 方法将会话存储在服务器上的文件中,是最简单的起步方法。数据库 方法将会话存储为 MySQL 数据库中的条目,非常适合跨多个服务器的 Magento 安装。目前,我们可以使用 文件系统 方法,因为它通常在初始状态下表现更好。
!Magento Session Storage Options
选择配置选项并点击 继续 后,您将进入管理员账户创建页面。这是您将创建负责维护 Magento 商店的管理账户的地方。确保用户名和密码都是安全的且难以猜测。加密密钥 字段应该留空,除非您正在从现有的 Magento 安装中迁移数据。如果您将字段留空,Magento 将在您点击 继续 后生成一个新的加密密钥,并在下一页显示给您。确保您将该加密密钥保存在安全的地方,以防以后需要用于迁移目的。
!Magento Admin Account
完成基于 Web 的配置后,您的 Magento 安装将准备就绪。通过在 Web 浏览器中访问您服务器的域名或公共 IP 地址,查看您的新商店:
http://server_domain_name_or_IP/
如果一切配置正确,您应该会看到一个类似于这样的商店界面:
!Magento Storefront
您还可以通过访问您之前设置的管理目录来访问您的新管理站点:
http://server_domain_name_or_IP/admin/
使用您的管理员用户名和密码登录,查看您的新仪表板:
!Magento Admin Dashboard
结论
现在您的Magento商店已经搭建并运行起来了,您可以开始构建项目目录并开始销售了!
下一个关键步骤是使用SSL证书加密您的网站流量。以下是一个指南,可以帮助您入门:如何从商业证书颁发机构安装SSL证书。