如何在 Ubuntu 14.04 上安装和配置 Magento
介绍
Magento 是最受欢迎的电子商务网站内容管理系统。它被小型企业和大型企业公司所使用,并且可以通过数以千计的扩展和主题得到增强。 Magento 使用 MySQL 数据库系统、PHP 编程语言和部分 Zend Framework。
在本教程中,我们将介绍如何在 Ubuntu 14.04 上使用 Apache Web 服务器安装 Magento,包括一些常见的性能和安全配置。
先决条件
在开始使用本指南之前,需要先完成几个步骤。
由于处理 Magento 操作的需要,建议您在至少具有 2 GB RAM 的 VPS 上安装 Magento。这将确保所有涉及管理商店的软件都有足够的内存来工作。
您将需要访问具有 sudo
权限的非根用户。如果你还没有这样做,你可以通过 Ubuntu 14.04 初始服务器设置指南来创建这个帐户。
此外,您需要在 VPS 实例上安装 LAMP(Linux、Apache、MySQL 和 PHP)堆栈。如果您还没有安装和配置这些组件,您可以使用本指南了解如何在 Ubuntu 14.04 上安装 LAMP。
完成这些步骤后,您可以以非 root 用户身份连接到 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 的虚拟主机需求相当简单。以
标记开始,该标记侦听来自标准 HTTP 端口 80 的所有流量。然后使用 DocumentRoot
指令添加一行告诉 Apache 在哪里可以找到您站点的文件:
<VirtualHost *:80>
DocumentRoot /var/www/html
</VirtualHost>
我们需要为 Magento 添加一些额外的参数才能正常工作。在指向文档根目录的
标签内,我们将输入 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>
写完服务器块后,保存并关闭文件。要使用 Apache 启用新站点,请使用 a2ensite
命令:
sudo a2ensite magento.conf
我们还想禁用 Apache 附带的默认虚拟主机,因为它会与我们的新虚拟主机冲突。要使用 Apache 禁用站点,请使用 a2dissite
命令:
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 时,内存限制更改将生效。
除了 PHP 自带的模块之外,Magento 还需要几个 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 的根帐户密码,这是您在安装 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 社区版的最新稳定版本是什么,请前往社区下载页面。在此示例中,当前版本号为 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 如何连接到其 MySQL 数据库的地方。确保数据库类型设置为“MySQL”,主机设置为“localhost”。然后,您需要使用之前创建 MySQL 数据库和用户帐户时确定的设置填写数据库名称、用户名和用户密码。

配置页面的下一部分是您可以配置商店的 URL 以及一些其他 Apache 控制的功能的地方。确保 Base URL 与您服务器的域名匹配;如果您还没有设置域名,您可以暂时使用您服务器的公共 IP 地址。将管理路径更改为比 \admin 更不明显的东西是个好主意,这样别人就更难找到你的管理面板。你还应该考虑选中使用 Web 服务器 (Apache) 重写以使你的站点的 URL 更友好给用户和搜索引擎。支持此功能所需的 Apache 模块 mod_rewrite
已经启用并可以使用。

配置页面的最后一部分用于选择会话数据存储的方法。 Magento 附带了两种保存用户会话数据的方法。文件系统方法将会话存储在服务器上的文件中,是最简单的方法。数据库方法将会话存储为 MySQL 数据库中的条目,非常适合跨多个服务器的 Magento 安装。现在,我们可以坚持使用文件系统方法,因为它通常开箱即用地表现更好。

选择配置选项并点击继续后,您将转到管理员帐户创建页面。您将在此处创建负责维护 Magento 商店的管理帐户。确保用户名和密码安全且不易被猜到。除非您从现有的 Magento 安装中迁移数据,否则加密密钥字段应留空。如果您将该字段留空,当您单击继续时,Magento 将生成一个新的加密密钥,并将在下一页上为您显示。确保将该加密密钥保存在安全的地方,以备日后出于迁移目的需要它。

完成基于 Web 的配置后,您的 Magento 安装就可以使用了。通过在 Web 浏览器中访问服务器的域名或公共 IP 地址来检查您的新店面:
http://server_domain_name_or_IP/
如果一切配置正确,您应该会看到如下所示的店面:

您还可以通过转到您之前设置的管理目录来访问新的管理站点:
http://server_domain_name_or_IP/admin/
使用您的管理员用户名和密码登录以查看您的新仪表板:

结论
现在您已经启动并运行了 Magento 商店,您已准备好开始构建项目目录并开始销售!
关键的下一步是使用 SSL 证书加密您的网站流量。以下是帮助您入门的指南:如何从商业证书颁发机构安装 SSL 证书。