Le flux cette fois-ci est à peu près dans l'ordre d'OpenSSL, Apache Subversion, APR, APR-util, PCRE ,, Apache2 (httpd), PHP. Nous utiliserons différents packages et builds selon les besoins.
environnement | |
---|---|
OS | Ubuntu server 20.04 |
CPU | Intel Core i5 2500 |
Mémoire | 4GB(DDR3) |
Network | LAN |
version | 2020/09/01 au plus tard |
---|---|
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, qui peut gérer les logiciels installés. Pour plus de détails, consultez cet article. (https://qiita.com/ksugawara61/items/38fe9d8e2cc444639fe0)
Dernières: 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
Dernières: 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"
Dernière: 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"
Cette fois, apr et apr-util téléchargeront les sources avec la subversion apache.
Tout d'abord, installez la subversion Apache. 1
Ensuite, téléchargez apr et apr-util. 2 et 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)
** Ce qui suit est une supposition, mais **
(2 vérifie probablement si les outils requis sont installés. Cela donne une erreur obscure dans 3 mais à la fin, il n'a tout simplement pas les outils requis installés. Il peut être possible de l'empêcher de se produire.)
Dernière: https://apr.apache.org/anonsvn.html
C'est une bonne idée d'avoir des versions mineures de apr et apr-util.
cd apr
sudo ./buildconf (2)
sudo ./configure (3)
sudo make
sudo porg -lD "make install"
Par exemple, dans mon environnement, 2 était affiché comme suit. Cela vous indiquera rapidement quels outils ne sont pas installés.
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.
Vous pouvez voir que vous avez besoin de autoconf
et libtool
. Je me demande s'il faut utiliser le package ou construire à partir des sources. Après tout, j'ai décidé de construire autoconf
à partir du paquet et libtool
à partir des sources.
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"
Maintenant, exécutez à nouveau 2, et en cas de succès, exécutez 3 et au-delà, y compris 3.
Dernière: https://apr.apache.org/anonsvn.html
C'est une bonne idée d'avoir des versions mineures de apr et apr-util.
Tout d'abord, installez le package libexpat1-dev
requis.
sudo apt install libexpat1-dev -y
Ensuite, procédez à la construction.
cd apr-util
sudo ./buildconf
sudo ./configure --with-apr=/usr/local/apr
sudo make
sudo porg -lD "make install"
Dernière: https://www.pcre.org/
Notez que c'est pcre, pas 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
Dernière: 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"
Vous pouvez voir chaque répertoire par le suivant qui apparaît à la fin, alors vérifiez-le.
.
.
.
Installing configuration files
mkdir /usr/local/apache2/conf (fichier de configuration)
.
.
.
Installing HTML documents
mkdir /usr/local/apache2/htdocs (Racine du document)
.
.
.
Dernières: 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
Voici une liste des options . / Configure
.
--prefix = / opt / php-x.x.x
: Où installer les interpréteurs et bibliothèques PHP. Bin vient ici lorsque vous utilisez PHP seul.
--with-apxs2
: Un script qui renvoie des informations sur Apache2. PHP est requis car il est utilisé en l'incorporant dans Apache2.
--enable-mbstring
: Le japonais est un caractère multi-octets, et le cœur de PHP ne prend pas en charge les caractères multi-octets, alors spécifiez-le car ce sera un problème si cela se produit de manière inattendue.
--enable-intl
: vous permet d'effectuer diverses opérations liées aux paramètres régionaux. Le formatage, la translittération, la conversion d'encodage, le traitement du calendrier, le classement conforme UCA, les délimiteurs de texte, les opérations utilisant des identificateurs de paramètres régionaux, des fuseaux horaires et des scribes sont possibles. Et dans le manuel PHP. Activez-le. ''
--enable-bcmath
: Permet d'effectuer des calculs numériques sans erreur en mode interactif.
~~ --with-pcre-dir
: Spécifiez le même pcre utilisé pour construire Apache2. ~~
--with-readline
: Cela vous permettra d'utiliser des interpréteurs interactifs en PHP, comme Python.
--with-libxml-dir
: Ceci spécifie l'emplacement de la bibliothèque pour le traitement XML. Il est valide par défaut, mais spécifiez la bibliothèque avec laquelle vous avez créé un coup d'œil lorsque vous examinerez l'option de configuration plus tard.
Jusqu'à présent, PDO utilisait des fonctions séparées préparées pour chaque base de données pour gérer les bases de données, de sorte que les programmes écrits pour MySQL ne pouvaient pas être utilisés pour PostgreSQL sans réécriture majeure.
Cependant, en collectant les différences entre chaque base de données et en utilisant des PDO qui peuvent être gérés de manière uniforme, il devient possible d'exploiter chaque base de données avec la même fonction. Pour travailler avec des bases de données utilisant PDO, vous avez besoin d'une extension PDO et d'un pilote pour chaque base de données utilisée par PDO.
--with-pdo-mysql
: L'extension PDO est activée par défaut, donc cela spécifie le pilote MySQL que l'extension PDO utilisera. Au fait, spécifiez le pilote natif MySQL (mysqlnd) pour cela. Si vous avez affaire à autre chose que MySQL, consultez: (https://www.php.net/manual/ja/pdo.drivers.php)
--with-zlib
et --with-zlib-dir
: Spécifie le zlib utilisé dans OpenSSL (et également utilisé dans les versions MySQL). Requis pour utiliser pdo-mysql.
--enable-gd
: active le support GD. Pour gérer jpeg et png
`sudo apt install libpng-dev libjpeg-dev`
--with-freetype
: freetype2.`sudo apt install freetype-dev`
--with-openssl
: Spécifiez le répertoire d'installation d'OpenSSL afin qu'OpenSSL puisse également être utilisé depuis PHP.
with-sodium
: Activez ceci au lieu du mcrypt supprimé.
c'est tout. Ensuite, installez les packages requis. Le nombre entre (x) indique quelle extension ci-dessus est requise.
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
Sommaire
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
d'ici,
sudo make
sudo porg -lD "make install"
Le httpd.conf
dans le répertoire du fichier de configuration, qui a été confirmé à la fin de la construction d'apache2, est le fichier de configuration.
La description de Load Module php7_module modules / libphp7.so
dans / usr / local / apache2 / conf / httpd.conf
est utilisée pour incorporer le module PHP Apache construit séparément d'Apache.
Et un paramètre supplémentaire est nécessaire pour qu'Apache2 exécute PHP. Si rien n'est fait, même si une requête arrive à .php
, elle renverra un fichier .php
comme un fichier texte. Par conséquent, si le fichier demandé est «xxxx.php», ajoutez la description suivante afin qu'il soit exécuté correctement.
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
Sur (https://www.atmarkit.co.jp/ait/articles/1112/12/news118.html).
Vous êtes maintenant prêt à courir.
Créez le fichier PHP suivant sous / usr / local / apache2 / htdocs
.
info.php
<?php
phpinfo()
?>
Les différentes commandes liées au fonctionnement d'Apache2 (httpd) sont les suivantes.
Apache2(httpd) | |
---|---|
Début de l'opération | sudo /usr/local/apache2/bin/apachectl start |
Redémarrer | sudo /usr/local/apache2/bin/apachectl restart |
Fermer | sudo /usr/local/apache2/bin/apachectl stop |
Utilisez ifconfig
(disponible avec sudo apt install net-tools
) pour trouver l'adresse IP privée du serveur et accédez à http: // 192.168.xx / info.php
à partir d'un ordinateur du même réseau. Veuillez accéder. Assurez-vous que les paramètres de configuration sont correctement reflétés.
Cela termine l'installation de ce que vous allez installer dans cet article. Je voudrais utiliser porg -a
pour vérifier ce que j'ai construit jusqu'à présent.
>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
Installez Node.js et 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
Si vous obtenez npm no such file or ...
, faites reboot
puis echo export PATH = / usr / local / bin /: \ $ PATH >> ~ / .bashrc
.
n Référence d'erreur stable: (https://stackoverflow.com/questions/36494336/npm-install-error-unable-to-get-local-issuer-certificate)
Je vais procéder rapidement d'ici. Pour plus d'informations, voir (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"
},
...
Maintenant, exécutez webpack.
cd /usr/local/apache2/htdocs/react-app
npm run build-react-app
Veuillez accéder à http: // 192.168.x.x / react-app /
avec un navigateur Web. Si Hello World s'affiche, c'est OK.
Recommended Posts