Apache HTTP Server (Apache) je jedním z nejpopulárnějších bezplatných a open source multiplatformních webových serverů, vydaný za podmínek licence Apache 2.0. Apache je populární jako součást nastavení LAMP a je to A ve zkratce. Funkčnost serveru Apache lze rozšířit pomocí mnoha dostupných modulů.
PHP je univerzální skriptovací jazyk zaměřený na vývoj webových aplikací. Je to jeden z oblíbených programovacích jazyků pro web. Populární nástroje, jako je WordPress, jsou kódovány pomocí php. Velké společnosti jako Facebook také hojně využívají php.
Související obsah:
- Jak nainstalovat a nastavit PHP a Nginx (LEMP) na OpenSUSE Leap 15.3
- Jak nainstalovat Apache PHP 7.4 (LAMP) stack na Rocky Linux/Centos 8
- Jak nainstalovat a nastavit PHP a Apache (zásobník LAMP) na Ubuntu 20.04
- Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Ubuntu 20.04
- Jak nainstalovat a nastavit PHP a Apache (zásobník LAMP) na Debian 11
- Jak nainstalovat a nastavit PHP a Nginx (LEMP) v Debianu 11
- Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Rocky Linux/Alma Linux 8
Předpoklady
Chcete-li postupovat podle tohoto průvodce, ujistěte se, že máte následující:
- Aktualizovaný server OpenSUSE skok 15.3
- Kořenový přístup k serveru nebo uživateli s přístupem sudo
- Přístup k internetu
Obsah
- Zajištění aktuálnosti serveru
- Instalace PHP na OpenSUSE Leap 15.3
- Instalace Apache na OpenSUSE Leap 15.3
- Konfigurace virtuálního hostitele
- Testování konfigurace virtuálního hostitele
1. Zajištění aktuálnosti serveru
Než budete pokračovat, je vždy dobré se ujistit, že je server aktuální. K tomu použijte tyto příkazy
sudo zypper refresh
sudo zypper update -y
2. Instalace PHP na OpenSUSE Leap 15.3
PHP je k dispozici ve výchozím repozitáři OpenSUSE. Nejnovější verze PHP v době psaní tohoto blogu je PHP 7.4.
Nainstalujte PHP a některé běžné balíčky pomocí tohoto příkazu:
sudo zypper install -y \
php \
php-cli \
php-gd \
php-mbstring
Zkontrolujte nainstalovanou verzi PHP
~> zypper info php7
Repository 'Update repository with updates from SUSE Linux Enterprise 15' is out-of-date. You can run 'zypper refresh' as root to update it.
Loading repository data...
Reading installed packages...
Information for package php7:
-----------------------------
Repository : Update repository with updates from SUSE Linux Enterprise 15
Name : php7
Version : 7.4.6-3.29.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Installed Size : 10.3 MiB
Installed : Yes
Status : up-to-date
Source package : php7-7.4.6-3.29.1.src
Summary : Interpreter for the PHP scripting language version 7
Description :
PHP is a server-side HTML embedded scripting language designed
primarily for web development but also used as a general-purpose
programming language.
This package contains the standard implementation of PHP, namely Zend
PHP. Included are the PHP command-line binary and the configuration
file (php.ini). This package must be installed in order to use PHP.
Additionally, extension modules and server modules (e.g. for Apache)
may be installed.
Additional documentation is available in package php-doc.
Zkontrolujte nainstalovanou verzi php pomocí tohoto příkazu:
~> php -v
PHP 7.4.6 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
3. Instalace apache na OpenSUSE Leap 15.3
Balíčky Apache jsou dostupné ve výchozích úložištích OpenSUSE Leap 15.3 jako apache2
. Nainstalujte jej pomocí tohoto příkazu:
sudo zypper install -y apache2
Potvrďte nainstalované balíčky pomocí tohoto příkazu:
~> zypper info apache2
Loading repository data...
Reading installed packages...
Information for package apache2:
--------------------------------
Repository : Update repository with updates from SUSE Linux Enterprise 15
Name : apache2
Version : 2.4.43-3.32.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Installed Size : 4.3 MiB
Installed : Yes
Status : up-to-date
Source package : apache2-2.4.43-3.32.1.src
Summary : The Apache Web Server
Description :
This version of httpd is a major release of the 2.4 stable branch,
and represents the best available version of Apache HTTP Server.
New features include Loadable MPMs, major improvements to OCSP support,
mod_lua, Dynamic Reverse Proxy configuration, Improved Authentication/
Authorization, FastCGI Proxy, New Expression Parser, and a Small Object
Caching API.
See /usr/share/doc/packages/apache2/, http://httpd.apache.org/, and
http://httpd.apache.org/docs-2.4/upgrading.html.
Služba se ve výchozím nastavení nespustí.
sudo systemctl start apache2
Zkontrolujte stav pomocí tohoto příkazu:
~> sudo systemctl status apache2
● apache2.service - The Apache Webserver
Loaded: loaded (/usr/lib/systemd/system/apache2.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2021-12-22 06:58:45 UTC; 53s ago
Main PID: 27333 (httpd-prefork)
Status: "Processing requests..."
Tasks: 6
CGroup: /system.slice/apache2.service
├─27333 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
├─27340 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
├─27341 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
├─27342 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
├─27343 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
└─27344 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
Dec 22 06:58:45 ip-10-2-40-44 systemd[1]: Starting The Apache Webserver...
Dec 22 06:58:45 ip-10-2-40-44 systemd[1]: Started The Apache Webserver.
Chcete-li službu povolit při spouštění, použijte tento příkaz
sudo systemctl enable apache2
Pokud máte na svém počítači nainstalovanou a povolenou bránu firewall, nezapomeňte povolit provoz na Apache2 webový server přes bránu firewall, než přejdete k dalšímu kroku.
$ sudo firewall-cmd --permanent --add-port=80/tcp $ sudo firewall-cmd --permanent --add-port=443/tcp $ sudo firewall-cmd --reload
Aby Apache obsluhoval soubory php
sudo zypper install -y apache2-mod_php7
Poté povolte modul php7
sudo a2enmod php7
Nakonec restartujte apache2, abyste použili přidání modulu
sudo systemctl restart apache2
4. Konfigurace virtuálních hostitelů
S Apache je možné hostovat více stránek na stejném serveru, kde běží Apache. Toho lze vždy dosáhnout pomocí více domén, z nichž každá představuje web, který server hostí.
Virtuální hostitelé Apache jsou podobné blokům serveru Nginx. Každý virtuální hostitel bude mít podrobnosti o konfiguraci pro jednoho hostitele. Můžete mít tolik virtuálních hostitelů, kolik chcete.
V tomto příkladu použijeme doménu site1.citizix.com
pro virtuálního hostitele, ale můžete volně používat doménu dle svého výběru. Upozorňujeme, že DNS pro doménu, která má být použita, by již měla být nakonfigurována tak, aby ukazovala na IP adresu serveru.
Potvrďte to pomocí:
dig -t A site1.citizix.com
Vytvoření adresáře a ukázkového obsahu
Výchozí stránka Apache je nakonfigurována jako výchozí virtuální hostitel poskytující obsah z /srv/www/htdocs
. Doporučeným postupem je vytvořit adresář vašeho webu v /srv/www
adresáře, protože je nejlepším postupem obsluhovat odtud.
Vytvořte adresář pro naše stránky pomocí následujícího příkazu:
sudo mkdir -p /srv/www/site1.citizix.com
Pojďme vytvořit jednoduchý index.php
stránku, která má sloužit z našeho webu. Aby to fungovalo, budete potřebovat nainstalovaný vim, pokud nepoužijete tento příkaz:
sudo zypper install -y vim
Upravte soubor:
sudo vim /srv/www/site1.citizix.com/index.php
Přidejte obsah do souboru:
<?php phpinfo(); ?>
Nakonec se ujistěte, že $USER
uživatel vlastní adresář webu:
sudo chown -R wwwrun:wwwrun /var/www/site1.citizix.com
Vytvoření virtuálního hostitele
Soubory virtuálního hostitele Apache specifikují konfiguraci jednotlivých stránek a sdělují webovému serveru Apache, jak reagovat na požadavky různých domén.
Konfigurace Apache budou uloženy v adresáři /etc/httpd/conf.d/
. Pojďme vytvořit konfiguraci pro náš web:
sudo vim /etc/apache2/conf.d/site1.citizix.com.conf
Přidejte následující obsah:
<VirtualHost *:80>
ServerName site1.citizix.com
ServerAlias site1.citizix.com
ServerAdmin [email protected]
DocumentRoot /srv/www/site1.citizix.com
ErrorLog /var/log/apache2/site1.citizix.com.error.log
CustomLog /var/log/apache2/site1.citizix.com.requests.log combined
<Directory "/srv/www/site1.citizix.com">
Options Indexes
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
</VirtualHost>
To Apache sdělí následující:
ServerName
aServerAlias
– název hostitele, který má sloužitDocumentRoot
– kde přímo najít kořen, který obsahuje veřejně přístupné webové dokumentyDirectoryIndex
– Soubor, který apache obslouží při přístupu na webErrorLog
– kam ukládat protokoly chyb pro tento webCustomLog
– kam ukládat protokoly požadavků pro tento konkrétní web
Po dokončení uložte a zavřete soubor
Otestujte konfiguraci
~> sudo apachectl configtest
Syntax OK
Poté znovu načtěte konfiguraci apache2
sudo systemctl reload apache2
5. Testování konfigurace virtuálního hostitele
Chcete-li otestovat konfiguraci, otevřete prohlížeč a načtěte doménu, kterou jste nastavili. V mém případě je to http://site1.citizix.com
. Měli byste vidět informační stránku php.
Pokud jste ještě nenakonfigurovali nastavení DNS nebo jednoduše nechcete, aby byl web ještě spuštěn, můžete upravit soubor hostitelů svého počítače. Chcete-li to provést, použijte následující příkaz v CLI místního počítače
sudo vim /etc/hosts
Poté přidejte IP adresu vašeho skutečného serveru následovanou názvem domény, kterou konfigurujete, například:
# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com
Nyní byste měli být schopni uložit soubor a přistupovat k němu z webového prohlížeče.
Pokud něco nefunguje podle očekávání, můžete zkontrolovat protokoly serveru virtuálního hostitele pomocí tohoto
tail -f /var/log/apache2/site1.citizix.com.*
Závěr
V této příručce se nám podařilo nastavit Apache tak, aby obsluhoval stránky PHP na serveru Ubuntu 20.04.