如何在Ubuntu14.04上安装和配置Magento
介绍
Magento 是最流行的电子商务网站内容管理系统。 它被小型企业和大型企业公司所使用,并且可以通过数千个扩展和主题来增强。 Magento 使用 MySQL 数据库系统、PHP 编程语言和 Zend 框架的一部分。
在本教程中,我们将介绍如何在 Ubuntu 14.04 上使用 Apache Web 服务器安装 Magento,包括一些常见的性能和安全配置。
先决条件
在开始阅读本指南之前,需要先完成几个步骤。
由于处理 Magento 操作的需求,建议您将 Magento 安装在至少有 2 GB RAM 的 VPS 上。 这将确保管理商店所涉及的所有软件都有足够的内存来工作。
您将需要访问具有 sudo
权限的非 root 用户。 如果您还没有这样做,您可以通过运行Ubuntu 14.04初始服务器设置指南来创建这个帐户。
此外,您需要在 VPS 实例上安装 LAMP(Linux、Apache、MySQL 和 PHP)堆栈。 如果您还没有安装和配置这些组件,您可以使用本指南学习 如何在 Ubuntu 14.04 上安装 LAMP。
完成这些步骤后,您可以以非 root 用户身份连接到 Ubuntu 服务器并继续安装 Magento。
第 1 步 — 配置 Apache 和 PHP
在我们下载和安装 Magento 之前,需要配置 Apache 和 PHP 以正确处理 Magento 的流量和计算任务,并且需要安装和激活一些额外的模块。
阿帕奇虚拟主机
首先,我们需要配置一个虚拟主机文件,以便 Apache 知道如何正确管理我们的 Magento 站点。 我们可以使用我们的文本编辑器在 /etc/apache2/sites-available/
中创建一个新的虚拟主机文件。 在此示例中,虚拟主机称为 magento
,但如果您愿意,可以将其命名为其他名称。
sudo nano /etc/apache2/sites-available/magento.conf
Magento 的虚拟主机需求相当简单。 从一个 <VirtualHost>
标签开始,它监听来自端口 80(标准 HTTP 端口)的所有流量。 然后使用 DocumentRoot
指令添加一行告诉 Apache 在哪里可以找到您网站的文件:
<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>
完成编写服务器块后,保存并关闭文件。 要使用 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 的 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 社区版的最新稳定版本是什么,请前往 社区下载页面 。 在此示例中,当前版本号为 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 数据库的地方。 确保 Database Type 设置为“MySQL”并且 Host 设置为“localhost”。 然后,您需要使用您在创建 MySQL 数据库和用户帐户时确定的设置填写 Database Name、User Name 和 User Password早些时候。
配置页面的下一部分是您可以配置商店的 URL 以及其他几个 Apache 控制的功能的地方。 确保 Base URL 与您服务器的域名匹配; 如果您还没有设置域名,您现在可以使用您服务器的公共 IP 地址。 将 Admin Path 更改为比“admin”更不明显的东西是个好主意,以使某人更难找到您的管理面板。 您还应该考虑选中 Use Web Server (Apache) Rewrites 以使您网站的 URL 对用户和搜索引擎更友好。 支持此功能所需的 Apache 模块 mod_rewrite
已启用并可以使用。
配置页面的最后一部分是用于选择会话数据存储的方法。 Magento 提供了两种保存用户会话数据的方法。 File System 方法将会话存储在服务器上的文件中,是最简单的方法。 Database 方法将会话作为条目存储在 MySQL 数据库中,非常适合跨多个服务器的 Magento 安装。 现在,我们可以坚持使用 File System 方法,因为它通常开箱即用的性能更好。
选择配置选项并点击 Continue 后,您将进入管理员帐户创建页面。 您将在此处创建负责维护 Magento 商店的管理帐户。 确保用户名和密码既安全又难以猜测。 Encryption Key 字段应该留空,除非您从现有的 Magento 安装迁移数据。 如果您将该字段留空,Magento 将在您单击 Continue 时生成一个新的加密密钥,并在下一页为您显示。 确保将该加密密钥保存在安全的地方,以备日后需要它用于迁移。
完成基于 Web 的配置后,您的 Magento 安装就可以使用了。 通过在 Web 浏览器中访问服务器的域名或公共 IP 地址来查看您的新店面:
http://server_domain_name_or_IP/
如果一切配置正确,您应该会看到一个如下所示的店面:
您还可以通过转到您之前设置的管理目录来访问您的新管理站点:
http://server_domain_name_or_IP/admin/
使用您的管理员用户名和密码登录以查看您的新仪表板:
结论
现在您的 Magento 商店已启动并运行,您已准备好开始构建项目目录并开始销售!
使用 SSL 证书加密您的网站流量的关键下一步。 这是帮助您入门的指南:如何从商业证书颁发机构安装 SSL 证书。