Instalacja Apache, MariaDB, PHP(LAMP) na Manjaro

  • by

Ten poradnik pokazuje, jak zainstalować na Manjaro zestaw LAMP (czyli Apache, MariaDB, PHP) na Manjaro Linux. Testowane na Manjaro 17.0 Gellivera GNOME oraz KDE.

1. Aktualizacja systemu

Uruchom poniższe polecenie, żeby zaktualizować system:

sudo pacman -Syu

 2. Instalacja Apache

Po aktualizacji systemu, zainstaluj Apache za pomocą komendy:

sudo pacman -S apache

Następnie otwórz do edycji plik /etc/httpd/conf/httpd.conf:

sudo nano /etc/httpd/conf/httpd.conf

Znajdź i zakomentuj(jeśli nie jest zakomentowana) poniższą linię w pliku konfiguracyjnym:

[...] 
# LoadModule unique_id_module modules/mod_unique_id.so 
[...]

a następnie zapisz i zamknij plik.

Żeby uruchomić usługę Apache, wykonaj polecenia:

sudo systemctl enable httpd
sudo systemctl restart httpd

Żeby zweryfikować poprawność działania serwera HTTP, wykonaj polecenie:

sudo systemctl status httpd

Przykładowy efekt działania tego polecenia powinien być mniej więcej taki:

httpd.service - Apache Web Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor
preset: disabled)
Active: active (running) since Tue 2016-02-16 13:00:18 IST; 7s ago
Main PID: 1067 (httpd)
Tasks: 82 (limit: 512)
CGroup: /system.slice/httpd.service
├─1067 /usr/bin/httpd -k start -DFOREGROUND
├─1070 /usr/bin/httpd -k start -DFOREGROUND
├─1071 /usr/bin/httpd -k start -DFOREGROUND
└─1072 /usr/bin/httpd -k start -DFOREGROUND
Feb 16 13:00:18 server systemd[1]: `Started Apache Web Server.`
Feb 16 13:00:18 server httpd[1067]: AH00558: httpd: Could not reliably
dete...ge
Hint: Some lines were ellipsized, use -l to show in full.

Apache server is ready to use.

 Testowanie Apache

Utwórz w domyślnym podkatalogu Apache (np. /srv/http), plik testowy:

sudo nano /srv/http/index.html

I wklej do niego np. taką zawartość:

<html>
<head>
  <title>To działa !!!</title>
</head>
<body>
  <h2>Witam na stronie testowej mojego serwera HTTP...</h2>
</body>
</html>

A teraz otwórz w przeglądarce adres http://localhost, lub http://127.0.0.0 (przy założeniu, że stawiasz LAMP na lokalnej maszynie…). Efekt powinien być taki:
Konfiguracja serwera LAMP na Manjaro. Test Apache.

3. Instalacja bazy danych MariaDB

Uruchom w terminalu polecenie do instalacji bazy danych:

sudo pacman -S mariadb

Ponieważ od 2013 roku w systemach rodziny Arch Linux, MariaDB wdrożona została jako domyślny system bazy danych, zostaniesz poproszony o wybór silnika serwera MySQL: MariaDB lub Percona. Zostaniesz poproszony o potwierdzenie lub wybór:

[root@server ~]# pacman -S mysql
:: There are 2 providers available for mysql:
:: Repository extra
1) mariadb
:: Repository community
2) percona-server
Enter a number (default=1): `## Press Enter`
resolving dependencies...
looking for conflicting packages...
Packages (7) boost-libs-1.60.0-2 icu-56.1-2 jemalloc-4.0.4-1libmariadbclient-10.1.11-1 libxml2-2.9.3-1
mariadb-clients-10.1.11-1 mariadb-10.1.11-1
Total Download Size: 30.68 MiB
Total Installed Size: 218.10 MiB
:: Proceed with installation? [Y/n]

Przed uruchomieniem usługi, musisz wykonać inicjalizację serwera MariaDB:

sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Teraz możesz przeprowadzić odblokowanie i uruchomienie serwera baz danych:

sudo systemctl enable mysqld
sudo systemctl start mysqld

Żeby zweryfikować poprawność działania MariaDB, wpisz polecenie

sudo systemctl status mysqld

Przykładowy efekt na wyjściu:

mysqld.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled;
vendor preset: disabled)
Active: active (running) since Tue 2016-02-16 13:19:50 IST; 44s ago
Process: 1406 ExecStartPost=/usr/bin/mysqld-post (code=exited,
status=0/SUCCESS)
Main PID: 1405 (mysqld)
Tasks: 26 (limit: 512)
CGroup: /system.slice/mysqld.service
└─1405 /usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400
[N...a.
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400
[N...e.
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400
[N...rt
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400
[N...19
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930516817664
[N...ed
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400
[N...d.
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400
[N...'.
Feb 16 13:19:49 server mysqld[1405]: 2016-02-16 13:19:49 139930931222400
[N...s.
Feb 16 13:19:49 server mysqld[1405]: Version: '10.1.11-MariaDB-log'
socket...er
Feb 16 13:19:50 server systemd[1]: `Started MariaDB database server.`
Hint: Some lines were ellipsized, use -l to show in full.

 Ustalenie hasła root-a dla serwera MySQL

Jak zapewne wiesz, wskazane jest ustawienie hasła dla administratora serwera baz danych. Wykonaj poniższe polecenie:

sudo mysql_secure_installation

przykładowy wynik na wyjściu:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): `## Press Enter`
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] `## Press Enter`
New password: `## Enter password`
Re-enter new password: `## Re-enter password`
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] `## Press Enter`
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] `## Press Enter`
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] `## Press Enter`
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] `## Press Enter`
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

MariaDB has been installed and ready to use.

 4. Instalacja PHP

Aby zainstalować PHP, wykonaj polecenie:

sudo pacman -S php php-apache

Po instalacji, należy moduł PHP w Apache. Aby to zrobić, edytujesz plik /etc/httpd/conf/httpd.conf :

sudo nano /etc/httpd/conf/httpd.conf

Znajdź poniższą linię i zakomentuj ją (jeśli jest odkomentowana):

[...]
#LoadModule mpm_event_module modules/mod_mpm_event.so
[...]

oraz odkomentuj, lub dodaj linię:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Potem dodaj na pod spodem:

LoadModule php7_module modules/libphp7.so
AddHandler php7-script php
Include conf/extra/php7_module.conf

Teraz zapisz i zamknij plik.

Testowanie PHP

Stwórz plik plik test.php  w domyślnym katalogu Apache

sudo nano /srv/http/test.php

wstaw poniższą zawartość:

<?php
phpinfo();

Zapisz i zrestartuj usługę httpd:

sudo systemctl restart httpd

Otwórz przeglądarkę i wpisz http://adres-ip/test.php , powinieneś uzyskać efekt jak na poniższym zrzucie:
Testowanie działania PHP. Manjaro

5. Instalacja phpMyAdmin

phpMyAdmin jest graficznym narzędziem do administrowania bazami MySQL/MariaDB. Umożliwia tworzenie, edytowanie i kasowanie baz danych.

Aby zainstalować, wykonaj polecenie:

sudo pacman -S phpmyadmin php-mcrypt

A następnie otwórz do edycji plik php.ini :

sudo nano /etc/php/php.ini

Upewnij się, że poniższe linie nie są zakomentowane:

[...]
extension=bz2.so
extension=mcrypt.so
extension=mysqli.so
[...]

Zapisz i zamknij plik.

Następnie utwórz plik konfiguracyjny dla phpMyAdmin:

sudo nano /etc/httpd/conf/extra/phpmyadmin.conf

i dodaj:

Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
DirectoryIndex index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>

Potem otwórz konfigurację Apache:

sudo nano /etc/httpd/conf/httpd.conf

i dodaj na końcu pliku poniższą linię:

Include conf/extra/phpmyadmin.conf

Zapisz i zamknij plik, a następnie zrestartuj usługę httpd:

sudo systemctl restart httpd

Testowanie phpMyAdmin

Otwórz w przeglądarce adres http://adres-IP/phpmyadmin/

Wpisz login i hasło administratora do MySQL/MariaDB.
Po zalogowaniu okienko phpMyAdmin-a powinno wyglądać mniej więcej tak:

Zapewne zobaczysz w dolnej części okna komunikat o błędzie „The configuration file now needs a secret passphrase (blowfish_secret)”. Aby go zlikwidować, otwórz plik konfiguracyjny:

sudo nano /etc/webapps/phpmyadmin/config.inc.php

Znajdź poniższą linię i zmień w niej domyślne sekretne hasło bluefish-a:

$cfg['blowfish_secret'] = '`MyP@$S`'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!$ /**

Następnie zapisz i zamknij plik, oraz zrestartuj Apache:

sudo systemctl restart httpd

Błąd nie powinien już się wyświetlać.

To by było na tyle. Masz już działający LAMP, gotowy do obsługi Twoich stron internetowych.

Powyższy poradnik jest, w mniejszym lub większym stopniu, tłumaczeniem tutoriala z forum Manjaro. Przetestowanym przeze mnie na działającym systemie.
Źródło: https://forum.manjaro.org/t/install-apache-mariadb-php-lamp-2016/1243