VirtualBox配置CentOS Linux、安装Magento

在前面参照Allan MacGregor的Magento PHP Developer’s Guide一书尝试搭建Linux环境并安装Magento(参见Magento的安装Magento的环境搭建),中间存在一些问题,实际上未能100%完成。之后Alan请教了公司IT部门的技术大牛,在VirtualBox(也可使用VMware但可能需安装VMware Server且比较消耗系统资源)上配置CentOS并成功的安装了Linux,在这里与家分享一下。

VirtualBox以及CentOS的安装在这里就不再赘述,可根据实际需要在http://wiki.centos.org/Download下载CentOS安装文件。

安装Apache、配置网络

第一步我们先来安装Apache,登录后执行如下指令

yum install httpd -y

如果出现无法解析镜像主机的情况,则说明还需对网络及dns进行配置,输入指令vi /etc/sysconfig/network-scripts/ifcfg-eth0,enter进入后按下i进行编辑,将ONBOOT=后的值改为yes,BOOTPROTO值改为no,然后在结尾处加上如下内容:
DNS1=192.168.1.1(根据家庭路由器和公司配置可能会有不同,通常默认都是192.168.1.1)
IPADDR=192.168.1.123(根据实际情况指定,这里选择123)
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

按下esc,shift+:,输入wq保存退出
重启网络服务:service network restart,这里网成了网络相关配置,但还需要再进行一处配置,输入poweroff关机。在VirtualBox主界面选中机器,点击Machine>Settings或直接点击工具栏中的Settings,进入后点击Network,将Adapter1下的NAT改为Bridged Adapter,点击OK完成修改。
点击工具栏Start再次开启机器,这时再执行前面的yum指令就可以开始安装Apache服务器了。执行service httpd start命令启动Apache(默认开机开启Apache执行命令chkconfig httpd on)。

这时在浏览器中输入http://192.168.1.123发现无法访问,这是由于未配置防火墙的原因。在配置之前我们安装一下nano,因为很多人不太习惯使用vi编辑器,输入yum install nano -y命令即可。

下面我们来配置防火墙iptable,在命令行中输入
nano /etc/sysconfig/iptables
然后在-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
后面加入下面这一行,来开放80端口(Web服务的默认端口)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

这时就可以通过ip地址http://192.168.1.123在浏览器中进行访问了,默认进入的是一个有着Apache 2 Test Page字样的页面。

安装PHP和MySQL

下面安装php,输入指令yum install php -y,然后输入yum install mysql mysql-server -y来安装MySQL数据库,输入service mysqld start启用MySQL(默认开机开启MySQL执行命令chkconfig mysqld on),输入mysql -uroot -p连接数据库,

create database magento_dev;
创建一个用户来管理这个数据库:
GRANT ALL PRIVILEGES ON magento_dev.* TO ‘alan’@’localhost’ IDENTIFIED BY ‘alanhou2014′; (其中alan和alanhou2014分别为用户名和密码,可根据需要调整)

安装Magento

下面我们开始对Magento进行安装,首先输入yum install subversion -y安装svn,完成后键入cd /var/www切换目录,
svn export –force http://svn.magentocommerce.com/source/branches/1.9 html/

打开C:\system32\drivers\etc\hosts文件,在最后添加一条192.168.1.123 magento.localhost.com

文件下载完成后在浏览器中输入http://magento.localhost.com就可以进入Magento的安装界面,但中间会出现一些错误,这是由于权限给予不足以及缺乏组件,让我们一起来看看有哪些错误提示:

提示没有可写权限

Path “/var/www/html/app/etc” must be writable.
Path “/var/www/html/media” must be writable.
Path “/var/www/html/media/xmlconnect” must be writable.
Path “/var/www/html/media/xmlconnect/original” must be writable.
Path “/var/www/html/media/xmlconnect/original/ok.gif” must be writable.
Path “/var/www/html/media/xmlconnect/custom” must be writable.
Path “/var/www/html/media/xmlconnect/custom/ok.gif” must be writable.
Path “/var/www/html/media/xmlconnect/system” must be writable.
Path “/var/www/html/media/xmlconnect/system/ok.gif” must be writable.
Path “/var/www/html/media/downloadable” must be writable.
Path “/var/www/html/media/customer” must be writable.

chown -R apache:apache html

出现如下提示分别表示缺少dom,mcrypt,gd,mysql这几个php库(可通过php -m查看当前php扩展(extension),也可cd /etc/php.d切换到这里查看)
PHP extension “dom” must be loaded.
PHP extension “mcrypt” must be loaded.
PHP extension “gd” must be loaded.
PHP Extensions “pdo_mysql” must be loaded.
安装方法也很简单:
yum install php-dom php-mcrypt php-gd php-mysql -y
重启Apache服务生效:service httpd restart

若出现The URL “http://magento.localhost.com/” is not accessible. Unable to read response, or response is empty提示,则只需勾选Skip Base URL Validation Before the Next Step即可。
Magento安装完成

Bonus Tip:

此外linux还有一个仓库(repository)的概念,通过cd /etc/yum.repos.d切换,ll或ls -l可查看现在的仓库,如果通过yum无法某些组件的话,通常是由于仓库中未包含所指定的内容(如在这里安装MongoDB以及前面的mcrypt),下面来介绍一个如何安装RHEL EPEL Repo软件源,我们使用的是国外的镜象,输入如下指令:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm(先使用yum install wget -y来安装wget)
文件下载完成后将其载入到仓库中,使用指令:
rpm -Uvh epel-release-6*.rpm

另外再提供两个中国镜象源地址:
http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm(rpm为Red Hat Package Management的简写形式)
http://mirrors.hustunique.com/epel/6/x86_64/epel-release-6-8.noarch.rpm

Magento环境搭建

接下来会写一些有关Magento的博文,这一系列博文将主要参考Allan MacGregor的Magento PHP Developer’s Guide一书,但不会逐字翻译,只会截取一些精华内容,旨在学习和Magento的安装、代码结构及二次开发等相关知识。

这里通过使用VirtualBox的安装以及添加虚拟机来架设服务器环境,您也可以使用VMware,下载地址:https://www.virtualbox.org/wiki/Downloads。Linux使用较流行的Ubuntu,下载地址为:http://www.ubuntu.com/download/server/(根据实际情况下载32位或64位的)。

VirtualBox安装及配置

安装VirtualBox和安装普通软件的方法一样,双击所下载的.exe文件然后下一步下一步就可以了。

VirtualBox安装向导

安装后可通过File(管理)>Preferences(全局设定)>Language(语言)来修改界面语言,这里使用英文。点击左上方New弹出创建虚拟机窗口,Name为新建虚拟机的名称,Type在下拉列表中选择Linux,Version选择Ubuntu(32位还是64位取决于您所使用的机器是什么 版本),点击Next进入内存大小配置,可使用默认推荐的512M或更大的值,点击Next进入硬盘创建页面,使用默认勾选的Create a virtual hard drive now,点击Create进入下一步,使用默认的VirtualBox Disk Image (VDI),点击Next进入下一步,这一步包含动态分配大小Dynamically Allocated和固定大小Fixed Size两个选项(两者的共别顾名思义,前者会按实际文件大小动态的分配硬盘空间,而后者则直接分配指定大小的硬盘空间),点击Next进入下一步,选择保存位置和占用大小(通常Magento的安装会占用2 GB,另位数据库服务器会占用约3 GB,这里可使用默认的8 GB),点击Create完成安装。

完成虚拟机创建后,您会在VirtualBox界面的左侧看到新创建的虚拟机,先不要启动虚拟机(Virtual Machine,简称VM),选中新创建的虚拟机,点击Settings>Network>Adapter 2,勾选Enable Network Adapter,在Attached to后的下拉框中选中Bridged Adapter,这一步主要是为了能够通过SSH进行远程连接,在同一界面下点击左侧菜单中的System确保优先使用CD/DVD-ROM启动系统。

然后点击左侧菜单下的Storage,选择空的IDE Controller,点击右侧的光盘图标(Choose a virtual CD/DVD disk file…),载入之前下载的Ubuntu 32位或64位iso镜像文件(Alan的机器为32位,所以以下皆为32位的安装,可能与64位略有不同),然后点击Ok,这样我们就完成了VirtualBox的安装和配置。

VirtualBox Ubuntu服务器

启动虚拟机

完成了VirtualBox的安装与配置,下一步我们来起用所创建的虚拟机,选中左边栏中的虚拟机,点击上方的Start,稍等片刻就会进入语言选择界面,这里选择English,进入安装界面,选择Install Ubuntu Server,进入安装过程界面语言,这里还是选择English,下一步根据所选择语言出现国家列表供选择,这里选择United States,然后设置键盘(以上几步中您可以选择简体中文和中国,这里的选择只是为了避免之后与书中内容有冲突)。

完成上述步骤后进入一些自动扫描的页面,下一步设置主网卡,选择后会进行自动的扫描配置。网卡配置完毕后会进入主机名(hostname),设置页面,这里使用默认的名称ubuntu,然后设置用户名和密码,根据个人情况设置不同值。然后选择是否对主目录加密,下一步会读取系统的时间。下一步进行分区(partition)设置,这里选择Guided – use entire disk and set up LVM,然后选择分区磁盘,然后确认几步写入步骤后,即进入安装系统页面,这一步会耗时几分钟

VirtualBox Linus系统安装

下一步设置代理(proxy),这里留空,然后设置是否自动更新,下一步选择需要安装的软件,因为我们要自己安装LAMP各组件,所以这里仅安装OpenSSH server,中间会安装Grub,直接确定,最后会显示安装完成,continue启动,进入log in页面,输入在安装过程中设置的用户名和密码。登入后输入sudo apt-get update升级安装包,这里的APT是的Advanced Packaging Tool的缩写,是大部分Debian GNU/Linux版本的核心库,它简化了系统中软件的安装和维护流程。

VirtualBox Linux Login页面

LAMP组件安装

上面搭建好了Linux的环境,接下来需要安装Apache, MySQL和PHP,首先我们来安装Apache,Apache是HTTP服务器,当前有60%以上的网站都使用Apache,安装Apache仅需输入指令:sudo apt-get install apache2 -y,可通过如下指令来对Apache服务进行操作

$ sudo apache2ctl stop
$ sudo apache2ctl start
$ sudo apache2ctl restart

通过访问虚拟机ip地址如192.168.156.1来进行确认(可能是由于Alan的笔记本是通过wifi来连接网络的,在进行这一步测试过程中出现了故障,后面的内容采用的都是VMware来进行完成的)。

安装完Apache后,下一步就是PHP了,Magento会使用到多个PHP的扩展库(如GD库),因此需要安装所有需要用到的组件,具体的命令如下:

sudo apt-get install php5 php5-curl php5-gd php5-imagick php5-imap php5-mcrypt php5-mysql -y

sudo apt-get install php-pear php5-memcache -y

sudo apt-get install libapache2-mod-php5 -y

通过输入指令php -v可以检测安装情况。

PHP安装情况查询

一个好的Web应用程序自然少不了数据库,下面我们 就来安装MySQL:

sudo apt-get install mysql-server mysql-client -y

在安装过程中需要输入root账户的密码,安装完毕后可通过如下指令进行验证(请根据情况在-p后输入您所设置的密码):

sudo mysql -uroot -palanhou2014

出现mysql>字样则表示安装正常(可通过Ctrl+C来回到原界面)。

至此Magento所需用到的LAMP环境就安装完毕了,下一步我们开始进入Magento的安装