我如何从magento运行bash shell脚本?

时间:2012-03-29 04:16:54

标签: shell magento

<?php
    require_once 'abstract.php';

    class Mage_Shell_Snapshot extends Mage_Shell_Abstract
    {
    public function _snapshot()
    {
        if(!Mage::isInstalled()) 
        {
            echo "Application is not installed yet, please complete install wizard first.";
            exit;
        }
        # Initialize configuration values
        $connection = Mage::getConfig()->getNode('global/resources/default_setup /connection');
        $rootpath = $this->_getRootPath();
        $snapshot = $rootpath.'testing';

        # Create the snapshot directory if not exists
        $io = new Varien_Io_File();
        $io->mkdir($snapshot);

        include('/home/test/public_html/xmlapi.php');
        $cp_user="test";
        $cp_pass="test123";
        $db_host="localhost";
        $db_name="test_insatller";
        $db_user="test_test";
        $db_pass="home123";
        $url="http://201.40.548.550/testing/";
        $ad_user="admin";
        $ad_pass="sk12121";
        $ad_email="indies.tester@gmail.com";
        $xmlapi = new xmlapi($db_host);
        $xmlapi->set_port(2083);
        $xmlapi->password_auth($cp_user,$cp_pass);
        $xmlapi->set_debug(1);
        //create database
        $xmlapi->api1_query($cp_user,"Mysql", "adddb", array($db_name));
        //create user
        $xmlapi->api1_query($cp_user,"Mysql", "adduser", array($db_user,$db_pass)); 
        //add user to database
        $xmlapi->api1_query($cp_user,"Mysql", "adduserdb", array($db_name,$db_user,'all'));
        $command = '/home/indieste/public_html/function.sh '.$db_host.' '.$db_name.' '.$db_user.' '.$db_pass.' '.$url.' '.$ad_user.' '.$ad_pass.' '.$ad_email; 
        echo $command;
        system($command);
        Mage::log($command);

    }
    public function run()
    {
        if ($this->getArg('testing'))
        {
            $this->_snapshot();
        }
        else
        {
            echo $this->usageHelp();
        }
    }

    public function usageHelp()
    {
        global $argv;
        $self = basename($argv[0]);

        USAGE;
    }
    }
   $shell = new Mage_Shell_Snapshot();
    $shell->run();

当我使用putty从文件夹snapshot.php运行此magento->shell->snapshot.php时,它不会创建数据库和用户。

我正在使用xmlapi.php在cpanel中创建数据库和用户,并运行此运行function.sh文件以在cpanel的根目录中安装magento。它也没有给我任何类型的错误。那么,这段代码是否足以从magento运行bash shell脚本(function.sh)?

function.sh文件包含与从服务器下载magento相关的命令,将其解压缩,并使用hostname,hostpassword,dbname,dbuser,dbpassword,admin user,admin password安装在cpanel的根目录中。

如果有任何人有相关链接从magento运行shell脚本,那么请给我并告诉我如何从magento运行shell脚本?。

2 个答案:

答案 0 :(得分:2)

参考文章:
http://www.magentocommerce.com/wiki/how_to_-_import_manufacturers_or_any_other_option_attribute_set
使用shell脚本导入制造商。

希望这有帮助。

答案 1 :(得分:2)

Shell脚本可以通过两种方式从任何php应用程序运行。

  1. 使用 exec()功能运行脚本。

  2. 使用backticks (``)并指定要在刻度线中运行的命令。 例如:

  3. $ variable =``ls;在反叛内部。

    将ls的输出提供给变量。

    请确保您是否将此用于应用程序,因为从安全角度来看,这是一个严重的问题。