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.
Hi, on Wordpress.org I found the plugin "Import CDN-Remote Images" By Atakan Au.
ReplyDeleteIt uses only Cloudinary as a cdn, do you intent to extend it to use Google Photos as well ?
Thank you.
Michel
Hello.
DeleteUnfortunately, there is not a way to fetch image list from Google Photos.
Awesome Article. Thank you for sharing this article.
ReplyDeleteI 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!
ReplyDeleteI've been looking for exactly this kind of solution - it works! Thanks!
ReplyDelete