Yerel WordPress Site Kurulumunu Komut Dosyalarıyla Otomatikleştirme Bölüm 3: Gerisini Otomatikleştirme



Automating Local WordPress Setup serisindeki son yazımda, WordPress'i hızlı bir şekilde kurmak ve kaldırmak için bir WP-CLI paketi oluşturdum. Bu paketi bir süredir kullanıyorum ve onu tipik bir geliştirme iş akışı için daha kullanışlı hale getirmek için can atıyorum.

Yakın zamanda tüm geliştirme sitelerimi alt dizinlerde tutmak için tek bir sanal ana bilgisayar kullanmaktan (örn. http://localhost/example ) her geliştirme sitesi için özel bir sanal ana bilgisayar kullanmaya geçtim. Bu şekilde kurmanın birkaç avantajı var, ancak her sanal ana bilgisayarı manuel olarak yönetmek zorunda kalmamak için alt dizinleri kullanıyordum.

Ayrıca kendimi hala otomatikleştirilmesi gerektiğini bildiğim şeyleri yaparken yakalıyorum. Gereksiz verileri silmek, varsayılan temaları/eklentileri kaldırmak ve yeni eklentiler yüklemek gibi şeyler, geliştirmeyi kolaylaştırmak için otomatikleştirilebilen şeylerdir. Bu yazıda, tüm bunları mümkün kılmanın bazı yollarına göz atacağız.

Sanal Konaklarla Çalışmak

Bunları zaten kullanmıyorsanız, yerel geliştirme için sanal ana bilgisayarlara geçmenin iki ana nedeni vardır:

  • Her sitenin farklı bir PHP sürümü çalıştırdığı her ana bilgisayar için farklı bir ortamınız olabilir.
  • URL'ler daha temiz görünüyor – yani http://localhost/example yerine http://example.dev

Neyse ki, MAMP Pro kullanıyorsanız, komut satırı aracılığıyla yeni sanal ana bilgisayarlar oluşturmak inanılmaz derecede kolaydır, bu da onları komut dosyası haline getirebileceğimiz anlamına gelir!

 #! /bin/bash if [ $# -ne 1 ]; then echo $0: usage: Destination Name exit 1 fi DEST=$1 /Applications/MAMP\ PRO/MAMP\ PRO.app/Contents/MacOS/MAMP\ PRO cmd stopServers /Applications/MAMP\ PRO/MAMP\ PRO.app/Contents/MacOS/MAMP\ PRO cmd createHost "$DEST" "~/Sites/$DEST" /Applications/MAMP\ PRO/MAMP\ PRO.app/Contents/MacOS/MAMP\ PRO cmd startServers

Yukarıdaki kabuk betiği Apache ve MySQL'i otomatik olarak durduracak, yeni bir sanal ana bilgisayar ekleyecek ve yeni ana bilgisayara hemen erişilebilmesi için sunucuları yeniden başlatacaktır. Kullanmak için, yürütülebilir bir yola “add-virtual-host.sh” olarak kaydedin ve uygun izinlere sahip olduğundan emin olun. Bunu nasıl yapacağınızdan emin değilseniz, bu dizinin ilk makalesi kısaca kabuk komut dosyalarının oluşturulmasını ve yürütülmesini kapsar.

İşleri bir adım daha ileri götürerek, yeni bir site oluştururken WP Installer paketinin (bu serinin 2. bölümünden) bu komutu sizin için çalıştırmasını sağlamak kolaydır. wp installer install komutuna isteğe bağlı bir parametre —after_script ve bunu yüklemeden sonra çalıştırılması gereken özel kabuk komut dosyalarını başlatmak için kullandım:

 if ( isset( $assoc_args['after_script'] ) ) { WP_CLI::launch( $assoc_args['after_script'] . ' ' . $args[0] . '&>/dev/null' ); }

Artık WP-CLI yapılandırma dosyanızı varsayılan olarak --after_script parametresini iletecek şekilde güncelleyebilirsiniz, böylece komutu her çalıştırdığınızda onu yazmanız gerekmez:

 # WP Installer default args installer install: base_path: '/Users/Example/Sites' base_url: http://localhost/ dbuser: root dbpass: root dbhost: 127.0.0.1 admin_user: test admin_password: test admin_email: [email protected] after_script: add-virtual-host.sh

Bu durumda, wp installer install example.dev çalıştırmak WordPress'i yükleyecek ve siteyi http://example.dev kullanılabilir hale getirmek için sanal ana bilgisayarı oluşturacaktır. Oldukça şık!

Kurulumu Temizleme

Bir siteye her giriş yaptığımda yaptığım ilk şey, fazladan temaları, eklentileri silmek ve WordPress'i kurarken oluşturulan varsayılan verilerin bir kısmını temizlemek. Bunu bir kereden fazla yapmak için bir sebep yok, o yüzden bunu da otomatikleştirelim.

 /** * Cleanup any unnecessary data after install. * * ## OPTIONS * * <dest> * : The site to clean up * * [--after_script] * : A custom script to run after the cleanup. */ public function cleanup( $args, $assoc_args ) { $base_path = isset( $assoc_args['base_path'] ) ? $assoc_args['base_path'] : getcwd(); $site_path = $base_path . '/' . $args[0]; WP_CLI::log( 'Removing extra themes...' ); WP_CLI::launch( \WP_CLI\Utils\esc_cmd( 'wp --path=%s theme delete twentyfifteen', $site_path ) ); WP_CLI::launch( \WP_CLI\Utils\esc_cmd( 'wp --path=%s theme delete twentysixteen', $site_path ) ); WP_CLI::log( 'Removing default plugins...' ); WP_CLI::launch( \WP_CLI\Utils\esc_cmd( 'wp --path=%s plugin delete hello', $site_path ) ); WP_CLI::launch( \WP_CLI\Utils\esc_cmd( 'wp --path=%s plugin delete akismet', $site_path ) ); WP_CLI::log( 'Removing sample data...' ); WP_CLI::launch( \WP_CLI\Utils\esc_cmd( 'wp --path=%s db query "TRUNCATE TABLE wp_posts; TRUNCATE TABLE wp_postmeta; TRUNCATE TABLE wp_comments; TRUNCATE TABLE wp_commentmeta;"', $site_path ) ); WP_CLI::launch( \WP_CLI\Utils\esc_cmd( 'wp --path=%s user meta update 1 show_welcome_panel "0"', $site_path ) ); if ( isset( $assoc_args['after_script'] ) ) { WP_CLI::launch( $assoc_args['after_script'] . ' ' . $args[0] . '&>/dev/null' ); } }

Yukarıdaki işlev, dikkatimizi dağıtmadan geliştirmeye başlayabilmemiz için bu verileri temizler. wp installer install komutu gibi, temizlemeden sonra herhangi bir ek komut dosyası çalıştırmanız gerekmesi durumunda --after_script parametresini de kabul eder.

Sık Kullanılan Eklentileri Yükleme

Çok sayıda geliştirme sitesiyle çalışıyorsanız, en azından bazılarının bazı eklentileri paylaşma ihtimali vardır. Eklentilerin veya temaların listesini okumak için kolayca bir komut oluşturabilir ve bunları gerektiği gibi kurabilir/etkinleştirebiliriz:

 /** * Add plugins from the provided file. * * ## OPTIONS * * <dest> * : The site to add plugins to. * * [--plugin_list] * : The path to the file containing the list of plugins to install. */ public function add_plugins( $args, $assoc_args ) { $base_path = isset( $assoc_args['base_path'] ) ? $assoc_args['base_path'] : getcwd(); if ( isset( $assoc_args['plugin_list'] ) && file_exists( $assoc_args['plugin_list'] ) ) { $plugins = file_get_contents( $assoc_args['plugin_list'] ); $plugins = explode( PHP_EOL, $plugins ); foreach ( $plugins as $plugin ) { $cmd = 'wp --path=%s plugin install %s'; $cmd = \WP_CLI\Utils\esc_cmd( $cmd, $base_path . '/' . $args[0], $plugin ); $result = WP_CLI::launch( $cmd, false, true ); WP_CLI::log( $result ); } } else { WP_CLI::log( 'Plugin list not found' ); } }

Yukarıdaki komut, sağlanan bir dosya boyunca döngü yapacak ve dosyadaki her eklenti için wp plugin install çalıştıracaktır. Artık, WP Installer'ın yüklemesini istediğiniz eklentilerin adlarını, yollarını veya URL'lerini ve ayrıca isteğe bağlı parametreleri içeren basit bir metin dosyası oluşturabilirsiniz:

 better-search-replace wp-migrate-db wp-offload-s3 --activate

Ve bu dosyanın yolunu WP-CLI yapılandırma dosyasına ekleyin:

 installer add_plugins: plugins_list: '/Users/Example/Sites/plugins.txt'

Şimdi wp installer add_plugins example.dev , eklentiler dosyanızda tanımladığınız eklentiler arasında dolaşmalıdır.

Son düşünceler

Bu, yerel WordPress site kurulumunu otomatikleştirme konusundaki serimi tamamlıyor. Eminim gözden kaçırdığım şeyler vardır ve yolun aşağısına eklemek isteyeceğim. Şimdilik, WordPress'i yüklemek ve sanal ana bilgisayarı kurmak için tek bir komut kullanabilmek, geliştirme ortamları kurmak için harcadığım süreyi kesinlikle azaltmaya yardımcı oldu.

Yerel iş akışınızı otomatikleştirmek için ne yapıyorsunuz? Yukarıdaki işlevlerden herhangi birini ele almanın daha iyi bir yolu için herhangi bir öneriniz var mı?

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

Divi's Theme Builder ile Özel Global Başlık Nasıl Oluşturulur

Artık Tema Oluşturucu burada olduğuna göre, web sitenizi A'dan Z'ye kurmanıza yardımcı olacak yeni eğitimlere dalmak için sabırsızlanıyoruz. Buna Divi'nin yerleşik seçeneğini kullanarak özel başlıklar oluşturma da dahildir. Bu eğitimde Divi's Theme Builder'ı kullanarak global bir başlık oluşturmaya odaklanacağız. Bu sayfaya veya gönderiye farklı bir başlık atamadıysanız, web sitenizin her yerinde genel bir başlık görünecektir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir