Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der Probleme, die thinkphp5 während der Serverbereitstellung festgestellt hat

Zusammenfassung der Probleme, die thinkphp5 während der Serverbereitstellung festgestellt hat

不言
不言Original
2018-08-15 09:48:416282Durchsuche

Dieser Artikel bietet Ihnen eine Zusammenfassung der Probleme, auf die thinkphp5 bei der Bereitstellung des Servers stößt. Ich hoffe, dass er für Freunde in Not hilfreich ist.

Bei der jüngsten Bereitstellung von TP5 sind viele Fallstricke aufgetreten, und in verschiedenen Umgebungen werden einige Probleme auftreten. Im Folgenden habe ich die Fallstricke aufgezeichnet.

Lassen Sie uns über die einfachste LNMP-Ein-Klick-Installation sprechen Paket zuerst. Es wird die stabile Version 1.5 verwendet

Installationsbefehl: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 (Ein-Klick-Installation + Kompilierung)

Wenn Sie installieren müssen LNMPA oder LAMP, installieren Ersetzen Sie einfach den Parameter lnmp nach ./install.sh durch lnmpa oder lamp. Wenn Sie die Website- und Datenbankverzeichnisse ändern, Nginx-Parameter, PHP-Parametermodule anpassen, Lua öffnen usw. müssen, müssen Sie die Datei lnmp.conf im Installationspaketverzeichnis ändern, bevor Sie den Befehl ./install.sh ausführen Details finden Sie in der Parameterbeschreibung der Datei lnmp.conf.

Der erste Tipp: Stellen Sie eine konsistente Datenbank bereit (ich verwende 3), geben Sie einfach die Nummer ein und drücken Sie die Eingabetaste

Zweite Eingabeaufforderung: Datenbankpasswort eingeben

Dritte Eingabeaufforderung: Ob Innodb aktiviert werden soll, einfach Drücken Sie die Eingabetaste oder drücken Sie y, um einzugeben

Vierter Tipp: Wählen Sie die PHP-Version (Standard 5.6). Meins Es ist die Standardversion

Der fünfte Tipp: Ich habe mich dafür entschieden, es nicht standardmäßig zu installieren (meins ist die Standardeinstellung)

Sechster Tipp: Wählen Sie die Apache-Version (die von mir gewählte Standardversion)

Der siebte Tipp: Wenn angezeigt wird: Nginx: OK, MySQL: OK, PHP: OK

und Nginx, MySQL, PHP ist alles läuft und die Ports 80 und 3306 vorhanden sind. Wenn die Installationszeit angezeigt wird und die Installation von lnmp V1.5 abgeschlossen ist, bedeutet dies, dass die Installation erfolgreich war.
Einige Systeme bleiben möglicherweise hängen, wenn die Installation von lnmp V1.5 abgeschlossen ist. Wenn es nicht automatisch beendet wird, können Sie zum Beenden Strg + C drücken.

Nachdem die Installation abgeschlossen ist, können Sie mit der Verwendung beginnen Tutorial zum Hinzufügen eines virtuellen Hosts Nach dem Hinzufügen des virtuellen Hosts können Sie den Website-Code hochladen und auflösen Der Domänenname wird an den VPS oder Server übertragen und kann nach Inkrafttreten der Auflösung verwendet werden.

Achte Eingabeaufforderung: Installation fehlgeschlagen

Wenn eine Eingabeaufforderung ähnlich der Abbildung oben angezeigt wird, ist dies der Fall a Oder mehrere fehlgeschlagene Installationen deuten darauf hin, dass die Installation fehlgeschlagen ist! ! Sie müssen winscp oder andere ähnliche Tools verwenden, um lnmp-install.log im Verzeichnis /root herunterzuladen, im LNMP-Supportforum zu posten und den Distributionsnamen und die Versionsnummer Ihres Systems (32-Bit oder 64-Bit usw.) anzugeben lnmp ändern – Das install.log wird komprimiert und als Anhang ins Forum hochgeladen. Wir finden Fehler anhand der Protokolle und stellen entsprechende Lösungen bereit.
Standardmäßig installiert LNMP keinen FTP-Server ist erforderlich: https://lnmp .org/faq/ftpserver.html

Virtuellen Host hinzufügen: lnmp-Kapselung ist sehr praktisch

lnmp vhost add // Virtuellen Host hinzufügen

Geben Sie Ihren virtuellen Domänennamen ein, meinen ist www.tp5api.cn

Hier werden Sie gefragt, ob weitere Domainnamen hinzugefügt werden sollen, und ich habe einfach die Eingabetaste gedrückt und

übersprungen

Wenn das Website-Verzeichnis nicht existiert, wird es erstellt. Sie können auch ein vorhandenes Verzeichnis oder das festzulegende Verzeichnis eingeben (Beachten Sie, dass es sich bei der Eingabe um einen vollständigen Pfad handeln muss, d. h. einen vollständigen Pfad, der mit /!!! beginnt). Wenn Sie die Eingabetaste drücken, ohne etwas einzugeben, verwenden Sie das Standardverzeichnis: /home/wwwroot/domain name

Aktivieren Sie Pseudostatik, was sich positiv auf die SEO-Optimierung auswirkt

Standardmäßig gibt es discuz, discuzx, discuzx2 (Discuz Pseudostatische Nginx-Konfigurationsdateien wie , drupal, ecshop, shopex usw. können durch direkte Eingabe des Namens verwendet werden. Wenn es sich um ein sekundäres Verzeichnis handelt, muss dieser mit dem Namen des sekundären Verzeichnisses in der Konfigurationsdatei übereinstimmen.

Ob das Fehlerprotokoll aktiviert werden soll

Wenn aktiviert, müssen Sie den Namen des festzulegenden Protokolls eingeben . Das Standardprotokollverzeichnis ist :/home/wwwlogs/. Der Standarddateiname lautet: Domänenname.log. Nachdem Sie zur Bestätigung die Eingabetaste gedrückt haben, werden Sie gefragt, ob Sie eine Datenbank und einen Datenbankbenutzer hinzufügen möchten.

Wenn Sie hinzufügen möchten, müssen Sie zuerst das MySQL-Root-Passwort überprüfen (Hinweis: Die Eingabe des Passworts wird nicht angezeigt)
Eingabeaufforderung Geben Sie den Datenbanknamen ein: und Geben Sie dann den Namen der zu erstellenden Datenbank ein. Der zu erstellende Datenbankbenutzername hat denselben Namen wie die Datenbank. Drücken Sie zur Bestätigung die Eingabetaste.
Eingabeaufforderung Bitte geben Sie das Passwort für den MySQL-Benutzer ein. Datenbankname: Geben Sie das festzulegende Passwort ein und drücken Sie zur Bestätigung die Eingabetaste.

Wenn Sie einen FTP-Server installiert haben werden Sie gefragt, ob Sie ein FTP-Konto hinzufügen möchten

Wenn Sie y hinzufügen müssen , fügen Sie nicht n hinzu und drücken Sie die Eingabetaste.

Eingabeaufforderung FTP-Kontonamen eingeben: Geben Sie dann den Namen des zu erstellenden FTP-Kontos ein und drücken Sie zur Bestätigung die Eingabetaste.
Sie werden aufgefordert, das Kennwort für das FTP-Konto einzugeben. FTP-Konto: Geben Sie das festzulegende Kennwort ein und drücken Sie zur Bestätigung die Eingabetaste.

Als nächstes kommt die neue SSL-Funktion, die in 1.4 hinzugefügt wurde

Wenn Sie den Eingang y hinzufügen müssen, fügen Sie den Eingang n nicht hinzu und drücken Sie die Eingabetaste.
Wenn Sie sich für das Hinzufügen von SSL entscheiden, werden Sie aufgefordert

mit zwei Optionen: Option 1 besteht darin, das von Ihnen vorbereitete SSL-Zertifikat und den Schlüssel zu verwenden.

> > Geben Sie bei Aufforderung den vollständigen Pfad und Dateinamen des gewünschten SSL-Zertifikats ein und drücken Sie zur Bestätigung die Eingabetaste.
> > Eingabeaufforderung Bitte geben Sie den vollständigen Pfad zur SSL-Zertifikatsschlüsseldatei ein: Geben Sie dann den vollständigen Pfad und Dateinamen der Schlüsseldatei ein und drücken Sie zur Bestätigung die Eingabetaste.

Option 2 besteht darin, ein Zertifikat des kostenlosen SSL-Zertifikatanbieters Letsencrypt zu verwenden, um automatisch ein SSL-Zertifikat und andere Informationen zu generieren.

Sie müssen eine E-Mail-Adresse eingeben und zur Bestätigung die Eingabetaste drücken.

Nach der Aufforderung Drücken Sie eine beliebige Taste, um die Erstellung eines virtuellen Hosts zu starten... drücken Sie zur Bestätigung die Eingabetaste und der virtuelle Host wird erstellt.

Bei erfolgreicher Hinzufügung werden der hinzugefügte Domänenname, das Verzeichnis, Pseudostatik, Protokoll, Datenbank, FTP und andere zugehörige Informationen angezeigt, wie unten gezeigt:

##pseudostatisches Management##

LNMPA oder LAMP können direkt das Stammverzeichnis der Website verwenden, um .htaccess herunterzuladen und pseudostatische Regeln festzulegen (für spezifische Regeln können Sie auf die offizielle Website von gehen). das Programm, um Google Baidu zu finden), aber unter LNMP muss Nginx pseudostatische Regeln verwenden.
Pseudostatisch kann jederzeit hinzugefügt oder gelöscht werden. Wenn Sie nach dem Hinzufügen des virtuellen Hosts vergessen oder nicht hinzufügen, können Sie Pseudostatik hinzufügen, indem Sie die Konfigurationsdatei ändern.
Die Konfigurationsdatei des virtuellen Hosts befindet sich unter:/usr/local/nginx/conf/vhost/domain name.conf

Die pseudostatische Regeldatei muss unter /usr/local/nginx/ abgelegt werden. conf/.
Um die Konfigurationsdatei des virtuellen Hosts zu bearbeiten, können Sie vi, nano oder winscp verwenden. Die beiden letztgenannten Tools sind für Anfänger einfacher.

Nachdem Sie beispielsweise den zuvor hinzugefügten virtuellen Host geöffnet haben, wird die erste Hälfte der Konfiguration wie folgt angezeigt:

Fügen Sie unterhalb der Zeile root /home/wwwroot/www hinzu .vpser.net;
include wordpress.conf;
Die oben genannte wordpress.conf ist eine pseudostatische Datei. Wenn Sie andere pseudostatische Dateien benötigen, erstellen Sie selbst eine und laden Sie sie nach /usr/local/nginx hoch /conf/ und include pseudo-static.conf; Führen Sie nach dem Hinzufügen und Speichern Folgendes aus: /etc/init.d/nginx restart Der Neustart wird wirksam. Wenn ein Fehler gemeldet wird, kann es sein, dass Die Addition ist falsch oder die pseudostatische Regel ist falsch.

Die pseudostatischen Dateien von 1.4 und früheren Versionen befinden sich alle im Verzeichnis /usr/local/nginx/conf/
Die pseudostatischen Dateien von 1.5 und späteren Versionen befinden sich im Verzeichnis /usr/local /nginx/conf/rewrite-Verzeichnis
Der Name der pseudostatischen Datei mit 2 dahinter ist der pseudostatische Name des sekundären Verzeichnisses. Sie können den Namen des sekundären Verzeichnisses entsprechend Ihren eigenen Anforderungen ändern oder dorthin kopieren Geben Sie einen anderen Namen ein und fügen Sie ihn in die Konfigurationsdatei des virtuellen Hosts ein.

##Website-Programm hochladen##

Wenn Sie den FTP-Server installiert haben, können Sie sich direkt über den FTP-Client mit Ihren FTP-Informationen anmelden und die Website oder SFTP hochladen und andere Software zum Hochladen der Website festlegen. Sobald Sie die entsprechenden Berechtigungen erhalten haben, können Sie mit der Installation beginnen.
Nach dem Hochladen der Website wird empfohlen, Folgendes auszuführen: chown www:www -R /path/to/dir, um Berechtigungen für das Website-Verzeichnis festzulegen, und /path/to/dir durch Ihr Website-Verzeichnis zu ersetzen.
Aus Sicherheitsgründen können Sie Ausführungsberechtigungen aus Verzeichnissen wie hochgeladenen Dateien entfernen, für deren Ausführung PHP nicht erforderlich ist. Referenz: http://www.vpser.net/security/lnmp-remove-nginx-php-execute. html

##Fügen Sie ein SSL-Zertifikat zu einem vorhandenen virtuellen Host hinzu, um https zu aktivieren.##

Um eine https-Site zu einem vorhandenen virtuellen Host hinzuzufügen, müssen Sie kann Folgendes ausführen: lnmp ssl Der Befehl add fügt ein SSL-Zertifikat hinzu. Derzeit gibt es zwei Möglichkeiten: Eine besteht darin, Ihr eigenes SSL-Zertifikat zu verwenden, und die andere darin, das kostenlose Zertifikat von Let's Encrypt zu verwenden. Der Vorgang des Hinzufügens ist derselbe wie der vorherige Vorgang des Hinzufügens eines virtuellen Hosts, mit der Ausnahme, dass ein zusätzlicher Schritt erforderlich ist, um das SSL-Zertifikat und den Schlüssel einzugeben oder direkt Let'sEncrypt auszuwählen, um das Zertifikat automatisch zu generieren.
Wenn Sie von Version 1.* auf 1.4 aktualisieren oder die Version ändern, müssen Sie die Anweisungen unter https://lnmp.org/faq/upgrade1-4.html befolgen unsicher ist oder das kleine grüne Schloss nicht angezeigt wird, gibt es auch eine Anleitung im Link.

##Website auflisten (virtueller Host)##

Ausführen: lnmp vhost list

##Website löschen (virtueller Host)##

Ausführen: lnmp vhost del

Beim Löschen einer Website werden zunächst die vorhandenen virtuellen Hosts aufgelistet. Befolgen Sie die Anweisungen, um den Domänennamen des zu löschenden virtuellen Hosts einzugeben, und drücken Sie zur Bestätigung die Eingabetaste.

Dies dient lediglich dem Löschen der virtuellen Host-Konfigurationsdatei. Die Website-Dateien werden nicht gelöscht und Sie müssen sie selbst löschen.

Unter LNMP 1.2 müssen Sie Folgendes ausführen: chattr -i /websitedirectory/.user.ini, um das Websiteverzeichnis zu löschen.

Wenn Sie chown oder chmod ausführen, um den Besitzer, die Gruppe oder die Berechtigungen des Website-Verzeichnisses zu bearbeiten, werden Sie möglicherweise aufgefordert, chown: den Besitzer von „/home/wwwroot/default/.user.ini“ zu ändern: Vorgang nicht erlaubt, nein Sie müssen aufpassen, wenn Sie an einer Zwangsstörung leiden, können Sie sich auf die vorherige chattr -i-Operation beziehen.

##Standardwebsite (virtueller Host)##

LNMP-Standardwebsite-Konfigurationsdatei: /usr/local/nginx/conf/nginx.conf
LNMPA Standard-Website-Konfigurationsdatei: /usr/local/nginx/conf/nginx.conf und /usr/local/apache/conf/extra/httpd-vhosts.conf
LAMP-Standard-Website-Konfigurationsdatei: /usr/local/apache/ conf/extra/httpd-vhosts.conf

##Anti-verzeichnisübergreifende Einstellungen##

LNMP 1.1 und frühere Versionen verwenden php.ini, open_basedir-Einstellungen

LNMP 1.2 und höhere Versionen verwenden .user.ini, um verzeichnisübergreifende Funktionen zu verhindern. Diese Datei befindet sich im Stammverzeichnis der Website. Sie können den open_basedir-Wert in .user.ini ändern Verzeichnis, um den Zugriff einzuschränken, oder Löschen, um die Anti-Cross-Directory-Einstellungen zu entfernen.

.user.ini-Datei kann nicht direkt geändert oder gelöscht werden, müssen Sie Folgendes ausführen: chattr -i /websitedirectory/.user.ini
Sie können die Winscp-Dateiverwaltung verwenden , VIM-Editor oder Nano-Bearbeitung Das Gerät wird geändert.
Um es zu löschen, genügt rm -f /websitedirectory/.user.ini.
Nachdem die Änderung abgeschlossen ist, führen Sie Folgendes aus: chattr +i /websitedirectory/.user.ini
.user.ini muss nicht neu gestartet werden und wird im Allgemeinen nach etwa 5 Minuten wirksam. Sie können PHP auch neu starten. fpm und es wird sofort wirksam.
Wenn Sie das Website-Verzeichnis ändern möchten, müssen Sie die Anti-Cross-Directory-Einstellungen gemäß der oben genannten Methode ändern, andernfalls wird definitiv ein Fehler gemeldet! !

Wenn Sie unter LNMP 1.4 das Anti-Cross-Verzeichnis nicht verwenden oder das Anti-Cross-Verzeichnis von .user.ini nicht ändern möchten, müssen Sie auch das Anti-Cross ändern Verzeichnis in /usr/local/nginx/conf/fastcgi.conf fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; Fügen Sie # vor der Zeile hinzu oder löschen und ändern Sie die Zeile. Sie müssen nginx neu starten.

Unter LNMP 1.4 können Sie ./remove_open_basedir_restriction.sh im Verzeichnis lnmp1.4/tools/ auch direkt verwenden, um es zu entfernen.
In Frameworks wie Thinkphp, Codeigniter, Laravel usw. ist das Website-Verzeichnis im Allgemeinen öffentlich, aber öffentliche Programme müssen Dateien im öffentlichen übergeordneten Verzeichnis verzeichnisübergreifend aufrufen, da LNMP keine verzeichnisübergreifenden Verzeichnisse zulässt Daher ist es notwendig, die Einstellungen zu entfernen, um einen verzeichnisübergreifenden Zugriff zu verhindern. Manchmal verursachen diese Rahmenprogramme 500-Fehler, die ebenfalls durch dieses Problem verursacht werden können.

Die entsprechende Konfigurationsdatei für den virtuellen Apache-Host, die für Anti-Cross-Directory-Einstellungen im LNMPA- oder LAMP-Modus Version 1.2 oder höher verwendet wird (falls vom lnmp-Verwaltungstool hinzugefügt, lautet die Datei /usr /local/apache/conf/ Legen Sie den Parameter php_admin_value open_basedir in vhost/domain name.conf fest. Wenn Sie es nicht festlegen müssen, können Sie dem Kommentar ein # voranstellen oder die Verzeichniseinschränkungen selbst ändern.
Starten Sie Apache neu, damit es wirksam wird.

##pathinfo-Einstellungen##

Die Einstellungen jeder Version von pathinfo auf LNMP sind grundsätzlich gleich:

Ändern Sie auf lnmp v1.1 die Konfigurationsdatei des entsprechenden virtuellen Hosts (/usr/local/nginx/conf/vhost/domain name.conf)
Entfernen Sie das # vor #include pathinfo.conf und set try_files $uri = 404; wird auskommentiert, indem man # davor einfügt.

Ändern Sie für die Versionen 1.2, 1.3, 1.4, 1.5 und höher die Konfigurationsdatei des entsprechenden virtuellen Hosts (/usr/local/nginx/conf/vhost/domain name.conf)
Enthält die Aktivierung -php.conf ;Ersetzen durch include enable-php-pathinfo.conf;

Wenn Sie Pathinfo in mehreren PHP-Versionen von Version 1.4 aktivieren, geben Sie das Verzeichnis /usr/local/nginx/conf ein und kopieren Sie eine Kopie davon Aktivieren Sie die Datei „enable-php-pathinfo.conf“ und nennen Sie sie „enable-php7.2-pathinfo.conf“, kopieren Sie die gesamte Zeile „fastcgi_pass“ in die Datei „enable-php7.2.conf“ und ersetzen Sie die Zeile „fastcgi_pass“ in der Datei „enable-php7.2-pathinfo“. conf-Datei, speichern Sie sie und drücken Sie dann die vorherige Schaltfläche. Ändern Sie einfach den virtuellen Host, einschließlich enable-php7.2-pathinfo.conf usw. für andere Versionen.

Wenn Sie Pathinfo für mehrere PHP-Versionen in Version 1.5 aktivieren, können Sie Pathinfo in lnmp vhost add aktivieren. Wenn mehrere PHP-Versionen vorhanden sind, werden Sie zur Auswahl aufgefordert. Sie können die virtuelle Version auch direkt ändern Host-Konfigurationsdatei zum Einbinden von „enable-php.conf“; Ersetzen durch „enable-php7.2-pathinfo.conf“. Speichern

Das Ändern von pathinfo erfordert einen Neustart von nginx.

##Datenbankverwaltung##

In Version 1.3 oder höher können Sie beim Hinzufügen einer virtuellen Datenbank die Erstellung einer Datenbank auswählen Host, oder Sie können es separat erstellen. Verwenden Sie lnmp Database Add und befolgen Sie die Anweisungen zum Hinzufügen einer Datenbank. Der hinzugefügte Benutzername und der Datenbankname haben denselben Namen.
Befehl „Datenbank hinzufügen“: lnmp-Datenbank hinzufügen
Befehl „Datenbankbenutzerkennwort bearbeiten“: lnmp-Datenbank bearbeiten
Befehl „Datenbank löschen“: lnmp-Datenbank del
Alle Datenbankbefehle auflisten: lnmp-Datenbankliste

Diese Informationen finden Sie alle unter https://lnmp.org/faq/lnmp-vhost-add-howto.html (offizielle Website von lnmp)

Viele Dinge werden direkt kopiert und auf mein Niveau geschrieben. Das wird nicht der Fall sein besser als das offizielle Website-Handbuch

Wenn jemand Pagoda tp5 verwendet und einen Fehler open_base_dir meldet, gibt es einen Sicherheitsschutz in den Website-Einstellungen, schalten Sie ihn einfach aus (es hat lange gedauert)

Verwandte Empfehlungen:

CentOS 6 Deployment Nginx + PHP5 Server

Das auf dem Linux-Server bereitgestellte Thinkphp-Projekt hat einen Fehler gemeldet „ Vorlage existiert nicht“ Lösung: thinkphplinux

thinkphp, das auf dem Wanwang Cloud Server bereitgestellt wird, meldet, dass keine Verbindung zu MySQL hergestellt werden kann

Das obige ist der detaillierte Inhalt vonZusammenfassung der Probleme, die thinkphp5 während der Serverbereitstellung festgestellt hat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn