标签:
最近有一个项目,涉及到一个网站的静态化操作。该网站运行在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资源分享频道:http://www.zmax99.com/home-page/menu-cn-user-page/zmax-blog
ZMAX团队—Joomla专业开发团队
标签:
原文地址:http://www.cnblogs.com/chenla/p/4968521.html