web-dev-qa-db-fra.com

mod_rewrite ne fonctionne pas sur ma configuration Apache

Je ne suis pas sûr qu'il s'agisse d'un webmaster ou d'une question WordPress, c'est un peu moitié-moitié, désolé si je poste au mauvais endroit.

Sans utiliser Multi-Site ni installer de nouveaux systèmes de gestion de contenu WordPress dans des domaines de second niveau, quel est le meilleur moyen de faire fonctionner plusieurs installations WordPress sur mon VPS (exécutant CentOS 6 sous Linux avec WHM et cPanel)?

Cela fonctionne actuellement, mais uniquement en définissant l'option permalinks sur le paramètre par défaut, de sorte que les URL ne sont pas conviviales. Je suis tombé sur quelque chose appelé WPSiteStack , bien que je préfère vraiment ne pas suivre cette voie.

Longue histoire courte, j'ai besoin de ce qui suit:

  • Installation séparée afin qu'une mise à jour de noyau/thème/plugin n'affecte pas tous les sites et augmente la sécurité de tous les sites;
  • 'Pretty' permaliens;
  • Chaque installation WordPress doit figurer à la racine de son propre domaine pour que je puisse mesurer avec précision les quotas de mes clients.

Il convient également de noter que certaines fonctions de chaque installation utilisent les variables $ _SERVER ['DOCUMENT_ROOT'] et $ _SERVER ['Host'].

J'ai déjà édité les fichiers httpd-vhosts.conf, httpd.conf et .htaccess mais cela n'a apporté aucune modification.

Donc, des idées ce que je manque ou fais mal? Toute aide est très appréciée.

UPDATE: mod_rewrite est définitivement inclus et existe depuis bien longtemps, même s'il ne fonctionne pas avec les types de publication personnalisés sur une installation et ne fonctionne pas du tout sur toutes les autres installations. Donc /% année% /% monthnum% /% jour% /% postname%/ne fonctionne que pour les types de publication standard 'post' et 'page' sur une installation tandis que sur d'autres installations, qui n'utilisent pas de types de publication personnalisés, c'est ne fonctionnant pas du tout, seul le paramètre de permalien par défaut fonctionne pour eux.

1
Ben

Ceci est assez facile à configurer à l’aide de configurations d’hôte virtuel dans Apache ou Nginx (selon le serveur Web que vous souhaitez exécuter sur votre ordinateur).

Voici l'essentiel des choses:

1. Chaque installation aura une base de données distincte et un utilisateur de base de données distinct (pour la sécurité).

Je les configure manuellement dans MySQL via la ligne de commande, mais si vous avez phpMyAdmin installé, vous pouvez l’utiliser à la place.

2. Chaque installation sera dans son propre répertoire. Cela permet de tout séparer (noyau, thèmes, plugins) à 100%.

Par exemple, vous pouvez configurer plusieurs annuaires pour chaque domaine. Supposons que vous avez myawesomesite.com et mybizsite.com, vous devez configurer:

  • /var/www/html/myawesomesite
  • /var/www/html/mybizsite

Chacun de ces répertoires contient une installation distincte de WordPress. Séparez les fichiers, séparez wp-config.php, séparez tout.

3. Utilisez des hôtes virtuels pour écouter les demandes de chaque domaine.

Les installations par défaut d'Apache et de Nginx écoutent toutes les demandes adressées à une adresse IP et dirigent (généralement) tout le trafic sur /var/www/html. Vous pouvez remplacer ce comportement en créant des hôtes virtuels dans votre configuration pour mapper des demandes d'hôtes spécifiques à des dossiers spécifiques.

Par exemple, toutes les demandes adressées à votre adresse IP pour myawesomesite.com seraient traitées à partir de /var/www/html/myawesomesite et toutes les demandes à mybizsite.com seraient plutôt servies à partir de /var/www/html/mybizsite.

Garder les choses séparées comme cela vous permet également de configurer de jolis liens permanents, car les deux sites utilisent des fichiers .htaccess différents (avec Apache). Donc, vous pourriez, essentiellement, avoir différentes structures de permalien pour chaque site.

La configuration d'un hôte virtuel est assez simple et bien documentée. Il existe des tutoriels pour à peu près toutes les configurations. Pour Apache, vous souhaitez rechercher des hôtes virtuels nommés .

Pour en créer un dans Nginx, vous devez créer un server_name dans votre fichier de configuration. J'utilise Nginx pour tout mon hébergement, et j'ai écrit un tutoriel sur la construction de mon serveur CentOS . J'espère que ça aide!

1
EAMann