Der Ablauf liegt diesmal ungefähr in der Reihenfolge OpenSSL, Apache Subversion, APR, APR-util, PCRE, Apache2 (httpd), PHP. Wir werden je nach Bedarf verschiedene Pakete und Builds verwenden.
Umgebung | |
---|---|
OS | Ubuntu server 20.04 |
CPU | Intel Core i5 2500 |
Erinnerung | 4GB(DDR3) |
Network | LAN |
Ausführung | 2020/09/01 ab spätestens |
---|---|
httpd | 2.4.26 |
OpenSSL | 1.1.1g |
PHP | 7.4.9 |
sudo apt update -y && sudo apt upgrade -y
sudo apt install build-essential
sudo apt purge openssl
sudo apt purge apache2
Build Install Porg, mit dem die installierte Software verwaltet werden kann. Weitere Informationen finden Sie in diesem Artikel. (https://qiita.com/ksugawara61/items/38fe9d8e2cc444639fe0)
Neueste: https://sourceforge.net/projects/porg/files/
cd /usr/local/src
sudo wget http://sourceforge.net/projects/porg/files/porg-0.10.tar.gz/download -O porg-0.10.tar.gz --no-check-certificate
sudo tar xvf porg-0.10.tar.gz && cd porg-0.10
sudo ./configure --prefix=/usr/local --disable-grop
sudo make && sudo install
Neueste: https://zlib.net/
cd /usr/local/src
sudo wget http://www.zlib.net/zlib-1.2.11.tar.gz
sudo tar xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
sudo ./configure
sudo make
sudo porg -lD "make install"
Neueste: https://www.openssl.org/source/
cd /usr/local/src
sudo wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
sudo tar xvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
sudo ./config shared zlib
sudo make
sudo porg -lD "make install"
Dieses Mal laden apr und apr-util die Quelle mit Apache-Subversion herunter.
Installieren Sie zunächst die Apache-Subversion. 1
Dann laden Sie apr und apr-util herunter. 2 und 3
sudo apt install subversion (1)
sudo svn co https://svn.apache.org/repos/asf/apr/apr/branches/1.7.x/ apr (2)
sudo svn co https://svn.apache.org/repos/asf/apr/apr-util/branches/1.7.x/ apr-util (3)
** Das Folgende ist eine Vermutung, aber **
(2 prüft wahrscheinlich, ob die erforderlichen Tools installiert sind. Dies führt zu einem obskuren Fehler in 3, aber am Ende waren einfach nicht die erforderlichen Tools installiert. Es kann möglich sein, dies zu verhindern.)
Neueste: https://apr.apache.org/anonsvn.html
Es ist eine gute Idee, kleinere Versionen von apr und apr-util zu haben.
cd apr
sudo ./buildconf (2)
sudo ./configure (3)
sudo make
sudo porg -lD "make install"
In meiner Umgebung wurde beispielsweise 2 wie folgt ausgegeben. Dadurch erfahren Sie schnell, welche Tools nicht installiert sind.
buildconf: checking installation...
buildconf: python version 3.8.2 (ok)
buildconf: autoconf not found.
You need autoconf version 2.59 or newer installed
to build APR from SVN.
buildconf: libtool not found.
You need libtool version 1.4 or newer installed
to build APR from SVN.
Sie können sehen, dass Sie "autoconf" und "libtool" benötigen. Ich frage mich, ob ich das Paket verwenden oder aus dem Quellcode erstellen soll. Immerhin habe ich beschlossen, "autoconf" aus dem Paket und "libtool" aus der Quelle zu erstellen.
sudo apt install autoconf
sudo tar xvf libtool-2.4.6.tar.gz
cd libtool-2.4.6
sudo ./configure
sudo make
sudo porg -lD "make install"
Führen Sie nun erneut 2 aus, und führen Sie bei Erfolg 3 und mehr aus, einschließlich 3.
Neueste: https://apr.apache.org/anonsvn.html
Es ist eine gute Idee, kleinere Versionen von apr und apr-util zu haben.
Installieren Sie zunächst das erforderliche libexpat1-dev-Paket.
sudo apt install libexpat1-dev -y
Dann fahren Sie mit dem Bauen fort.
cd apr-util
sudo ./buildconf
sudo ./configure --with-apr=/usr/local/apr
sudo make
sudo porg -lD "make install"
Neueste: https://www.pcre.org/
Beachten Sie, dass es sich um pcre handelt, nicht um pcre2!
cd /usr/local/src
sudo wget ftp://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
sudo tar xvf pcre-8.44.tar.gz
cd pcre-8.44
sudo ./configure
sudo make
sudo make install
Neueste: https://httpd.apache.org/download.cgi
cd /usr/local/src
sudo apt install libxml2-dev
sudo wget https://downloads.apache.org//httpd/httpd-2.4.46.tar.gz --no-check-certificate
sudo tar xvf httpd-2.4.46.tar.gz
cd httpd-2.4.46
sudo ./configure --enable-ssl --enable-mods-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr/bin/apu-1-config --with-pcre=/usr/local/pcre-8.44 --with-ssl=/usr/local/ssl --enable-shard=ssl
sudo make
sudo porg -lD "make install"
Sie können jedes Verzeichnis wie folgt finden, das am Ende angezeigt wird. Überprüfen Sie es daher.
.
.
.
Installing configuration files
mkdir /usr/local/apache2/conf (Konfigurationsdatei)
.
.
.
Installing HTML documents
mkdir /usr/local/apache2/htdocs (Dokument Root)
.
.
.
Neueste: https://www.php.net/downloads
cd /usr/local/src
sudo wget https://www.php.net/distributions/php-7.4.9.tar.gz --no-check-certificate
sudo tar xvf php-7.4.9.tar.gz
cd php-7.4.9
Hier ist eine Liste der Optionen ". / Configure".
--prefix = / opt / php-x.x.x
: Wo werden PHP-Interpreter und -Bibliotheken installiert? Bin kommt hierher, wenn nur PHP verwendet wird.
--with-apxs2
: Ein Skript, das Informationen zu Apache2 zurückgibt. PHP ist erforderlich, da es durch Einbetten in Apache2 verwendet wird.
--enable-mbstring
: Japanisch ist ein Multi-Byte-Zeichen, und der PHP-Kern unterstützt keine Multi-Byte-Zeichen. Geben Sie es daher an, da dies ein Problem darstellt, wenn es unerwartet auftritt.
--enable-intl
: Ermöglicht die Ausführung verschiedener Gebietsschema-bezogener Vorgänge. Formatierung, Transliteration, Codierungskonvertierung, Kalenderverarbeitung, UCA-konforme Sortierung, Textbegrenzer, Operationen unter Verwendung von Gebietsschema-IDs, Zeitzonen und Schreibern sind möglich. Und im PHP-Handbuch. Aktivieren Sie es. ``
--enable-bcmath
: Aktivieren Sie diese Option, um numerische Berechnungen ohne Fehler im interaktiven Modus durchzuführen.
~~ --with-pcre-dir
: Geben Sie denselben PCre an, der zum Erstellen von Apache2 verwendet wurde. ~~
--with-readline
: Auf diese Weise können Sie interaktive Interpreter in PHP wie Python verwenden.
--with-libxml-dir
: Gibt den Speicherort der Bibliothek für die XML-Verarbeitung an. Es ist standardmäßig gültig, aber geben Sie auf einen Blick an, welche Bibliothek Sie erstellt haben, wenn Sie sich später die Konfigurationsoption ansehen.
Bisher verwendete PDO separate Funktionen, die für jede Datenbank vorbereitet wurden, um die Datenbank zu verwalten, sodass für MySQL geschriebene Programme ohne umfangreiches Umschreiben nicht für PostgreSQL verwendet werden konnten.
Durch das Sammeln der Unterschiede zwischen den einzelnen Datenbanken und die Verwendung von PDO, die einheitlich behandelt werden können, wird es jedoch möglich, jede Datenbank mit derselben Funktion zu betreiben. Um mit Datenbanken mit PDO arbeiten zu können, benötigen Sie eine PDO-Erweiterung und einen Treiber für jede von PDO verwendete Datenbank.
--with-pdo-mysql
: Die PDO-Erweiterung ist standardmäßig aktiviert. Dies gibt den MySQL-Treiber an, den die PDO-Erweiterung verwenden wird. Geben Sie dazu übrigens den MySQL Native Driver (mysqlnd) an. Wenn Sie mit etwas anderem als MySQL zu tun haben, lesen Sie: (https://www.php.net/manual/ja/pdo.drivers.php)
--with-zlib
und --with-zlib-dir
: Gibt die in OpenSSL verwendete (und auch in MySQL-Builds verwendete) Zlib an. Erforderlich, um pdo-mysql zu verwenden.
--enable-gd
: Aktiviert die GD-Unterstützung. JPEG und PNG zu handhaben
`sudo apt install libpng-dev libjpeg-dev`
--with-freetype
: freetype2.`sudo apt install freetype-dev`
--with-openssl
: Geben Sie das OpenSSL-Installationsverzeichnis an, damit OpenSSL auch von PHP aus verwendet werden kann.
with-Natrium
: Aktivieren Sie diese Option anstelle der gelöschten mcrypt.
das ist alles. Installieren Sie als Nächstes die erforderlichen Pakete. Die Zahl in (x) gibt an, welche Erweiterung oben erforderlich ist.
sudo apt install libicu-dev (4)
sudo apt install libreadline-dev (7)
sudo apt install libxml2-dev (8)
sudo apt install libpng-dev libjpeg-dev (11)
sudo apt install libfreetype-dev (12)
sudo apt install libsodium-dev (14)
sudo apt install libsqlite3-dev libonig-dev
Zusammenfassung
sudo ./configure \
--prefix=/opt/php-7.4.9 \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--enable-intl \
--enable-bcmath \
--with-pcre-regex=/usr/local/lib \
--with-readline \
--with-libxml=/usr/bin/xml2-config \
--with-pdo-mysql=mysqlnd \
--with-zlib=/usr/local \
--with-zlib-dir=/usr/local \
--enable-gd \
--with-freetype \
--with-openssl=/usr/local/ssl \
--with-openssl \
--with-sodium
von hier,
sudo make
sudo porg -lD "make install"
Die httpd.conf
im Konfigurationsdateiverzeichnis, die am Ende des Apache2-Builds bestätigt wurde, ist die Konfigurationsdatei.
Die Beschreibung von Load Module php7_module modules / libphp7.so
in / usr / local / apache2 / conf / httpd.conf
wird verwendet, um das von Apache separat erstellte PHP-Apache-Modul zu integrieren.
Eine weitere Einstellung ist erforderlich, damit Apache2 PHP ausführt. Wenn nichts unternommen wird, gibt eine Anfrage, selbst wenn sie an .php
kommt, eine .php
-Datei wie eine Textdatei zurück. Wenn die angeforderte Datei "xxxx.php" lautet, fügen Sie daher die folgende Beschreibung hinzu, damit sie ordnungsgemäß ausgeführt wird.
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
Von (https://www.atmarkit.co.jp/ait/articles/1112/12/news118.html).
Jetzt können Sie loslegen.
Erstellen Sie die folgende PHP-Datei unter "/ usr / local / apache2 / htdocs".
info.php
<?php
phpinfo()
?>
Verschiedene Befehle, die sich auf den Betrieb von Apache2 (httpd) beziehen, sind wie folgt.
Apache2(httpd) | |
---|---|
Inbetriebnahme | sudo /usr/local/apache2/bin/apachectl start |
Starten Sie neu | sudo /usr/local/apache2/bin/apachectl restart |
Ausschalten | sudo /usr/local/apache2/bin/apachectl stop |
Verwenden Sie ifconfig
(verfügbar mit sudo apt install net-tools
), um die private IP-Adresse des Servers zu ermitteln und von einem Computer im selben Netzwerk zu http: // 192.168.xx / info.php
zu wechseln. Bitte zugreifen. Stellen Sie sicher, dass die Konfigurationseinstellungen korrekt wiedergegeben werden.
Damit ist die Installation der Installation in diesem Artikel abgeschlossen. Ich möchte porg -a
verwenden, um zu überprüfen, was ich bisher gebaut habe.
>porg -a
apr
apr-util
httpd-2.4.46
libtool-2.4.6
openssl-1.1.1g
pcre-8.44
php-7.4.9
zlib-1.2.11
https://www.atmarkit.co.jp/ait/series/2540/
https://qiita.com/ksugawara61/items/70f5d1faf192c4ba6ca0
Installieren Sie Node.js und NPM.
sudo apt install npm nodejs -y
sudo npminstall -g n
sudo n stable
sudo apt purge nodejs npm -y
reboot
node -v
npm -v
Wenn Sie "npm no solche Datei oder ..." erhalten, führen Sie "reboot" und dann "echo export PATH = / usr / local / bin /: \ $ PATH >> ~ / .bashrc" durch.
n stabiler Fehler Referenz: (https://stackoverflow.com/questions/36494336/npm-install-error-unable-to-get-local-issuer-certificate)
Ich werde von hier aus schnell vorgehen. Weitere Informationen finden Sie unter (https://qiita.com/Suzukaze31/items/3cd7054dd7749d79eb70).
mkdir /usr/local/apache2/htdocs/react-app
chown USER_NAME:USER_NAME -R /usr/local/apache2/htdocs/react-app
npm init -y
sudo npm i -g react react-dom @babel/core @babel/cli @babel/preset-env @babel/preset-react webpack webpack-cli webpack-dev-server babel-loader css-loader style-loader html-webpack-plugin
npm i -save react react-dom
npm i --save-dev @babel/core @babel/cli @babel/preset-env @babel/preset-react webpack webpack-cli webpack-dev-server babel-loader css-loader style-loader html-webpack-plugin
touch webpack.config.js
mkdir src && cd src
touch index.html index.js App.js
index.html
<!DOCTYPE html>
<head>
<meta charset="utf-8">
</head>
<body>
<div id="root"></div>
</body>
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(<App />, document.getElementById('root'));
App.js
import React from 'react';
function App() {
return <h1>Hello, World</h1>;
}
export default App;
webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: './src/index.js',
mode: 'development',
output: {
path: path.resolve(__dirname, './'),
filename: 'bundle.js',
},
module: {
rules: [
{test: /\.(js)$/, use: 'babel-loader'},
{test: /\.css$/, use: ['style-loader', 'css-loader']}
]
},
plugins: [
new HtmlWebpackPlugin({
template: 'src/index.html'
})
]
}
package.json
...
"babel":{
"presets" : [
"@babel/preset-env",
"@babel/preset-react"
]
},
"scripts": {
"build-react-app": "webpack",
"start": "webpack-dev-server --open"
},
...
Führen Sie nun das Webpack aus.
cd /usr/local/apache2/htdocs/react-app
npm run build-react-app
Bitte greifen Sie mit einem Webbrowser auf http: // 192.168.x.x / react-app /
zu. Wenn Hello World angezeigt wird, ist es OK.
Recommended Posts