Certains systèmes de gestion de contenu ne fonctionnent pas avec les combinaisons nginx et php-fpm et nécessitent un serveur Web Apache avec le module php. La raison la plus courante est la nécessité d'utiliser le module de réécriture pour que le site fonctionne.
Installez les composants de base avec une seule commande. Les dépendances seront installées automatiquement.
# aptitude install apache2-mpm-itk libapache2-mod-php5 php5-curl php5-mysqlnd php5-gd
Contenu de l'article:
- Настраиваем apache 1 Configurez apache
- Создание виртуального хоста 2 Créer un hôte virtuel
- Тестирование настроенной связки 3 Test d'un bundle personnalisé
Configurer Apache
Commencez par activer mod_rewrite. Il en aura certainement besoin si votre site utilise la technologie CNC.
# a2enmod rewrite
Il ne sera pas nécessaire d’inclure mod_php, car lors de l’installation, il sera automatiquement activé.
Je recommande également de désactiver les modules suivants si vous n'en avez pas besoin:
# a2dismod -f autoindex déflate le statut de setenvif
Cela vous permettra de réduire la consommation de mémoire.
Ouvrez le fichier /etc/apache2/conf-available/charset.conf et décommentez la ligne suivante:
AddDefaultCharset UTF-8
Cette directive indique que le codage par défaut sera UTF-8. Si vos sites utilisent un codage différent, par exemple CP-1251, vous devez le spécifier directement dans les paramètres de l’hôte virtuel.
Enregistrez les modifications.
Ouvrez le fichier /etc/apache2/conf-available/security.conf et convertissez la ligne ServerTokens OS en ServerTokens Prod . Cela cachera la version d'apache pour les clients.
ServerSignature On chaîne ServerSignature On en ServerSignature Off .
Enregistrez les modifications.
Ouvrez le fichier /etc/apache2/apache2.conf pour le modifier et recherchez le paramètre KeepAlive On . Si, après la configuration d'Apache, vous installez nginx et que vous en fassiez un proxy, ce paramètre doit alors être converti en KeepAlive Off , car cette fonction (maintien de la connexion avec le client) sera exécutée par nginx. Si vous envisagez d'utiliser Apache comme serveur Web principal, cette fonctionnalité doit être configurée.
MaxKeepAliveRequests - nombre maximal de demandes de maintenance d'une connexion permanente. Pour de meilleures performances, il est recommandé de définir une valeur élevée. Pour commencer, la valeur par défaut est 100.
KeepAliveTimeout est le temps en secondes pour attendre la prochaine demande du même client.
Enregistrez les modifications et redémarrez apache.
Ouvrez le fichier /etc/apache2/mods-available/mpm_prefork.conf.
Les paramètres de ce fichier doivent être spécifiés en fonction du trafic sur le site et des ressources du serveur. Pour commencer, essayez de démarrer le site avec une configuration minimale et regardez-le fonctionner. S'il s'avère que les ressources sont insuffisantes, augmentez-les.
Donnez des valeurs par défaut à cette vue:
StartServers 2 MinSpareServers 2 MaxSpareServers 6 MaxRequestWorkers 32 MaxConnectionsPerChild 0
StartServers : nombre de processus serveur enfants créés au démarrage.
MinSpareServers - nombre minimal de processus inactifs.
MaxSpareServers - nombre maximal de processus inactifs.
MaxRequestWorkers - le nombre maximal de connexions qui seront traitées simultanément.
MaxConnectionsPerChild - le nombre maximal de connexions, après traitement, le processus enfant sera terminé. Peut être utile pour traiter les fuites de mémoire.
Enregistrez également les modifications et redémarrez apache: service apache2 restart .
Création d'un hôte virtuel
Un hôte virtuel est un groupe de paramètres de configuration pour un site spécifique. Il comprend un domaine accepté, un administrateur de messagerie, des chemins d'accès aux fichiers journaux, la connexion de gestionnaires php, etc.
J'aime héberger les configurations d'hôte virtuel dans un fichier - apache2.conf. Si vous devez remplacer massivement une valeur pour tous les sites, vous n'avez pas besoin d'ouvrir tous les fichiers de configuration des hôtes virtuels.
Tout d'abord, désactivez le site par défaut.
# a2dissite 000-default
À la fin du fichier /etc/apache2/apache2.conf, écrivez la directive suivante:
<VirtualHost *: 80> </ Virtualhost>
Cette directive regroupe tous les paramètres du site. Qu'elle est un hôte virtuel. Les paramètres suivants sont écrits dans cette directive.
ServerName - votre domaine sans www. (Par exemple, exemple.com.)
ServerAlias - domaine avec www (www.example.com)
DocumentRoot - le répertoire où se trouvent les fichiers de votre site. Par exemple, / var / www /.
ServerAdmin - email de l'administrateur du site.
ErrorLog - emplacement du fichier journal des erreurs. En règle générale, ils se trouvent dans le répertoire / var / log / apache2 /. L'alias $ {APACHE_LOG_DIR} est utilisé pour cela. Exemple:
ErrorLog $ {APACHE_LOG_DIR} / example.com .error.log LogLevel warn . Nous ne changeons rien, nous l'enregistrons comme ceci. Définit le niveau de consignation des erreurs.
CustomLog - Emplacement et type du site access-log. Le type par défaut est combiné. Bien qu'il existe d'autres types. Exemple:
CustomLog $ {APACHE_LOG_DIR} / example.com.access.log combinés Dans les deux exemples, exemple.com est remplacé par votre domaine sans www.
Nous ajoutons des paramètres pour mpm-itk, car nous avons installé ce module particulier. Qu'est-ce qu'il donne? Vous permet de gérer les scripts php pour le compte de l'utilisateur qui possède le site.
<IfModule mpm_itk_module> Groupe d'utilisateurs AssignUserId </ IfModule>
Ici, vous devez remplacer utilisateur par le nom d' utilisateur et groupe par le nom du groupe dans le dossier de départ duquel se trouvent les sites.
Nous définissons les paramètres pour les répertoires.
<Répertoire /> Options + SuivreSymLiens AllowOverride None Exiger tout accordé </ Répertoire> <Répertoire / var / www> Options -Indexes + FollowSymLinks AllowOverride All Ordre permettre, refuser permettre à tous </ Répertoire>
Remplacez le répertoire / var / www par celui où se trouvent vos sites.
Nous connectons le gestionnaire php-scripts.
<IfModule mod_php5.c> Moteur php_admin_flag sur php_admin_value open_basedir "/ var / www: / tmp / sessions: / tmp / upload_tmp" php_admin_value upload_tmp_dir / tmp / sessions php_admin_value session.safe_path / tmp / upload_tmp php_admin_value sendmail_path "/ usr / sbin / sendmail -t -i -fmail@example.com" </ IfModule>
open_basedir tant que valeur, nous open_basedir les répertoires deux points auxquels php aura accès: un répertoire avec un site, un répertoire pour stocker les fichiers de session, un répertoire pour le téléchargement de fichiers temporaires.
upload_tmp_dir - répertoire de stockage des fichiers temporaires. Lorsque vous téléchargez une image (ou autre chose) sur le site, le fichier téléchargé est d'abord placé dans ce répertoire, puis à l'emplacement final.
session.safe_path - répertoire de stockage des sessions.
Pour des raisons de sécurité, ces deux répertoires ne doivent pas être conservés dans un lieu public. Créez-les dans le répertoire de base de l'utilisateur où se trouvent vos sites. Autorisez leur accès uniquement à cet utilisateur (droits 0750).
sendmail_path - chemin et paramètres de sendmail_path . En règle générale, sendmail se trouve dans le répertoire / usr / sbin. Après le paramètre -f, vous devez spécifier un email, sans le séparer par un espace.
Enregistrez le fichier de configuration apache2.conf, redémarrez apache:
service apache2 redémarrer
Test de bundles personnalisés
Dans le répertoire du site, créez un fichier index.php. Écrivez le code dedans:
<? php phpinfo (); ?>
Ensuite, ouvrez votre site Web dans un navigateur et voyez si les informations php sont affichées. Si oui, le serveur est configuré avec succès et vous pouvez placer le site dans le répertoire qui lui est destiné.
Sinon, vous devriez analyser les journaux des erreurs, vérifier les paramètres dans les fichiers de configuration.

Merci Je m'appelle Sergey. 65 ans. uch. le docteur. SPb. Vous avez un hébergement VDS. Sur ce site, le site a été créé: egmontgroup.ru
Selon votre article: php7. Aussi postgreSQL 9.4 et Apache 2.4
Fondamentalement normal. Sur l'ordinateur local Debian 8.6 jessey (sur VDS, c'est pareil). J'ai installé tout de même. Mais déjà des jours et des nuits je ne peux pas commencer Apache. Dans les journaux, ce n'est pas clair pour moi, rien ne s'est passé sur le VDS.
Et que dire de l'hébergement VDS (il n'y a que ssh (j'utilise putty).) Copiez quelques configs, et en effet. ?
Cordialement Merci Mon email est sergeygsd@yandex.ru
J'ai aussi aimé changer de travail entre les versions php.
Les journaux ne sont que des fichiers - copiez-les n’importe où sans problèmes