Wordpress & Simple Machines Forum

Can I install both of these onto one website? It doesn’t offer an easy install option as with wordpress, so is this an FTP type deal or is there another menu to install easily that I’m missing.

Thanks

Yes.

Check Tutorials section

I followed those but get an error message.

Error-1 - Bridge response error, please check the API docs or this ajax response.

Where do you get these errors?
In the File Manager? Try uploading the zip file installation via FileZilla then extracting with Unzipper script;

I got passed that error but now it isn’t letting me extract the file. It says the folder doesn’t exist, when I create the folder and try to extract, it says it can’t unzip because the folder already exists. LOL

Are you using unzipper?

Yep

nah unzipper is a script.

Upload unzipper.php and use it to extract your .zip file.

Else make a new file called unzipper.php and paste the code on

[code]<?php
/**

  • The Unzipper extracts .zip or .rar archives and .gz files on webservers.
  • It’s handy if you do not have shell access. E.g. if you want to upload a lot
  • of files (php framework or image collection) as an archive to save time.
  • As of version 0.1.0 it also supports creating archives.
  • @author Andreas Tasch, at[tec], attec.at
  • @license GNU GPL v3
  • @package attec.toolbox
  • @version 0.1.0
    */
    define(‘VERSION’, ‘0.1.0’);

$timestart = microtime(TRUE);
$GLOBALS[‘status’] = array();

$unzipper = new Unzipper;
if (isset($_POST[‘dounzip’])) {
//check if an archive was selected for unzipping
$archive = isset($_POST[‘zipfile’]) ? strip_tags($_POST[‘zipfile’]) : ‘’;
$destination = isset($_POST[‘extpath’]) ? strip_tags($_POST[‘extpath’]) : ‘’;
$unzipper->prepareExtraction($archive, $destination);
}

if (isset($_POST[‘dozip’])) {
$zippath = !empty($_POST[‘zippath’]) ? strip_tags($_POST[‘zippath’]) : ‘.’;
// Resulting zipfile e.g. zipper–2016-07-23–11-55.zip
$zipfile = ‘zipper-’ . date(“Y-m-d–H-i”) . ‘.zip’;
Zipper::zipDir($zippath, $zipfile);
}

$timeend = microtime(TRUE);
$time = $timeend - $timestart;

/**

  • Class Unzipper
    */
    class Unzipper {
    public $localdir = ‘.’;
    public $zipfiles = array();

public function __construct() {

//read directory and pick .zip and .gz files
if ($dh = opendir($this->localdir)) {
  while (($file = readdir($dh)) !== FALSE) {
    if (pathinfo($file, PATHINFO_EXTENSION) === 'zip'
      || pathinfo($file, PATHINFO_EXTENSION) === 'gz'
      || pathinfo($file, PATHINFO_EXTENSION) === 'rar'
    ) {
      $this->zipfiles[] = $file;
    }
  }
  closedir($dh);

  if (!empty($this->zipfiles)) {
    $GLOBALS['status'] = array('info' => '.zip or .gz or .rar files found, ready for extraction');
  }
  else {
    $GLOBALS['status'] = array('info' => 'No .zip or .gz or rar files found. So only zipping functionality available.');
  }
}

}

/**

  • Prepare and check zipfile for extraction.
  • @param $archive
  • @param $destination
    */
    public function prepareExtraction($archive, $destination) {
    // Determine paths.
    if (empty($destination)) {
    $extpath = $this->localdir;
    }
    else {
    $extpath = $this->localdir . ‘/’ . $destination;
    // todo move this to extraction function
    if (!is_dir($extpath)) {
    mkdir($extpath);
    }
    }
    //allow only local existing archives to extract
    if (in_array($archive, $this->zipfiles)) {
    self::extract($archive, $extpath);
    }
    }

/**

  • Checks file extension and calls suitable extractor functions.
  • @param $archive
  • @param $destination
    */
    public static function extract($archive, $destination) {
    $ext = pathinfo($archive, PATHINFO_EXTENSION);
    switch ($ext) {
    case ‘zip’:
    self::extractZipArchive($archive, $destination);
    break;
    case ‘gz’:
    self::extractGzipFile($archive, $destination);
    break;
    case ‘rar’:
    self::extractRarArchive($archive, $destination);
    break;
    }

}

/**

  • Decompress/extract a zip archive using ZipArchive.
  • @param $archive
  • @param $destination
    */
    public static function extractZipArchive($archive, $destination) {
    // Check if webserver supports unzipping.
    if (!class_exists(‘ZipArchive’)) {
    $GLOBALS[‘status’] = array(‘error’ => ‘Error: Your PHP version does not support unzip functionality.’);
    return;
    }
$zip = new ZipArchive;

// Check if archive is readable.
if ($zip->open($archive) === TRUE) {
  // Check if destination is writable
  if (is_writeable($destination . '/')) {
    $zip->extractTo($destination);
    $zip->close();
    $GLOBALS['status'] = array('success' => 'Files unzipped successfully');
  }
  else {
    $GLOBALS['status'] = array('error' => 'Error: Directory not writeable by webserver.');
  }
}
else {
  $GLOBALS['status'] = array('error' => 'Error: Cannot read .zip archive.');
}

}

/**

  • Decompress a .gz File.
  • @param $archive
  • @param $destination
    */
    public static function extractGzipFile($archive, $destination) {
    // Check if zlib is enabled
    if (!function_exists(‘gzopen’)) {
    $GLOBALS[‘status’] = array(‘error’ => ‘Error: Your PHP has no zlib support enabled.’);
    return;
    }
$filename = pathinfo($archive, PATHINFO_FILENAME);
$gzipped = gzopen($archive, "rb");
$file = fopen($filename, "w");

while ($string = gzread($gzipped, 4096)) {
  fwrite($file, $string, strlen($string));
}
gzclose($gzipped);
fclose($file);

// Check if file was extracted.
if (file_exists($destination . '/' . $filename)) {
  $GLOBALS['status'] = array('success' => 'File unzipped successfully.');
}
else {
  $GLOBALS['status'] = array('error' => 'Error unzipping file.');
}

}

/**

  • Decompress/extract a Rar archive using RarArchive.
  • @param $archive
  • @param $destination
    */
    public static function extractRarArchive($archive, $destination) {
    // Check if webserver supports unzipping.
    if (!class_exists(‘RarArchive’)) {
    $GLOBALS[‘status’] = array(‘error’ => ‘Error: Your PHP version does not support .rar archive functionality. How to install RarArchive’);
    return;
    }
    // Check if archive is readable.
    if ($rar = RarArchive::open($archive)) {
    // Check if destination is writable
    if (is_writeable($destination . ‘/’)) {
    $entries = $rar->getEntries();
    foreach ($entries as $entry) {
    $entry->extract($destination);
    }
    $rar->close();
    $GLOBALS[‘status’] = array(‘success’ => ‘Files extracted successfully.’);
    }
    else {
    $GLOBALS[‘status’] = array(‘error’ => ‘Error: Directory not writeable by webserver.’);
    }
    }
    else {
    $GLOBALS[‘status’] = array(‘error’ => ‘Error: Cannot read .rar archive.’);
    }
    }

}

/**

  • Class Zipper

  • Copied and slightly modified from http://at2.php.net/manual/en/class.ziparchive.php#110719

  • @author umbalaconmeogia
    /
    class Zipper {
    /
    *

    • Add files and sub-directories in a folder to zip file.
    • @param string $folder
    • Path to folder that should be zipped.
    • @param ZipArchive $zipFile
    • Zipfile where files end up.
    • @param int $exclusiveLength
    • Number of text to be exclusived from the file path.
      */
      private static function folderToZip($folder, &$zipFile, $exclusiveLength) {
      $handle = opendir($folder);

    while (FALSE !== $f = readdir($handle)) {
    // Check for local/parent path or zipping file itself and skip.
    if ($f != ‘.’ && $f != ‘…’ && $f != basename(FILE)) {
    $filePath = “$folder/$f”;
    // Remove prefix from file path before add to zip.
    $localPath = substr($filePath, $exclusiveLength);

     if (is_file($filePath)) {
       $zipFile->addFile($filePath, $localPath);
     }
     elseif (is_dir($filePath)) {
       // Add sub-directory.
       $zipFile->addEmptyDir($localPath);
       self::folderToZip($filePath, $zipFile, $exclusiveLength);
     }
    

    }
    }
    closedir($handle);
    }

/**

  • Zip a folder (including itself).
  • Usage:
  • Zipper::zipDir(‘path/to/sourceDir’, ‘path/to/out.zip’);
  • @param string $sourcePath
  • Relative path of directory to be zipped.
  • @param string $outZipPath
  • Relative path of the resulting output zip file.
    */
    public static function zipDir($sourcePath, $outZipPath) {
    $pathInfo = pathinfo($sourcePath);
    $parentPath = $pathInfo[‘dirname’];
    $dirName = $pathInfo[‘basename’];
$z = new ZipArchive();
$z->open($outZipPath, ZipArchive::CREATE);
$z->addEmptyDir($dirName);
if ($sourcePath == $dirName) {
  self::folderToZip($sourcePath, $z, 0);
}
else {
  self::folderToZip($sourcePath, $z, strlen("$parentPath/"));
}
$z->close();

$GLOBALS['status'] = array('success' => 'Successfully created archive ' . $outZipPath);

}
}
?>

File Unzipper + Zipper <!-- body { font-family: Arial, sans-serif; line-height: 150%; }
label {
  display: block;
  margin-top: 20px;
}

fieldset {
  border: 0;
  background-color: #EEE;
  margin: 10px 0 10px 0;
}

.select {
  padding: 5px;
  font-size: 110%;
}

.status {
  margin: 0;
  margin-bottom: 20px;
  padding: 10px;
  font-size: 80%;
  background: #EEE;
  border: 1px dotted #DDD;
}

.status--ERROR {
  background-color: red;
  color: white;
  font-size: 120%;
}

.status--SUCCESS {
  background-color: green;
  font-weight: bold;
  color: white;
  font-size: 120%
}

.small {
  font-size: 0.7rem;
  font-weight: normal;
}

.version {
  font-size: 80%;
}

.form-field {
  border: 1px solid #AAA;
  padding: 8px;
  width: 280px;
}

.info {
  margin-top: 0;
  font-size: 80%;
  color: #777;
}

.submit {
  background-color: #378de5;
  border: 0;
  color: #ffffff;
  font-size: 15px;
  padding: 10px 24px;
  margin: 20px 0 20px 0;
  text-decoration: none;
}

.submit:hover {
  background-color: #2c6db2;
  cursor: pointer;
}
-->

Status: <?php echo reset($GLOBALS['status']); ?>
Processing Time: <?php echo $time; ?> seconds

Archive Unzipper

Select .zip or .rar archive or .gz file you want to extract: <?php foreach ($unzipper->zipfiles as $zip) { echo "$zip"; } ?> Extraction path (optional):

Enter extraction path without leading or trailing slashes (e.g. "mypath"). If left empty current directory will be used.

Archive Zipper

Path that should be zipped (optional):

Enter path to be zipped without leading or trailing slashes (e.g. "zippath"). If left empty current directory will be used.

Unzipper version: <?php echo VERSION; ?>

[/code]

Ok, Hurdle #6 LOL. Got everything extracted, database made according to the tutorial (except it wouldn’t let me pick php version 5.6, it defaulted to 7.0 and now I get this message when I try to install the forum.

Log in to your 000webhost account and change your php version from settings – general – php version.
And change it to 5.6…To make your SMF work!!!

Thanks, does it create a new database or do I have to put in the info on the one I created?

It doesn’t create any database automatically.
You need to enter your database details manually.