[LINUX] Die Geschichte von PHP, die in der Entwicklungsumgebung in Ordnung war, in der Produktionsumgebung jedoch fehlerhaft LEVEL1 ~ 3 + 1

Es wird als Produktionsumgebung bezeichnet, ist jedoch normalerweise eine Testumgebung. Bitte schauen Sie viel.

LEVEL1 Fall

Gibt es nicht etwas für diejenigen, die mit Windows entwickeln? In der Entwicklungsumgebung (Windows) wird die Groß- und Kleinschreibung nicht berücksichtigt, und es wird Linux verwendet.

Der größte Schaden, den ich erlitten habe, war, als der Kunde mir die Bilder zur Erstellung der Website schickte. Dies liegt daran, dass nur wenige Dateien mit oberen Erweiterungen gemischt sind.

image.png

Hast du verstanden ...

Ich habe es nicht bemerkt, weil das Bild unter der Zustimmung von [Code]. [Erweiterung] gesendet wurde. Ich habe es kurz vor dem Einfügen in die Produktionsumgebung bemerkt, aber es war sehr gefährlich.

Darüber hinaus sollte beachtet werden

if (file_exists($imagePath . $fileName '.jpg')) {

} elseif (file_exists($imagePath . $fileName '.JPG')) {

}

Die Schulden, die ich im zweiten Jahr geschrieben habe, sind immer noch aktiv.

LEVEL2 SSL Wenn Sie eine WEB-Entwicklung durchführen, können Sie sich ein wenig treffen.

<iframe name="iframe" src="http://example.com/aaaaa/bbbb/" width="100%" scrolling="no" align="top" frameborder="0"></iframe>

Ein Vorfall ist aufgetreten. Sie können http iframes nicht von der https-Site laden.

Ich verwende häufig iframe, wenn ich anfordere "Ich werde den Quellcode verwalten, aber ich möchte mit einem Teil davon aus meinem Unternehmen herumspielen!". Wenn die Domain, in die die Quelle des Clients hochgeladen wird, SSL nicht unterstützt, ist dies lächerlich. Es wird kein geben.

Der Inhalt des Rahmens ist rein weiß.

Es wäre schön gewesen, wenn die Entwicklungsumgebung nicht seitlich gelegen und mit SSL kompatibel gewesen wäre, aber diesmal wurde sie zum ersten Mal in der Testumgebung entdeckt.

Es wird einige Zeit dauern, bis die andere Partei SSL unterstützt, und als Ergebnis der Diskussionen zwischen den beiden Parteien haben wir beschlossen, die Produktion mit der Power-Technik fortzusetzen, "den Inhalt im Frame vorerst hart zu codieren". (Unheimlich)

Derzeit werden nur Inhalte wie Javascript und Iframe blockiert und Bilder usw. werden ordnungsgemäß angezeigt, da eine sichere Kommunikation nicht garantiert ist. Chrome scheint jedoch Bilder ab 2020 nacheinander zu blockieren. Seien Sie also vorsichtig. ist.

Erweiterungsmodul LEVEL3

Seien Sie vorsichtig mit Funktionen, die Sie normalerweise nicht verwenden. Zusammenfassend hatte ich einen Fehler bei der Verwendung einer Funktion, die nur nach der Installation des Erweiterungsmoduls verwendet werden kann, was keine Standardfunktion von PHP ist.

Zu diesem Zeitpunkt überprüfte ich den Quellcode eines Junioringenieurs, nicht von mir.

//Der Rest der Division des Betrags durch 100 Millionen
$surplus = bcmod($price, '100000000');

(Ich habe diesen Kerl zum ersten Mal gesehen ...% ist gut ...?) Während ich nachdachte, dachte ich, dass es nicht falsch ist und dass es keine schlechte Sache ist, einen neuen Schreibstil anzunehmen, also gab ich ihn der Rezension.

Als ich es jedoch der Testumgebung gab ... image.png Wütend! ??

... Lassen Sie uns, wie ich zu Beginn schrieb, die Funktionen, die wir zum ersten Mal sehen, sorgfältig untersuchen.

LEVEL4 (Bonus)

Es ist nicht PHP. Eine Geschichte über DB.

Ich werde nicht auf Details eingehen, aber hier sind einige der Wände, auf die ich in der Vergangenheit gestoßen bin. ・ Große Menge an Dead Lock ⇒ Wir haben nicht in Betracht gezogen, von anderen Diensten als dem erstellten Prozess zu schreiben.

-Replikationsverzögerung ⇒ Master und Slave wurden in der Testumgebung nicht richtig vorbereitet.

・ Die Verarbeitung ist mehr als fünfmal langsamer als erwartet ⇒ Beim Umgang mit umfangreichen Daten gab es einen erheblichen Unterschied in der Gesamtverarbeitungszeit, nur weil der Abstand zwischen dem WEB-Server und dem DB-Server groß war. Außerdem habe ich es nicht in einer Umgebung getestet, in der es von einem externen Server bereitgestellt und mit Daten verarbeitet wurde.

etc···

Zusammenfassung (oder Lektion)

・ Lassen Sie uns die Produktionsumgebung und die Entwicklungsumgebung so nah wie möglich bringen. ・ Wenn Sie etwas tun, was Sie vorher noch nicht getan haben, seien Sie sehr vorsichtig.

Recommended Posts

Die Geschichte von PHP, die in der Entwicklungsumgebung in Ordnung war, in der Produktionsumgebung jedoch fehlerhaft LEVEL1 ~ 3 + 1
Eine Geschichte, die das Debuggen von Modellen in der Django + SQLAlchemy-Umgebung einfacher macht
Die Geschichte, dass die Homebrew-Umgebung bei der Installation von Anaconda umgehauen wurde
Eine Geschichte über einen Erstellungsfehler in einer gemeinsam genutzten Bibliothek, die auf libusb verweist
Eine Geschichte über das Erstellen eines Programms, mit dem die Anzahl der Instagram-Follower in einer Woche von 0 auf 700 erhöht wird
[Memorandum] Eine Geschichte über das Ausprobieren des OpenCV-Tutorials (Gesichtserkennung) in einer Windows-Umgebung
[Entwicklungsumgebung] So erstellen Sie einen Datensatz in der Nähe der Produktionsdatenbank
Informationen zu der von Ihnen verwendeten Entwicklungsumgebung
Die Geschichte, dass XGBoost endlich installiert wurde
Flucht aus Pythons virtueller Umgebung ~ Eine Geschichte über das Fangen in einer von mir erstellten virtuellen Umgebung ~
Verwenden Sie den neuesten Pip in einer virtuellen Umgebung
Über die Angelegenheit, die über Stichprobenfehler besorgt war
Legen Sie eine feste IP in der Linux-Umgebung fest
Eine Geschichte über das Ausführen von Python auf PHP auf Heroku
Denken Sie daran, eine Python 3-Umgebung in einer Mac-Umgebung zu erstellen
Erstellen Sie mit Eclipse eine Minecraft-Plug-Entwicklungsumgebung
Die Geschichte, die zur Installation von Pip passt
Eine Geschichte, die praktisch war, als ich versuchte, das Python-IP-Adressmodul zu verwenden
Beachten Sie, dass ich süchtig nach dem npm-Skript war, das in der Überprüfungsumgebung nicht übergeben wurde
CodePicnic, das eine Umgebung [Entwicklung | Ausführen | Tutorial | Demo] erstellen kann, die im Browser ausgeführt wird
Eine Geschichte über einen Fehler, wenn PyInstaller in einem Programm verwendet wird, das googleapiclient verwendet
Eine Geschichte über den Versuch, Linter mitten in einem Python (Flask) -Projekt vorzustellen
Sie müssen vorsichtig mit den Befehlen sein, die Sie jeden Tag in der Produktionsumgebung verwenden.