如何在Ubuntu 15.10/CentOS 7中使用ZenCart构建电子商务站点

时间:2020-03-05 15:31:50  来源:igfitidea点击:

ZenCart是基于PHP和MySQL的免费开放源代码在线商店管理系统。
它是用户友好,易于管理的电子商务站点管理工具,可在GNU GPL许可证版本2下免费获得。
它是基于平台的应用程序,它独立于平台,可在安装到服务器中后通过任何Web浏览器运行。
ZenCart由一群志趣相投的店主,程序员,设计师和顾问共同开发,他们认为电子商务设计可以而且应该以不同的方式进行。
下面列出了ZenCart使其成为如此流行的应用程序的一些功能。

  • 在多种税率,运输方式,付款方式,货币和语言的支持下,本地化是ZenCart中最重要的功能。
  • 我们可以添加无限数量的产品,类别并为其设置属性。
  • 它具有集成不同付款模块(包括自定义模块)的能力。
  • 它有助于维持商店所有者和顾客之间的良好关系。
  • 礼品,优惠券,运费,运费选项,税率,税区可以使用ZenCart轻松配置。
  • ZenCart非常容易安装在几乎所有支持PHP和MySQL的托管服务器中。

安装LAMP堆栈

为了在运行Ubuntu 15.10或者CentOS 7的计算机上运行ZenCart,我们需要确保在系统中安装了LAMP堆栈。
LAMP Stack代表Apache Web服务器,MariaDB或者MySQL数据库服务器以及Linux服务器中的PHP模块的组合。
在本教程的此处,我们将为数据库安装MariaDB而不是MySQL服务器,因为MariaDB完全由社区驱动,具有速度改进和免费扩展。
为此,相对于计算机中安装的linux发行版,我们将需要以root或者sudo特权运行以下命令。

在Ubuntu 15.10上

# apt-get update
# apt-get install apache2 mariadb-server libapache2-mod-php5 php5-mysql php-pear php5-gd php5-curl php5-dev php5-ldap php5-xcache unzip

在CentOS 7上

# yum update
# yum install httpd mariadb-server php-mysql php-pear php-gd php-xml php-curl php-dev php-mbstring php-ldap php-xcache unzip

启动Apache和MariaDB服务器

安装所需的依赖项之后,我们现在将启动Apache Web服务器和MariaDB数据库服务器。

在Ubuntu 15.10上

由于Ubuntu 15.10作为systemd的默认初始化系统提供,我们将使用systemctl命令来启动它们。
为此,我们需要运行以下命令。

# systemctl start apache2 mysql

然后,通过启用守护程序,使它们在每次系统引导时自动启动。

# systemctl enable apache2 mysql
apache2.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable apache2
mysql.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable mysql

在CentOS 7上

同样,CentOS 7也随systemd一起作为默认的初始化系统提供,因此,我们只需要在linux终端或者控制台中运行以下命令即可。

# systemctl start httpd mysql

接下来,就像我们对Ubuntu所做的那样,我们将仅使守护程序在每次系统引导时启动。

# systemctl enable httpd mysql

设置MariaDB根密码

在CentOS 7/Ubuntu 15.10上

现在,由于我们是第一次安装MariaDB,并且尚未为MariaDB根用户设置密码,因此,我们首先需要为其配置根密码。

要配置MariaDB并分配root密码,我们需要运行以下命令。

# mysql_secure_installation

这将要求我们输入root的密码,但是由于我们之前没有设置任何密码,并且这是我们首次安装mariadb,因此只需按Enter并继续。
然后,将要求我们设置root密码,在此处单击Y,然后输入MariaDB根的密码。
然后,我们只需按Enter键即可为其他配置设置默认值。

….
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!
…
installation should now be secure.
Thanks for using MariaDB!

注意:请注意将MariaDB根密码放在安全的地方,因为在进一步的步骤中,我们将要求它为ZenCart创建数据库。

创建ZenCart数据库

现在,我们将为ZenCart创建一个新的数据库,以便它可以将其数据存储到我们的MariDB数据库中。
为此,首先我们需要通过运行以下命令来登录我们的MariaDB控制台。

# mysql -u root -p

然后,它将要求我们输入在上一步中设置的root用户的密码。
然后,我们将欢迎我们进入我们将其中创建的MariaDB控制台中

我们的新数据库即数据库用户,并为其分配了密码,并授予了创建,删除和编辑其中存储的表和数据的所有特权。
其中我们将数据库名称,用户和密码分别设置为zencartdb,zencartuser和Pa $$worD123.

CREATE DATABASE zencartdb;
> CREATE USER 'zencartuser'@'localhost' IDENTIFIED BY 'Pa$$worD123';
> GRANT ALL PRIVILEGES ON zencartdb.* TO 'zencartuser'@'localhost';
> FLUSH PRIVILEGES;
> EXIT;

注意:强烈建议替换所有上述变量,例如数据库名称,用户和密码,以确保安全。

配置Apache Web服务器

现在,我们将在apache Web服务器中添加一个新的virtualhost,以便我们可以为ZenCart定义特定的配置。
创建新的虚拟主机我们为站点定义端口,webroot,域,别名和其他配置。
这是我们将在本教程中设置的与正在运行的Linux发行版相对应的一些配置。

在Ubuntu 15.10上

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

现在,我们将以下配置行添加到打开的文件中。

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/zencart/
ServerName zencart.theitroad.com
ServerAlias www.zencart.theitroad.com
<Directory /var/www/zencart
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/zencart.theitroad.com-error_log
CustomLog /var/log/apache2/zencart.theitroad.com-access_log common
</VirtualHost>

完成后,我们将保存文件并退出文本编辑器。
然后,我们需要确保已启用mod。
要启用它,我们需要执行以下命令。

# a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
service apache2 restart

然后,我们将重新启动apache网络服务器。

# systemctl restart apache2

在CentOS 7上

在我们的CentOS计算机上,我们将使用文本编辑器在/etc/httpd/conf.d/目录下创建一个名为zencart.conf的文件。

# nano /etc/httpd/conf.d/zencart.conf

然后,我们将以下配置行添加到文件中。

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/zencart/
ServerName zencart.theitroad.com
ServerAlias www.zencart.theitroad.com
<Directory /var/www/zencart
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/zencart.theitroad.com-error_log
CustomLog /var/log/httpd/zencart.theitroad.com-access_log common
</VirtualHost>

完成后,我们将简单地保存文件并退出编辑器。
现在,我们需要确保已启用mod。
要启用它,我们需要执行以下命令。

# a2enmod rewrite

然后,我们将重新启动apache网络服务器。

# systemctl restart httpd

下载并解压ZenCart

完成上述步骤后,我们现在将在撰写本文时下载ZenCart的最新版本,即1.5.5.
我们可以从SourceForge官方页面上获取最新版本。

其中我们将从sourceforge ZenCart页面获得下载链接,然后使用wget将其下载到我们的服务器中。

# cd /tmp/
# wget http://downloads.sourceforge.net/project/zencart/CURRENT%20-%20Zen%20Cart%201.5.x%20Series/zen-cart-v1.5.5a-05052015.zip
--2015-05-12 14:12:15-- http://downloads.sourceforge.net/project/zencart/CURRENT%20-%20Zen%20Cart%201.5.x%20Series/zen-cart-v1.5.5a-05052015.zip
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to iweb.dl.sourceforge.net (iweb.dl.sourceforge.net)|70.38.0.134|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7716138 (7.4M) [application/octet-stream]
Saving to: 'zen-cart-v1.5.5a-05052015.zip'
zen-cart-v1.5.5a-05 100%[=====================>] 7.36M 800KB/s in 17s
2015-05-12 14:12:34 (435 KB/s) - 'zen-cart-v1.5.5a-05052015.zip' saved [7716138/7716138]

成功下载后,我们将使用以下unzip命令提取zip文件。

# unzip zen-cart-v1.5.5a-05052015.zip

然后,将提取的文件移动到上面刚刚指定的Web服务器的Webroot下,即/var/www/zencart /。
因此,首先,我们需要创建webroot目录,即/var/www/zencart,因为它尚未创建。

# mkdir -p /var/www/zencart
# mv zen-cart-v1.5.5a-05052015/* /var/www/zencart

固定所有权和权限

现在,我们需要为Apache进程用户设置ZenCart目录的所有权,以便apache Web服务器将具有对ZenCart文件和文件夹的完全访问权限。
为此,我们需要针对正在运行的Linux发行版运行以下命令,因为使用了不同的用户名。

在Ubuntu 15.10上

# chown -R www-data: /var/www/zencart

在CentOS 7上

# chown -R apache: /var/www/zencart

然后,我们需要通过执行以下命令将某些目录的权限设置为可写。

配置防火墙

接下来,我们将配置防火墙程序以允许http或者端口80可以直接使用。
这将使我们的ZenCart商店可以在连接的网络或者Internet中访问。
由于CentOS 7和Ubuntu 15.10都随systemd一起作为初始化系统提供,因此大多数计算机中都安装有firewalld。
要允许http(端口80),我们需要运行以下命令。

# firewall-cmd --permanent --add-service=http
success
# firewall-cmd --reload
success

基于Web的安装

如上所述正确设置并正确配置了以上所有内容之后,我们现在将着手进行基于Web的ZenCart安装。
为此,我们需要打开一个网络浏览器,并根据我们的配置将其指向我们的ZenCart服务器,即http://zencart.theitroad.com。
然后,我们将在第一次执行安装时看到以下屏幕。

现在,我们将单击原因编号1下的“单击此处”链接,以继续进行安装过程。
然后,将出现“系统集成”页面,该页面将检查并列出我们的Zen Cart安装是否有问题。
由于我们尚未在本文中配置SSL认证,因此我们肯定会收到有关SSL认证的错误。

接下来,我们需要通过打勾来同意GNU GPL 2许可。
由于我们希望使用默认设置,因此只需单击“继续”以继续安装过程。

现在,我们需要执行数据库设置。
在为ZenCart创建数据库时,我们只需要输入在上述步骤中设置的数据库配置即可。
在本教程的此处,我们将分别输入主机,数据库名称,用户名和密码,分别为localhost,zencartdb,zencartuser和Pa $$worD123.
如果我们想将演示数据加载到数据库中,则可以勾选它,我们可以根据需要简单地设置设置。
其中我们将保持原样并继续前进。

完成后,我们将被定向到“管理员设置”,我们需要输入管理员名称和电子邮件地址。
此处,管理员密码和admin目录由ZenCart安装程序自动生成。
安装完成后,我们可以稍后更改它们。

注意:请注意,应注意这些管理员凭据,因为登录到管理面板将需要它们。

之后,我们将看到“安装完成”页面,根据安全措施,系统将要求我们删除/zc_install /目录,以使某人无法进一步访问ZenCart的安装。
其中我们可以看到用于访问店面和后端管理面板的链接。

安装后

安装完成后,我们需要从Webroot删除安装,即zc_install。
为此,我们需要通过运行以下命令进入ZenCart的Web根目录。

# cd /var/www/zencart/

然后,我们将递归删除安装目录。

# rm -rf zc_install