在前面参照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即可。
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