Maison  >  Article  >  développement back-end  >  Résumé des problèmes rencontrés par thinkphp5 lors du déploiement du serveur

Résumé des problèmes rencontrés par thinkphp5 lors du déploiement du serveur

不言
不言original
2018-08-15 09:48:416272parcourir

Cet article vous apporte un résumé des problèmes rencontrés par thinkphp5 lors du déploiement du serveur. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer, j'espère qu'il vous sera utile.

Le déploiement récent de TP5 a rencontré de nombreux pièges, et certains problèmes surviendront dans divers environnements. Voici comment j'ai enregistré les pièges

Parlons de l'installation en un clic de lnmp la plus simple. package en premier. La version stable 1.5 est utilisée

Commande d'installation:wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1. .5. tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp (installation en un clic + compilation)

Si vous devez installer LNMPA ou LAMP, install Remplacez simplement le paramètre lnmp après ./install.sh par lnmpa ou lamp. Si vous devez modifier les répertoires du site Web et de la base de données, personnaliser les paramètres Nginx, les modules de paramètres PHP, ouvrir Lua, etc., vous devez modifier le fichier lnmp.conf dans le répertoire du package d'installation avant d'exécuter la commande ./install.sh pour. Pour plus de détails, vous pouvez afficher la description des paramètres du fichier lnmp.conf.

Le premier conseil : Prévoyez une base de données cohérente (j'en utilise 3), il suffit de saisir le numéro et d'appuyer sur Entrée

Deuxième invite : saisissez le mot de passe de la base de données

Troisième invite : s'il faut l'activer Innodb, il suffit appuyez sur Entrée ou appuyez sur y pour entrer

Quatrième conseil : Sélectionnez la version PHP (par défaut 5.6) La mienne C'est la version par défaut

Le cinquième conseil : j'ai choisi de ne pas l'installer par défaut (le mien est celui par défaut)

Sixième conseil : Sélectionnez la version Apache (la version par défaut que j'ai choisie)

Le septième conseil : s'il affiche Nginx : OK, MySQL : OK, PHP : OK

et Nginx, MySQL, PHP c'est tout en cours d'exécution et que les ports 80 et 3306 existent. S'il demande l'heure d'installation et que l'installation de lnmp V1.5 est terminée, cela signifie que l'installation a réussi.
Certains systèmes peuvent être bloqués lorsque l'installation de lnmp V1.5 est terminée ! S'il ne se ferme pas automatiquement, vous pouvez appuyer sur Ctrl+c pour quitter.

Une fois l'installation terminée, vous pouvez commencer à l'utiliser. Appuyez sur Ajouter un didacticiel d'hôte virtuel Après avoir ajouté l'hôte virtuel, vous pouvez utiliser le serveur sftp ou ftp pour télécharger le code du site Web et le résoudre. le nom de domaine au VPS ou au serveur sur l'IP, il peut être utilisé une fois la résolution prise d'effet.

Huitième invite : échec de l'installation

Si une invite similaire à l'image ci-dessus apparaît, il y a a Ou plusieurs installations ayant échoué indiquent que l'installation a échoué ! ! Vous devez utiliser winscp ou d'autres outils similaires pour télécharger lnmp-install.log dans le répertoire /root, publier sur le forum de support LNMP et indiquer le nom de distribution de votre système et le numéro de version, 32 bits ou 64 bits, etc., et change lnmp -Le fichier install.log est compressé et téléchargé sur le forum en pièce jointe. Nous trouverons les erreurs dans les journaux et fournirons les solutions correspondantes
Par défaut, LNMP n'installe pas de serveur FTP s'il s'agit d'un serveur FTP. est requis : https://lnmp .org/faq/ftpserver.html

Ajouter un hôte virtuel : l'encapsulation lnmp est très pratique

lnmp vhost add // Ajouter un hôte virtuel

Entrez votre nom de domaine virtuel, le mien est www.tp5api.cn

Ici, il demande s'il faut ajouter plus de noms de domaine et saisir directement le nom de domaine à lier. J'ai juste appuyé sur Entrée et ignoré

.

Si l'annuaire du site web n'existe pas, il sera créé. Vous pouvez également saisir un répertoire existant ou le répertoire à définir (Notez que si vous souhaitez le saisir, il doit s'agir d'un chemin complet, c'est-à-dire un chemin complet commençant par /!!!). Si vous appuyez sur Entrée sans taper, utilisez le répertoire par défaut : /home/wwwroot/domain name

Activez le pseudo-statique, ce qui est bénéfique pour l'optimisation du référencement

Par défaut, il existe discuz, discuzx, discuzx2 (répertoire secondaire Discuz X), wordpress, wp2 (répertoire secondaire WordPress), typecho, typecho2 (répertoire secondaire Typecho), sablog, emlog, dabr, phpwind,, dedecms Couramment utilisé Les fichiers de configuration pseudo-statiques Nginx tels que , drupal, ecshop, shopex, etc. peuvent être utilisés en saisissant directement le nom. S'il s'agit d'un répertoire secondaire, il doit correspondre au nom du répertoire secondaire dans le fichier de configuration.

Activer ou non le journal des erreurs

Si activé, vous devez entrer le nom du journal à définir . Le répertoire de journal par défaut est :/home/wwwlogs/ Le nom de fichier par défaut est : nom de domaine.log Après avoir appuyé sur Entrée pour confirmer, il vous sera demandé si vous souhaitez ajouter une base de données et un utilisateur de base de données.

Si vous souhaitez ajouter, vous devez d'abord vérifier le mot de passe root MySQL (Remarque : la saisie du mot de passe ne sera pas affichée)
Invite Entrez le nom de la base de données : et saisissez ensuite le nom de la base de données à créer, le nom d'utilisateur de la base de données à créer aura le même nom que la base de données, appuyez sur Entrée pour confirmer.
Invite Veuillez saisir le mot de passe de l'utilisateur MySQL Nom de la base de données : saisissez le mot de passe à définir et appuyez sur Entrée pour confirmer.

Si vous avez installé un serveur FTP il vous sera demandé si vous souhaitez ajouter un compte FTP

Si vous devez en ajouter , n'ajoutez pas n et appuyez sur Entrée .

Invite Entrez le nom du compte FTP : puis entrez le nom du compte FTP à créer et appuyez sur Entrée pour confirmer.
Il vous invite à saisir le mot de passe pour le compte FTP Compte FTP : saisissez le mot de passe à définir et appuyez sur Entrée pour confirmer.

Vient ensuite la nouvelle fonction SSL ajoutée dans la version 1.4.

Si vous devez ajouter l'entrée y, n'ajoutez pas l'entrée n et appuyez sur Entrée.
Si vous choisissez d'ajouter SSL, vous serez invité

avec deux options. L'option 1 consiste à utiliser le certificat SSL et la clé que vous avez préparés.

> > Lorsque vous y êtes invité, veuillez saisir le chemin complet du fichier de certificat SSL, saisissez le chemin complet et le nom de fichier du certificat SSL souhaité, puis appuyez sur Entrée pour confirmer.
>> Invite Veuillez saisir le chemin complet du fichier de clé de certificat SSL : saisissez ensuite le chemin complet et le nom du fichier de clé, puis appuyez sur Entrée pour confirmer.

La deuxième option consiste à utiliser un certificat du fournisseur de certificat SSL gratuit Letsencrypt pour générer automatiquement un certificat SSL et d'autres informations.

Vous devez saisir une adresse e-mail et appuyer sur Entrée pour confirmer.

Après avoir demandé Appuyez sur n'importe quelle touche pour commencer à créer un hôte virtuel..., appuyez sur Entrée pour confirmer et l'hôte virtuel sera créé.

Un ajout réussi demandera le nom de domaine, le répertoire, le pseudo-statique, le journal, la base de données, le FTP et d'autres informations connexes ajoutés, comme indiqué ci-dessous :

##Gestion pseudo-statique##

LNMPA ou LAMP peuvent directement utiliser le répertoire racine du site Web pour télécharger .htaccess afin de définir des règles pseudo-statiques (pour des règles spécifiques, vous pouvez vous rendre sur le site officiel de le programme pour trouver Google Baidu), mais sous LNMP, Nginx doit être utilisé avec des règles pseudo-statiques.
Le pseudo-statique peut être ajouté ou supprimé à tout moment. Si vous oubliez ou n'ajoutez pas de pseudo-statique après l'ajout de l'hôte virtuel, vous pouvez ajouter du pseudo-statique en modifiant le fichier de configuration.
Le fichier de configuration de l'hôte virtuel se trouve à l'adresse : /usr/local/nginx/conf/vhost/domain name.conf

Le fichier de règles pseudo-statiques doit être placé sous /usr/local/nginx/ conf/.
Pour modifier le fichier de configuration de l'hôte virtuel, vous pouvez utiliser vi, nano ou winscp. Ces deux derniers outils sont plus faciles pour les novices.

Par exemple, l'hôte virtuel que nous avons ajouté précédemment affichera la première moitié de la configuration comme suit après l'avoir ouvert :

Ajoutez ci-dessous la ligne root /home/wwwroot/www. vpser.net;
include wordpress.conf;
Le wordpress.conf ci-dessus est un fichier pseudo-statique. Si vous avez besoin d'autres fichiers pseudo-statiques, créez-en un vous-même et téléchargez-le sur /usr/local/nginx/. conf/ et include pseudo-static.conf; Après l'ajout et la sauvegarde, exécutez : /etc/init.d/nginx restart Le redémarrage prendra effet. Si une erreur est signalée, il se peut que l'ajout soit effectué. est incorrect ou la règle pseudo-statique est incorrecte.

Les fichiers pseudo-statiques de la version 1.4 et antérieures sont tous dans le répertoire /usr/local/nginx/conf/
Les fichiers pseudo-statiques de la version 1.5 et ultérieures sont dans le répertoire /usr/local Répertoire /nginx/conf/rewrite
Le nom du fichier pseudo-statique suivi de 2 est le pseudo-statique du répertoire secondaire Vous pouvez modifier le nom du répertoire secondaire selon vos propres besoins ou le copier dans un autre. nom et incluez-le dans le fichier de configuration de l’hôte virtuel.

##Télécharger le programme de site Web##

Si vous avez installé le serveur FTP, vous pouvez directement utiliser le client FTP pour vous connecter avec vos informations FTP et télécharger le site Web ou sftp et d'autres logiciels pour télécharger le site Web, définissez une fois que vous avez obtenu les autorisations appropriées, vous pouvez démarrer l'installation.
Après avoir téléchargé le site Web, il est recommandé d'exécuter : chown www:www -R /path/to/dir pour définir les autorisations sur le répertoire du site Web et de remplacer /path/to/dir par le répertoire de votre site Web.
Pour des raisons de sécurité, vous pouvez supprimer les autorisations d'exécution des répertoires tels que les fichiers téléchargés qui ne nécessitent pas l'exécution de PHP. Référence : http://www.vpser.net/security/lnmp-remove-nginx-php-execute. html

##Ajouter un certificat SSL à un hôte virtuel existant pour activer https##

Pour ajouter un site https à un hôte virtuel existant, vous peut exécuter : lnmp ssl La commande add ajoute un certificat SSL. Il existe actuellement deux manières : l'une consiste à utiliser votre propre certificat SSL et l'autre consiste à utiliser le certificat gratuit de Let's Encrypt. Le processus d'ajout est le même que le processus précédent d'ajout d'un hôte virtuel, sauf qu'il y a une étape supplémentaire pour remplir le certificat SSL et la clé ou sélectionner directement Let'sEncrypt pour générer automatiquement le certificat.
Si vous effectuez une mise à niveau de la version 1.* vers la version 1.4 ou modifiez la version, vous devez vous référer aux instructions dans : https://lnmp.org/faq/upgrade1-4.html S'il y a une invite indiquant cela. n'est pas sûr ou le petit cadenas vert n'est pas affiché. Il y a aussi des instructions dans le lien.

##Liste du site Web (hôte virtuel)##

Exécuter : lnmp vhost list

##Supprimer le site Web (hôte virtuel)##

Exécuter : lnmp vhost del

La suppression d'un site Web répertoriera d'abord les hôtes virtuels existants. Suivez les invites pour saisir le nom de domaine de l'hôte virtuel à supprimer et appuyez sur Entrée pour confirmer.

Il s'agit simplement de supprimer le fichier de configuration de l'hôte virtuel. Les fichiers du site Web ne seront pas supprimés et vous devrez les supprimer vous-même.

Sous LNMP 1.2, vous devez exécuter : chattr -i /website directory/.user.ini pour supprimer le répertoire du site Web.

Lorsque vous exécutez chown ou chmod pour agir sur le propriétaire, le groupe ou les autorisations du répertoire du site Web, vous pouvez être invité à chown : changer la propriété de `/home/wwwroot/default/.user.ini' : Opération non autorisé, non Vous devez faire attention. Si vous souffrez de trouble obsessionnel-compulsif, vous pouvez vous référer à l'opération chattr -i précédente.

##Site Web par défaut (hôte virtuel)##

Fichier de configuration du site Web par défaut LNMP : /usr/local/nginx/conf/nginx.conf
LNMPA Fichier de configuration du site Web par défaut : /usr/local/nginx/conf/nginx.conf et /usr/local/apache/conf/extra/httpd-vhosts.conf
Fichier de configuration du site Web par défaut LAMP : /usr/local/apache/ conf/extra/httpd-vhosts.conf

##Paramètres anti-cross-directory##

LNMP 1.1 et les versions précédentes utilisent php.ini, paramètres open_basedir

LNMP 1.2 et les versions supérieures utilisent .user.ini pour empêcher les fonctions inter-répertoires. Ce fichier se trouve dans le répertoire racine du site Web. Vous pouvez modifier la valeur open_basedir dans .user.ini pour définir le. répertoire pour restreindre l’accès ou Supprimer pour supprimer les paramètres anti-cross-directory.

Le fichier .user.ini ne peut pas être modifié directement. Si vous souhaitez le modifier ou le supprimer, vous devez exécuter : chattr -i /website directory/.user.ini
Vous pouvez utiliser la gestion de fichiers winscp. , éditeur vim ou édition nano L'appareil est modifié.
Pour le supprimer, il suffit de rm -f /website directory/.user.ini.
Une fois la modification terminée, exécutez : chattr +i /website directory/.user.ini
.user.ini n'a pas besoin d'être redémarré et prend généralement effet en 5 minutes environ. Vous pouvez également redémarrer php-. fpm et cela prendra effet immédiatement.
Si vous souhaitez changer le répertoire du site Web, vous devez modifier les paramètres anti-cross-directory selon la méthode ci-dessus, sinon une erreur sera définitivement signalée ! !

Sur LNMP 1.4, si vous ne souhaitez pas utiliser le répertoire anti-cross ou modifier le répertoire anti-cross de .user.ini, vous devez également changer l'anti-cross répertoire dans /usr/local/nginx/conf/fastcgi.conf fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; Ajoutez # avant la ligne ou supprimez et modifiez la ligne. Vous devez redémarrer nginx.

Sur LNMP 1.4, vous pouvez également utiliser directement ./remove_open_basedir_restriction.sh dans le répertoire lnmp1.4/tools/ pour le supprimer.
Dans des frameworks tels que Thinkphp, codeigniter, Laravel, etc., le répertoire du site Web est généralement public, mais les programmes publics doivent appeler les fichiers du répertoire parent public à travers les répertoires, car LNMP n'autorise pas les répertoires croisés. accès par défaut, il est donc nécessaire de supprimer les paramètres pour empêcher l'accès entre répertoires. Parfois, ces programmes-cadres génèrent des erreurs 500, qui peuvent également être causées par ce problème.

Le fichier de configuration de l'hôte virtuel Apache correspondant utilisé pour les paramètres anti-cross-répertoire en mode LNMPA ou LAMP version 1.2 ou supérieure (s'il est ajouté par l'outil de gestion lnmp, le fichier est /usr /local/apache/conf/ Définissez le paramètre php_admin_value open_basedir dans vhost/domain name.conf). Si vous n'avez pas besoin de le définir, vous pouvez ajouter # devant pour commenter, ou modifier vous-même les restrictions du répertoire.
Redémarrez Apache pour prendre effet.

##pathinfo settings##

Les paramètres de chaque version de pathinfo sur LNMP sont fondamentalement les mêmes :

Sur lnmp v1.1, modifiez le fichier de configuration de l'hôte virtuel correspondant (/usr/local/nginx/conf/vhost/domain name.conf)
Supprimez le # devant #include pathinfo.conf et set try_files $uri = 404; est commenté en ajoutant # devant.

Pour les versions 1.2, 1.3, 1.4, 1.5 et supérieures, modifiez le fichier de configuration de l'hôte virtuel correspondant (/usr/local/nginx/conf/vhost/domain name.conf)
Incluera l'activation -php.conf ;Remplacer par include activate-php-pathinfo.conf;

Si vous activez pathinfo dans plusieurs versions PHP de la version 1.4, entrez dans le répertoire /usr/local/nginx/conf, copiez une copie de Enable-php-pathinfo.conf et nommez-le Enable-php7.2-pathinfo.conf, copiez toute la ligne fastcgi_pass dans le fichier Enable-php7.2.conf et remplacez la ligne fastcgi_pass dans Enable-php7.2-pathinfo. conf, enregistrez-le, puis appuyez sur le bouton précédent. Modifiez simplement l'hôte virtuel, notamment include-php7.2-pathinfo.conf et ainsi de suite pour les autres versions.

Si vous activez pathinfo pour plusieurs versions de PHP dans la version 1.5, vous pouvez choisir d'activer pathinfo dans lnmp vhost add. S'il existe plusieurs versions de PHP, vous serez invité à choisir. Vous pouvez également modifier directement le virtuel. fichier de configuration de l'hôte pour inclure activate-php. conf ; Remplacer par include-php7.2-pathinfo.conf ; Enregistrer

La modification de pathinfo nécessite le redémarrage de nginx pour prendre effet.

##Gestion de base de données##

En version 1.3 ou supérieure, vous pouvez choisir de créer une base de données lors de l'ajout d'un virtuel hôte, ou vous pouvez le créer séparément. Utilisez lnmp database add et suivez les invites pour ajouter une base de données. Le nom d'utilisateur et le nom de la base de données ajoutés ont le même nom.
Commande d'ajout de base de données : lnmp Database Add
Commande de modification du mot de passe de l'utilisateur de la base de données : lnmp Database Edit
Supprimer la commande de base de données : lnmp Database Del
Liste de toutes les commandes de base de données : lnmp Database List

Ces les informations se trouvent toutes sur https://lnmp.org/faq/lnmp-vhost-add-howto.html(site officiel du lnmp)

Beaucoup de choses sont copiées directement et écrites à mon niveau. mieux que le manuel officiel du site

Si quelqu'un utilise Pagoda tp5 et signale une erreur open_base_dir, il y a une protection de sécurité dans les paramètres du site, désactivez-la simplement (cela m'a pris beaucoup de temps)

Recommandations associées :

Déploiement CentOS 6 Nginx + serveur PHP5

Le projet Thinkphp déployé sur le serveur Linux a signalé une erreur " le modèle n'existe pas" Comment résoudre, thinkphplinux

thinkphp déployé sur Wanwang Cloud Server signale qu'il ne peut pas se connecter à MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn