WordPress fast setup initialize

Preparation for WordPress installation



In order for WordPress to be installed on a server computer, MySQL data definition and codes written in php programming language are required. The first step to starting WordPress installation is to install WordPress files on the server computer. Compressed file size of WordPress files is around 14 MB. These files are over 1900 files in javascript, css, images, php and other formats. There are different options available for uploading files to the server.

• Using FTP only: It is the simplest. But you need to wait more for the process to complete.
»Extract the compressed WordPress file to your computer.
»Upload a large number of files to individual server via FTP.

• Using cPanel: Faster. But you need to have cPanel interface.
»Upload the single compressed file to your server.
»Extract the compressed file in the server with the file manager.

-

Alternative and fast WordPress setup



You can copy WordPress files to your server faster using an alternative method. Install the small php-coded program snippet on the bottom and run it. That's all. You are ready to start WordPress installation with one click.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?php 

echo download_wordpress_zip();
// echo download_wordpress_zip('tr_TR');

function download_wordpress_zip( $language = false ){
/**
 * Initialize wordpress for installation with one click.
 *
 * @param string $language		( Optional ) Wordpress setup language. 
 *								false	: (Default) English - en_US
 *								tr_TR	: Turkish
 *								pt_PT	: Portuguese
 *								ja		: Japanese
 *								… See full list of languages: 
 *								 https://make.wordpress.org/polyglots/teams/
 *
 * @return string					Returns process messages.
 *
 * usage
 *		download_wordpress_zip();
 *		download_wordpress_zip('tr_TR');
 *
 * https://atakanau.blogspot.com
 */
	
	$logs = '';
	
	// Generate download link
	// https://wordpress.org/latest.zip
	// https://tr.wordpress.org/latest-tr_TR.zip
	$sub_dir = $language ? explode('_',$language)[0].'.' : '';
	$url = 'https://'.$sub_dir.'wordpress.org/';
	$file_name = 'latest' . ( $language ? '-'.$language : '' ) . '.zip';
	$file_name_local = 'wordpress' . ( $language ? '-'.$language : '' ) . '.zip';
	$logs .= "<pre>Download started: $url.$file_name </pre>";
	// Download zip file from wordpress.org to our server
	file_put_contents($file_name_local, fopen($url.$file_name, 'r'));
	$fileSizeMB = number_format((filesize($file_name_local) / 1024 / 1024), 2);
	$logs .= "<pre>Zip file saved as $file_name_local ($fileSizeMB MB) </pre>";
	// Unzip downloaded file
	if( class_exists('ZipArchive') ){
		$path = pathinfo(realpath($file_name_local), PATHINFO_DIRNAME);
		$zip = new ZipArchive;
		$res = $zip->open($file_name_local);
		if ($res === TRUE) {
			// extract it to the path we determined above
			$zip->extractTo($path);
			$zip->close();
			$logs .= "<pre>$file_name_local extracted to $path</pre>";
		} else {
			$logs .= "<pre>Error, file can not open: $file_name_local</pre>";
		}
	}elseif( function_exists('unzip') ){
		$dir = getcwd();
		unzip($dir,$file_name_local);
		$logs .= "<pre>$file_name_local extracted to $path</pre>";
	}else{
		$logs .= "<pre>Error, file can not unzip: $file_name_local</pre>";
	}
	// Move all files and directories from extracted folder to current directory
	$sourceDir = __DIR__ . DIRECTORY_SEPARATOR . 'wordpress';
	$targetDir = __DIR__ . DIRECTORY_SEPARATOR . '.';
	rmove($sourceDir , $targetDir);
	return $logs;
}

/**
 * A Recursive directory move that allows exclusions. The excluded items in the src will be deleted
 * rather than moved.
 * https://gist.github.com/bubba-h57/5117694
 *
 * @param string $sourceDir			The fully qualified source directory to copy
 * @param string $targetDir			The fully qualified destination directory to copy to
 * @param array $exclusions			An array of preg_match patterns to ignore in the copy process
 * @throws InvalidArgumentException
 * @throws ErrorException
 * @return boolean					Returns TRUE on success, throws an error otherwise.
 */
function rmove($src, $dest, $exclusions = array()){

	// If source is not a directory stop processing
	if(!is_dir($src)) throw new InvalidArgumentException('The source passed in does not appear to be a valid directory: ['.$src.']', 1);

	// If the destination directory does not exist create it
	if(!is_dir($dest)) {
		if(!mkdir($dest, 0, true)){
			throw new InvalidArgumentException('The destination does not exist, and I can not create it: ['.$dest.']', 2);
		}
	}

	// Ensure enclusions parameter is an array.
	if (! is_array($exclusions)) throw new InvalidArgumentException('The exclustion parameter is not an array, it MUST be an array.', 3);

	$emptiedDirs = array();

	// Open the source directory to read in files
	foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($src, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST) as $f) {

		// Check to see if we should ignore this file or directory
		foreach ($exclusions as $pattern){
			if (preg_match($pattern, $f->getRealPath())){
				if ($f->isFile()){
					if (! unlink($f->getRealPath())) throw new ErrorException("Failed to delete file [{$f->getRealPath()}] ", 4);
				}elseif($f->isDir()){
					// we will attempt deleting these after we have moved all the files.
					array_push($emptiedDirs, $f->getRealPath());
				}

				// Because we have to jump up two foreach levels
				continue 2;
			}
		}
		// We need to get a path relative to where we are copying from
		$relativePath = str_replace($src, '', $f->getRealPath());

		// And we can create a destination now.
		$destination = $dest . $relativePath;

		// if it is a file, lets just move that sucker over
		if($f->isFile()) {
			$path_parts = pathinfo($destination);

			// If we don't have a directory for this yet
			if (! is_dir($path_parts['dirname'])){
				// Lets create one!
				if (! mkdir($path_parts['dirname'], 0, true)) throw new ErrorException("Failed to create the destination directory: [{$path_parts['dirname']}]", 5);
			}

			if (! rename($f->getRealPath(), $destination)) throw new ErrorException("Failed to rename file [{$f->getRealPath()}] to [$destination]", 6);

		// if it is a directory, lets handle it
		}elseif($f->isDir()){
			// Check to see if the destination directory already exists
			if (! is_dir($destination)){
				if (! mkdir($destination, 0, true)) throw new ErrorException("Failed to create the destination directory: [$destination]", 7);
			}

			// we will attempt deleting these after we have moved all the files.
			array_push($emptiedDirs, $f->getRealPath());

		// if it is something else, throw a fit. Symlinks can potentially end up here. I haven't tested them yet, but I think isFile() will typically
		// just pick them up and work
		}else{
			throw new ErrorException("I found [{$f->getRealPath()}] yet it appears to be neither a directory nor a file. [{$f->isDot()}] I don't know what to do with that!", 8);
		}
	}

	foreach ($emptiedDirs as $emptyDir){
		// print "Deleting $emptyDir\n";
		if (realpath($emptyDir) == realpath($src)){
			continue;
		}
		if (!is_readable($emptyDir)) throw new ErrorException("The source directory: [$emptyDir] is not Readable", 9);

		// Delete the old directory
		if (! rmdir($emptyDir)){
			// The directory is empty, we should have successfully deleted it.
			if ((count(scandir($emptyDir)) == 2)){
				throw new ErrorException("Failed to delete the source directory: [$emptyDir]", 10);
			}
		}
	}

	// Finally, delete the base of the source directory we just recursed through
	if (! rmdir($src)) throw new ErrorException("Failed to delete the base source directory: [$src]", 11);
	return true;
}


-

How does it works?



This php script downloads the WordPress zip file directly to the server. and extracts (extracts) inside the server with php command.


-

About WordPress



WordPress is the most preferred of the frameworks that can be used to create a website. You can use it without any programming language knowledge. It is an easy to use and simple content management system (C.M.S.). It is suitable for creating a blog site. You can also make use of add-ons, portfolio, service promotion, web sites where you can sell products.


Share:

5 comments:

  1. Hi, on Wordpress.org I found the plugin "Import CDN-Remote Images" By Atakan Au.
    It uses only Cloudinary as a cdn, do you intent to extend it to use Google Photos as well ?
    Thank you.
    Michel

    ReplyDelete
    Replies
    1. Hello.
      Unfortunately, there is not a way to fetch image list from Google Photos.

      Delete
  2. Awesome Article. Thank you for sharing this article.

    ReplyDelete
  3. I love how you broke down this complex subject into digestible bits. Your writing makes it so easy to understand and relate to. Can’t wait for your next post!

    ReplyDelete
  4. I've been looking for exactly this kind of solution - it works! Thanks!

    ReplyDelete

ⓘ Comment is published after moderation.


Subscribe to: Post Comments (Atom)