教程栏目

joomla中文网出品的官方教程

最近有一个项目需要升级一个JOOMLA1.5的政府网站到Joomla2.5。该网站运行在LAMP环境下。为了更好的模拟真实的运行环境,并且方便测试。需要将目标网站移植到本地环境。由于我习惯在wamp下工作,而现在的要求是在真实的LAMP环境下。那么需要搭建一个LAMP环境,本文将记录一些在搭建环境过程中遇到的一些问题。

搭建LAMP环境


对于Linux系统虽不说熟悉,但一些基本的操作还是会的。也懂得yum和rpm。所以大致上清楚要做些什么。

最开始的我在虚拟机上安装了一个centos 操作系统。然后依照 http://www.jb51.net/article/24775.htm这篇文章进行安装。还真成功的安装上了。

具体的步骤摘录如下:

1,更换yum源(当然你不换也可以,换源只是为了下载资源更加迅速。我安装了两次,一次没有换源,一次换了。那个下载速度就是不一样)

 1.1备份CentOS-Base.repo 
cd /etc/yum.repos.d/ 
cp CentOS-Base.repo CentOS-Base.repo.bak 
1.2替换源 
用vi打开CentOS-Base.repo,并将内容清空,然后将下面的内容复制进去,并保存。 
# CentOS-Base.repo 

# This file uses a new mirrorlist system developed by Lance Davis for CentOS. 
# The mirror system uses the connecting IP address of the client and the 
# update status of each mirror to pick mirrors that are updated to and 
# geographically close to the client. You should use this for CentOS updates 
# unless you are manually picking other mirrors. 

# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead. 


[base] 
name=CentOS-$releasever - Base 
baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch/ 
gpgcheck=1 
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5 
#released updates 
[updates] 
name=CentOS-$releasever - Updates 
baseurl=http://mirrors.sohu.com/centos/$releasever/updates/$basearch/ 
gpgcheck=1 
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5 
#packages used/produced in the build but not released 
[addons] 
name=CentOS-$releasever - Addons 
baseurl=http://mirrors.sohu.com/centos/$releasever/addons/$basearch/ 
gpgcheck=1 
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5 
#additional packages that may be useful 
[extras] 
name=CentOS-$releasever - Extras 
baseurl=http://mirrors.sohu.com/centos/$releasever/extras/$basearch/ 
gpgcheck=1 
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5 
#additional packages that extend functionality of existing packages 
[centosplus] 
name=CentOS-$releasever - Plus 
baseurl=http://mirrors.sohu.com/centos/$releasever/centosplus/$basearch/ 
gpgcheck=1 
enabled=0 
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-5 
1.3更新一下。 
yum -y update 

2,用yum安装Apache ,Mysql .PHP.

2.1安装Apache 
yum install httpd httpd-devel 
安装完成后,用/etc/init.d/httpd start 启动apache 
设为开机启动:chkconfig httpd on 
2.2 安装mysql 
2.2.1 yum install mysql mysql-server mysql-devel 
同样,完成后,用/etc/init.d/mysqld start 启动mysql 
2.2.2 设置mysql密码 
mysql>; USE mysql; 
mysql>; UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root'; 
mysql>; FLUSH PRIVILEGES; 
2.2.3 允许远程登录 
mysql -u root -p 
Enter Password: <your new password> 
mysql>GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; 
完成后就能用mysql-front远程管理mysql了。 
2.2.4 设为开机启动 
chkconfig mysqld on 

其中,我只使用2.2.2设置mysql的密码。后面的允许开机启动 ,允许远程登录这些都没有设置。

3,安装php

yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml 
/etc/init.d/httpd start 

4,测试

 4.1在/var/www/html/新建个test.php文件,将以下内容写入,然后保存。 
<? 
phpinfo(); 
?> 

5,防火墙配置

a.添加.允许访问端口{21: ftp, 80: http}. 
iptables -I RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT 
iptables -I RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT 
b.关闭防火墙{不推荐}. 
service iptables stop 
c.重置加载防火墙 
service iptables restart 

由于我是用的测试环境,我直接关闭了防火墙,然后可以在浏览器中输入IP地址访问 

到这来LAMP环境就算搭建成功了,在浏览器中我的确看到phpinfo()输入的结果。但同时我发现了一个文件,php的版本是5.16.这个版本太低了,根本运行不了joomla。那么我现在又必须解决另外的问题了。如何升级php的版本。

解决php版本过低的问题


LAMP环境搭建好了,但PHP版本低,还是不能运行。在网上查找了一些方案。怎样去centos 5.8的php版本。并且也尝试去做。但都没有效果。最后和一朋友聊起,他认为我的centos的版本太低了。现在的centos都是7.0了。因此他建议我去下载一个新的版本centos.

下载地址如下:

http://mirrors.163.com/centos/6.5/isos/i386/

只需要下载DVD1和DVD2就行了。在实际的安装中,只用到了DVD1

安装了新的centos 6.5.然后重新走了一次上面的流程。(可能没有修改yum源这一步,具体有没有已经忘了。)现在PHP的版本为5.3.3了。基本的环境够了。

安装phpmyadmin


 在wamp环境中使用phpmyadmin来创建数据库。因此我想在Linux中也安装一个phpmyadmin.找了一些资料。最终因为时间的关系还是放弃了。因为我需要的数据库操作不多。只需要创建一个数据库就够了。在控制台下进入mysql然后输入 CREATE DATABASE DatabaseName 就可以进行下一步的joomla安装了。

安装joomla


 

到了这一步那就简单了。直接用akeeba对原始网站进行一个备份。然后进行恢复。在恢复的过程中。出现了第一个问题--不能写。很快就意识到了是Linux系统的权限问题。使用chmod -R 777 DIRNAME解决了这个问题。虽然给777不是很好,但在测试环境下还是可以这么给的。

之后的安装都很顺利。直接下一步就可以了。

本来这样就应该完成的。但是我浏览网站的时候发现,出现了首页,但是首页上任意一个连接都不能够点击,都出现了404错误。凭借经验,这个和Apache的重写模块有关。那么下一步就是解决重写的问题了。

解决出来首页出现之外,其他页面都是404的问题


这个问题是由于apache重写出错导致的。我按照如下步骤进行了检查

1,登录后台,在全局设置中确认启用了apche重写模块。

2,登录后台,在系统信息中确认加载了mod_rewrite模块

3,在网站的更目录下确认有.httrack文件,并且确认其中的根路径没有问题。

经过了以上3个检查,发现还是不能解决问题。这个就很奇怪了。因此我就怀疑是不是 apache要启用mod_rewrite功能还需要其他的设置。

在网上发现了如下信息:http://jingyan.baidu.com/article/a65957f4a4209a24e77f9b55.html

最近做wordpress,发现固定链接总是设置不了。后来发现是由于apache服务器的URL REWIRITE模块没有开启导致。
查询了资料之后终于设置成功,记录下步骤:1:开启apache的url_rewrite模块,在httpd.conf中去掉这句话的注释LoadModulerewrite_module modules/mod_rewrite.so。(这句话默认情况下是注释的,前面有#)2:找到AllowOverride,把AllowOverride None修改成AllowOverride all(这个至观重要,不做这个设置的话就算做了其它的操作,也是无效的)。另外这个地方文件里面有好几个地方有这个参数,如果不懂的话就全部改掉。3:在所需要进行rewrite的web的主目录下添加.htaccess文件,添加上一句话:RewriteEngine on。在.htaccess下补充个人的重写规则即可(一般都有这个文件,只要添加上面那句就可以了)。
步骤2是很重要,这个配置的含义就是让apache去
读取对应的配置文件,.htaccess属于配置文件之一,如果设置成为了None就不让读取了就无效了

按照上面的提示,我发现是由于第2条不满足,是的apache的重写功能失效的。修正了这个问题后,重起apche服务器。问题解决。一定要注意,第二条在多个地方都有,需要修改多个地方。

 

至此,joomla的迁移就算成功完成了。

 

其中我还需要解决的一个问题是:如何固定虚拟机的IP?

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前

第8章 Gantry 框架