1 Introduction
Wordpress c'est génial, mais on y trouves également des limitations qui peuvent devenir vite génantes. Il existe également des moyens de les contourner, c'est ce que je vais expliquer ici.
2 Configuration Nginx
Pour la configuration de Wordpress sous Nginx, voici un exemple :
/etc/nginx/sites-available/blog.deimos.fr
|
server {
include listen_port.conf;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/deimos.fr/server-unified.crt;
ssl_certificate_key /etc/nginx/ssl/deimos.fr/server.key;
ssl_session_timeout 5m;
server_name blog.deimos.fr;
root /usr/share/nginx/www/deimos.fr/blog;
index index.php;
access_log /var/log/nginx/blog.deimos.fr_access.log;
error_log /var/log/nginx/blog.deimos.fr_error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_cache mycache;
fastcgi_cache_key $request_method$host$request_uri;
fastcgi_cache_valid any 1h;
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_intercept_errors on;
}
# Drop config
include drop.conf;
# BEGIN W3TC Browser Cache
gzip on;
gzip_types text/css application/x-javascript text/x-component text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
location ~ \.(css|js|htc)$ {
expires 31536000s;
add_header Pragma "public";
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
add_header X-Powered-By "W3 Total Cache/0.9.2.4";
}
location ~ \.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$ {
expires 3600s;
add_header Pragma "public";
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
add_header X-Powered-By "W3 Total Cache/0.9.2.4";
}
location ~ \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ {
expires 31536000s;
add_header Pragma "public";
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
add_header X-Powered-By "W3 Total Cache/0.9.2.4";
}
# END W3TC Browser Cache
# BEGIN W3TC Minify core
rewrite ^/wp-content/w3tc/min/w3tc_rewrite_test$ /wp-content/w3tc/min/index.php?w3tc_rewrite_test=1 last;
rewrite ^/wp-content/w3tc/min/(.+\.(css|js))$ /wp-content/w3tc/min/index.php?file=$1 last;
# END W3TC Minify core
}
}
|
3 Utilisation d'un javascript dans un post
Je souhaites ici utiliser un javascript pour éviter que mon adresse mail soit prise en compte par les robots de spammeurs. Nous devons d'abord insérer ceci dans un post :
|
<script type="text/javascript" src="/scripts/updatepage.js"></script><script type="text/javascript">
<!--
|
Puis notre code javascript :
|
emailE=('deimos@' + 'deimos.fr')
document.write('<A href="mailto:' + emailE + '">' + "cliquer ici" + '</a>')
|
Et pour finir, on appelle notre fonction :
|
updatepage();
//--></script>
|
Ce qui nous donne au final avec la totalité du système antispam :
|
<script type="text/javascript" src="/scripts/updatepage.js"></script><script type="text/javascript">
<!--
emailE=('deimos' + 'deimos.fr')
document.write('<A href="mailto:' + emailE + '">' + "cliquer ici" + '</a>')
updatepage();
//--></script>
<span><NOSCRIPT>
<em>Email address protected by JavaScript.<BR>
Please enable JavaScript to contact me.</em>
</NOSCRIPT></span>
|
4 Ajouter des extensions non supportées
J'ai par exemple envie d'activer le format ogv pour mon blog. Et il va me falloir pour ça modifier le fichier wp-includes/functions.php et ajouter ces lignes :
usb_locker.avi
|
...
function wp_ext2type( $ext ) {
$ext2type = apply_filters('ext2type', array(
'audio' => array('aac','ac3','aif','aiff','mp1','mp2','mp3','m3a','m4a','m4b','ogg','ram','wav','wma'),
'video' => array('asf','avi','divx','dv','mov','mpg','mpeg','mp4','mpv','ogm','qt','rm','vob','wmv', 'm4v','ogv'),
'document' => array('doc','docx','pages','odt','rtf','pdf'),
...
if ( !$mimes ) {
// Accepted MIME types are set here as PCRE unless provided.
$mimes = apply_filters( 'upload_mimes', array(
'jpg|jpeg|jpe' => 'image/jpeg',
'gif' => 'image/gif',
'png' => 'image/png',
'bmp' => 'image/bmp',
'tif|tiff' => 'image/tiff',
'ico' => 'image/x-icon',
'asf|asx|wax|wmv|wmx' => 'video/asf',
'avi' => 'video/avi',
'divx' => 'video/divx',
'flv' => 'video/x-flv',
'ogv' => 'video/ogg',
'mov|qt' => 'video/quicktime',
...
|
Il y a donc 2 endroits à modifier : la fonction wp_ext2type et la fonction get_allowed_mime_types.
Il est possible de supprimer automatiquement après un certain nombre de jours défini, les commentaires présents dans la corbeille. Editez votre configuration Wordpress et ajoutez ceci :
wp-config.php
|
[...]
/* Vider la corbeille */
define('EMPTY_TRASH_DAYS', 2 );
[...]
|
Ici, j'ai indiqué que je souhaitais que la corbeille se vide d'elle même tous les 2 jours.
6 FAQ
6.1 Failed to write file to disk
J'ai eu ce petit problème lorsque j'ai voulu uploader des fichiers un peu trop volumineux. Voici les différentes solutions pour régler le problème :
- Vérifier les droits du propriétaire et d'écriture sur le dossier upload
- Regarder dans le fichier /etc/php5/cgi/php.ini et ajuster la taille qui vous convient :
/etc/php5/cgi/php.ini
|
post_max_size = 50M
upload_max_filesize = 50M
|
- Regarder la taille du /tmp sur votre serveur (par exemple mes vservers sont de base à 16M ce qui me posait problème puisque c'est le lieu temporaire ou wordpress stocke ses fichiers)
7 Ressources
http://codex.wordpress.org/Using_Javascript