Tomasz Kozioł
WordUp Kraków
#wiosna 2014
http://www.idium.com/job-opportunities
Jak wydzielić core-a z potwora,
czyli współdzielony kod WordPress-a
Piotr Dziedzic
Jak oddzielić kod WordPress-a
- Głębiej w drzewie katalogów niż wskazuje DocumentRoot (https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory)
- Wyżej w drzewie katalogów niż wskazuje DocumentRoot (http://wordpress.stackexchange.com/questions/57109/how-to-share-wordpress-core-library#answer-57561)
Jak współdzielić kod WordPress-a
- Przenieść pliki do wspólnej lokalizacji
- Przygotować globalny wp-config.php
- Przygotować globalną konfigurację Apache-a z aliasami
- Przeładować konfigurację Apache-a
Przykładowy globalny
plik wp-config.php
if(empty($_SERVER['DOCUMENT_ROOT']) || empty($_SERVER['HTTP_HOST'])) { @header( "HTTP/1.1 404 Not Found", true, 404 ); echo '<h1>Not Found</h1><p>The requested URL was not found on this server.</p>'; die; }
$instancePath = rtrim(realpath($_SERVER['DOCUMENT_ROOT']), '/').'/'; $instanceUrl = 'http://'.$_SERVER['HTTP_HOST'].'/';
define( 'WP_CONTENT_DIR', $instancePath . 'wp-content' ); define( 'WP_CONTENT_URL', $instanceUrl.'wp-content' ); define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' ); define( 'WP_PLUGIN_URL', WP_CONTENT_URL . '/plugins' ); define( 'PLUGINDIR', WP_PLUGIN_DIR ); define('FS_METHOD', 'direct');
require_once $instancePath.'wp-config.php';
Przykładowy plik globalnej
konfiguracji Apache
Alias /wp-admin /path/to/core/3.8.1/wp-admin
Alias /wp-includes /path/to/core/3.8.1/wp-includes
Alias /wp-links-opml.php /path/to/core/3.8.1/wp-links-opml.php
Alias /wp-mail.php /path/to/core/3.8.1/wp-mail.php
Alias /wp-trackback.php /path/to/core/3.8.1/wp-trackback.php
Alias /wp-cron.php /path/to/core/3.8.1/wp-cron.php
Alias /wp-load.php /path/to/core/3.8.1/wp-load.php
Alias /xmlrpc.php /path/to/core/3.8.1/xmlrpc.php
Alias /wp-activate.php /path/to/core/3.8.1/wp-activate.php
Alias /wp-comments-post.php /path/to/core/3.8.1/wp-comments-post.php
Alias /wp-login.php /path/to/core/3.8.1/wp-login.php
Alias /wp-signup.php /path/to/core/3.8.1/wp-signup.php
Alias /index.php /path/to/core/3.8.1/index.php
Alias /wp-blog-header.php /path/to/core/3.8.1/wp-blog-header.php
Zalety
- Bezpieczeństwo
- Łatwa aktualizacja wielu stron
- Lepsza wydajność (korzystając z akceleratorów PHP)
Wada
Stała ABSPATH prowadzi do współdzielonego kodu,
a nie do katalogu głównego plików strony
Platforma WordPress-a
w Idium
Cele
- Bezpieczeństwo
- Wydajność
- Łatwość implementacji
GitLab
WP Manager
Varnish
APC
Nginx
Idium WP Libraries + Idium WP Theme
Współdzielony kod WordPress-a
Pytania?
Idium Kraków
By Tomasz Koziol
Idium Kraków
Presentation for WordUp event Spring 2014
- 2,880