Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers --2 PHP-Einführung

Annahmen und Vorbereitungen

Artikel zum Aufbau eines Linux-Servers

Letztes Mal hat Apache httpd 2.4.43 durch Quellkompilierung auf einem Webserver erstellt, diesmal jedoch das Backbone des Web-App-Servers in Apache Führen Sie PHP 7.4 durch Quellenkompilierung ein (⑅ • ᴗ • ⑅)

Umgebung

--Web Server Programm: Apache 2.4.43 + PHP 7.4.6 (Quellenkompilierung) --Client: Windows10 Pro

Annahme

--Benutzer als root installiert (bei meiner Überprüfung handelt es sich um ein Administratorkonto namens admin, das von sudo von dort aus verarbeitet wird)

Serverbedingungen

IP Adresse

Funktionen und Versionen zum individuellen Herunterladen und Installieren von Paketen (Stand Juni 2020)

Andere erforderliche Pakete werden mit den Standardpaketbefehlen der Distribution (dnf, apt usw.) installiert und müssen nicht einzeln heruntergeladen werden.

Zum Herunterladen können Sie auf die offizielle Website zugreifen, von dort herunterladen und per FTP übertragen oder mit wget abrufen, wenn Sie die URL der Download-Datei kennen, die Erfassungsmethode jedoch weggelassen wurde.

Arbeitsablauf

PHP-Installation

Einführung von Bibliotheken, die für die Kompilierung von PHP-Quellen erforderlich sind

CentOS8.1


# dnf -y install libxml2 libxml2-devel sqlite-devel
# dnf -y install oniguruma-devel-6.8.2-1.el8.x86_64.rpm

openSUSE15.1


# zypper -n install libxml2-tools libxml2-devel sqlite3-devel oniguruma-devel

Bis zu PHP7.3 war es möglich, Multi-Byte-Zeichenfolgen ohne Verwendung von SQLite und der Demon-Car-Bibliothek zu installieren. In PHP7.4 wurde dies jedoch für die Quellkompilierung obligatorisch.

Nur für CentOS 8.1 ist die Dämonenautobibliothek (oniguruma-devel-6.8.2-1.el8.x86_64.rpm) im Standardpaket nicht vorhanden, daher habe ich sie von der CentOS-Paket-Downloadseite mitgebracht.

Stand Juni 2020: http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-1.el8.x86_64.rpm

Zusammenstellung von PHP-Quellen

Das Kompilieren dauert ca. 40 Minuten. Da es größer als Apache ist, ist es möglicherweise besser, während der Kompilierung eine Pause mit einer Tasse Kaffee einzulegen (\ * ˘︶˘ \ *) ...: \ * ♡

# cd [PHP 7.4.Verzeichnis, in dem sich 6 Archivdateien befinden]
# tar xvzf php-7.4.6.tar.gz
# cd php-7.4.6/
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysqli --with-pdo-mysql --enable-mbregex --enable-mbstring
# make
# make test

--MySQL aktiviert PDO

"Make" und "make test" sind zeitaufwändige Befehle. Wenn unterwegs keine Fehler vorliegen, ist die Kompilierung abgeschlossen. Als ich es mit make test unter CentOS 8.1 getestet habe, gab es außerdem keine Fehler (๑ ・ ∞ ∞ ๑)… Es ist möglicherweise mit CentOS 8.1 kompatibel. php_test_fail.png

PHP-Installation

Installieren Sie, wenn die Kompilierung abgeschlossen ist.

# make install

Installing PHP SAPI module:       apache2handler
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/opt/apr-1.7.0/build-1/libtool' libphp7.la /usr/local/apache2/modules
/opt/apr-1.7.0/build-1/libtool --mode=install install libphp7.la /usr/local/apache2/modules/
libtool: install: install .libs/libphp7.so /usr/local/apache2/modules/libphp7.so
libtool: install: install .libs/libphp7.lai /usr/local/apache2/modules/libphp7.la
libtool: warning: remember to run 'libtool --finish /home/admin/php-7.4.6/libs'
chmod 755 /usr/local/apache2/modules/libphp7.so
[activating module `php7' in /usr/local/apache2/conf/httpd.conf]
Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-zts-20190902/
Installing PHP CLI binary:        /usr/local/bin/
Installing PHP CLI man page:      /usr/local/php/man/man1/
Installing phpdbg binary:         /usr/local/bin/
Installing phpdbg man page:       /usr/local/php/man/man1/
Installing PHP CGI binary:        /usr/local/bin/
Installing PHP CGI man page:      /usr/local/php/man/man1/
Installing build environment:     /usr/local/lib/php/build/
Installing header files:          /usr/local/include/php/
Installing helper programs:       /usr/local/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php/man/man1/
  page: phpize.1
  page: php-config.1
/home/admin/php-7.4.6/build/shtool install -c ext/phar/phar.phar /usr/local/bin
ln -s -f phar.phar /usr/local/bin/phar
Installing PDO headers:           /usr/local/include/php/ext/pdo/

Einige der PHP-Bibliotheken befinden sich je nach Zweck an mehreren Orten, z. B. "/ usr / local / include / php /" und "/ usr / local / lib / php /". Im Fall von openSUSE 15.1 befinden sich einige in "/ usr / local / lib64 / php /". Zu diesem Zeitpunkt werden ** PHP-DLLs (Dynamic Link Libraries, die externen Erweiterungsanwendungen entsprechen) automatisch im Apache-Ordner bereitgestellt **.

Erstellen Sie als Nächstes eine Kopie der PHP-Einstellungsdatei. Kopieren Sie zunächst die Datei php.ini in den Ordner / usr / local / lib / der PHP-Bibliothek.

# cp php.ini-development /usr/local/lib/php.ini
# ls -l /usr/local/lib
Insgesamt 328
-rw-r--r--1 Wurzel Wurzel 144402 24. Juni 12:34 libz.a
lrwxrwxrwx 1 Wurzel Wurzel 14 Juni 24 12:34 libz.so -> libz.so.1.2.11
lrwxrwxrwx 1 Wurzel Wurzel 14 Juni 24 12:34 libz.so.1 -> libz.so.1.2.11
-rwxr-xr-x 1 Wurzel Wurzel 113656 24. Juni 12:34 libz.so.1.2.11
drwxr-xr-x 4 Wurzel Wurzel 37 24. Juni 16:19 php
-rw-r--r--1 Wurzel Wurzel 72278 24. Juni 16:21 php.ini
drwxr-xr-x 2 Wurzel Wurzel 21 Juni 24 12:34 pkgconfig

Einstellungen auf der Apache-Seite

Ich muss die PHP-Datei für Apache erkennbar machen, also bearbeite sie. Die PHP-DLL wird bei der Installation von PHP automatisch in httpd.conf geschrieben, sodass sie nicht hinzugefügt werden muss. Alles, was Sie auf der Seite httpd.conf tun müssen, ist, dass Apache den PHP-MIME-Typ erkennt.

# vi /usr/local/apache2/conf/httpd.conf

/usr/local/apache2/conf/httpd.conf


…
<IfModule dir_module>
    DirectoryIndex index.html ← 「index.Fügen Sie "php" hinzu
</IfModule>
…
<IfModule mime_module>
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    …
    AddType application/x-httpd-php .php ← Diese Zeile hinzufügen
</IfModule>
…

PHP-Einstellungen

Ändern Sie die Einstellungen für den PHP-Zeichencode und die Referenzbibliothek.

Wenn PHP kompiliert und installiert wird, unterscheidet sich das Speicherverzeichnis von php.ini je nach Distribution. ** Nur OpenSUSE, PHP ist in / usr / local / lib64 / ** enthalten, daher ist der Unterschied im Bibliotheksordner "lib" verwirrend

CentOS8.1. Ubuntu20.04


# vi /usr/local/lib/php.ini

openSUSE15.1


# vi /usr/local/lib64/php.ini

php.ini


#Da der Inhalt lang ist, werden nur diejenigen aufgelistet, die teilweise geändert wurden, und diejenigen, die geändert wurden. Semikolon";"Ist entfernt. "";Es wird beschrieben, einschließlich der Zeile, die Sie gerade entfernen
output_buffering = On
default_charset = "UTF-8"
 [CentOS 8.1. Ubuntu 20.04] include_path = ".:/usr/local/include/php:/usr/local/lib/php"
 [openSUSE 15.1] include_path = ".:/usr/local/include/php:/usr/local/lib64/php"
extension_dir = "/usr/local/include/php/ext"
date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8, SJIS, EUC-JP, JIS, ASCII
mbstring.substitute_character = none

PHP-Funktionsprüfung

PHP-Bestätigungsseite

Erstellen Sie zunächst eine PHP-Seite zur Bestätigung.

# vi /usr/local/apache2/htdocs/phpi.php

phpi.php


<?php phpinfo(); ?>

Warum PHP-Dateien in / usr / local / apache2 / htdocs / ablegen? ?? Wenn Apache jedoch durch Quellkompilierung installiert wird, lautet der Standardspeicherordner für Webseitendaten "/ usr / local / apache2 / htdocs /". Nun, Sie können den Speicherort in httpd.conf ändern, aber dieses Mal werde ich ihn weglassen.

Starten Sie Apache neu

# systemctl stop httpd
# systemctl start httpd
# systemctl status httpd

Wenn Sie nicht neu starten, funktioniert Apache nicht mit dem geladenen PHP-Modul. Beenden Sie es also und starten Sie es neu. Stellen Sie danach sicher, dass es mit dem Status gestartet wird. phpinfo.png PHP wurde richtig erkannt! !! (\ * ´꒳` \ *)

pdo.png Ich kann PDO richtig erkennen. Andernfalls können Sie MySQL und SQLite nicht verwenden ... (´ • ̥ ̫ • ̥ `)

nächstes Mal

Führen Sie MySQL ein, um die Datenbank für den Web-App-Server von PHP verfügbar zu machen

Recommended Posts

Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers --2 PHP-Einführung
Quellkompilierung Apache2.4 (httpd 2.4.43) + PHP7.4 unter Linux zum Erstellen eines Webservers --3 MySQL 8.0 Einführung
Quellkompilieren Sie Apache2.4 + PHP7.4 mit Raspberry Pi und erstellen Sie einen Webserver --2 PHP Einführung
Quellkompilieren Sie Apache2.4 + PHP7.4 mit Raspberry Pi und erstellen Sie einen Webserver. 1. Apache-Einführung
Quellkompilieren Sie Apache2.4 + PHP7.4 mit Raspberry Pi und erstellen Sie einen Webserver --3. Verwenden Sie MySQL
Erstellen Sie Apache HTTP Server und Wildfly unter Oracle Linux 8
Erstellen Sie einen einfachen WebDAV-Server unter Linux
Erstellen Sie einen Samba-Server unter Arch Linux
Erstellen Sie mit Docker eine CentOS Linux 8-Umgebung und starten Sie Apache HTTP Server
Erstellen Sie Server in Linux und lokalen Netzwerken mit Raspberry Pi NextCloud und Desktop-Sharing
[Einführung in AWS] Memorandum zum Erstellen eines Webservers auf AWS
Erstellen Sie eine LAMP-Umgebung mit Vagrant (Linux + Apache + MySQL + PHP)
Aufbau eines Linux-Webservers (Ubuntu & Apache)
Führen Sie einen Linux-Server mit GCP aus
Erstellen Sie einen Pypi-Cache-Server auf QNAP
[UE4] Erstellen Sie DedicatedServer unter Windows und Linux
Erstellen Sie einen NFS-Server unter Arch Linux
Installieren und konfigurieren Sie den TigerVNC-Server unter Linux
Starten Sie einen Webserver mit Bottle and Flask (ich habe auch versucht, Apache zu verwenden)
Erstellen Sie Linux in einer Windows-Umgebung. Schritte zum Installieren und Migrieren von Laradock
Installieren Sie Python3 und Django unter Amazon Linux (EC2) und führen Sie den Webserver aus
Effektive und einfache Webserver-Sicherheitsmaßnahmen "Linux"
Starten Sie einen Webserver mit Python und Flask
Lassen Sie uns Django und Apache (httpd) auf dem Mac integrieren! !!
Führen Sie die Kolben-App auf Cloud 9 und Apache Httpd aus
Geben Sie die Lautstärke unter Linux an und spielen Sie den Sound ab
[Linux] [Kernelmodul] Erstellen und laden Sie ein einfaches ladbares Kernelmodul
CTF-Anfänger haben versucht, einen Problemserver (Web) zu erstellen [Problem]
Führen Sie einen Befehl auf dem Webserver aus und zeigen Sie das Ergebnis an
Kompilieren und installieren Sie MySQL-Python für Python2.7 unter Amazon Linux
[Linux] Erstellen Sie ein Selbstzertifikat mit Docker und Apache
So starten Sie einen einfachen WEB-Server, der CGI von PHP und Python ausführen kann
Erstellen Sie mit hug einen Web-API-Server mit explosiver Geschwindigkeit
Richten Sie einen Webserver mit CentOS7 + Anaconda + Django + Apache ein
So integrieren Sie Apache httpd 2.4 und Tomcat 9 unter Cent OS 8
Erstellen Sie eine Python-Umgebung und übertragen Sie Daten auf den Server
Erstellen Sie mit Falcon einen Light-Speed-Web-API-Server
Erstellen Sie unter CentOS 7.7 eine Python-Umgebung für Ihren Heimserver