浏览模式: 标准 | 列表 2012年01月6日的文章

Linux VPS快速搭建magento环境与迁移magento网站

手头管理的某台vps因为特殊原因不能继续使用了,挂在其上基于LAMP环境的magento网站需要迁移到新的VPS上,本文就magento程序的特殊性,记录一下新环境的快速搭建以及迁移magento网站。新VPS系统是centos 5 32bit,以下操作都是基于此。

首先为新VPS快速搭建运行magento程序必须的LAMP环境,首先安装:

# wget -c http://dl.wdlinux.cn:5180/lanmp_v20.tar.gz

# tar zxvf lanmp_v20.tar.gz

#sh in.sh (选择1回车:apache + php + mysql + zend + eAccelerator + pureftpd + phpmyadmin)

安装pdo_mysql扩展(magento必须)

# wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz

tar zxvf PDO_MYSQL-1.0.2.tgz

cd PDO_MYSQL-1.0.2

/www/wdlinux/php/bin/phpize

./configure --with-php-config=/www/wdlinux/php/bin/php-config --with-pdo-mysql=/www/wdlinux/mysql

make && make install

#echo "extension=pdo_mysql.so">>/www/wdlinux/etc/php.ini

#service httpd restart (重启apache使扩展生效)

# /www/wdlinux/php/bin/php -m (通过此命令可以看到php所加载的扩展,包括pdo_mysql,有问题可以根据提示进行修改,比如路径错误导致找不到,则建立正确的扩展路径,错误修改后再次执行上一条命令使扩展生效。

lanmp_v20.tar.gz已经配置集成了rewrite规则与innodb存储引擎的配置信息,方便了部署,所以快速完成环境搭建之后就可以开始迁移magento网站:

  1. 在新的VPS上建立与旧VPS一样的网站配置(网站、数据库、配置文件)
  2. 将旧VPS与新VPS的mysql数据库停用,在旧VPS上打包mysql数据库:mysqldump -h localhost -uroot -p magento > /root/magento_db.sql
  3. 采用最直接省事的scp工具进行迁移,因为旧VPS的ssh默认端口被我修改为2222,所以命令有所改变,先迁移网站:scp -r  -P 2222 root@8.8.8.8:/www/web/magento/public_html/ /www/web/magento/public_html/
  4. 再迁移数据库:scp -r  -P 2222 root@8.8.8.8:/root/magento_db.sql /root/
  5. 将数据库导入:mysql -h localhost -uroot -p magento < /root/magento_db.sql (之前测试过直接打包数据库迁移过来解压缩到数据库存储目录不成功,只能如此)
  6. 启动新VPS上的mysql服务,将域名解析到新VPS,解析生效后测试网站是否正常

迁移后的提醒:

  • 迁移网站后如果无法正常访问,而是跳转到默认模板之类的情况发生,将网站的errors目录下的local.xml.sample修改为local.xml,刷新后就可以看到出错提示。
  • 网站使用了rewrite,但是打开产品页面却跳转404页面,那么就手动将magento的.htaccess传到网站根目录。

Tags: linux, vps, magento, pdo_mysql, innodb

linux mysql密码遗忘丢失找回来的方法

以下命令需要在root权限下执行:

首先要停止mysql服务,看一下mysql使用说明(启动、停止、重启、重启、重载、强制重载、状态),如下: 

# /etc/init.d/mysql

Usage: /etc/init.d/mysql  {start|stop|restart|reload|force-reload|status}  [ MySQL server options ]

停止mysql服务:

# /etc/init.d/mysql stop

执行mysql下的mysqld_safe,跳过权限与网络设置启动(以便下一步无须权限就可以进入数据库操作)

# /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

使用mysql命令直接进入mysql数据库进行操作: 

# mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD('NewPassword') where USER='root';

mysql> FLUSH PRIVILEGES;

mysql> quit 

重启mysql服务使得mysql恢复正常运行:

# /etc/init.d/mysql restart

尝试用新密码登陆操作:

# mysql -uroot -p

Enter password: <输入重置的密码NewPassword>

简单几步,重置mysql密码。

Tags: mysql