Questo tutorial mostra come installare un server Web Apache sul server CentOS 7 con PHP (mod_php) e database MySQL. L'acronimo LAMP è l'abbreviazione di L inux, A pache, M ySQL, P HP.
Questo tutorial aggiornato mostra l'installazione delle ultime versioni di PHP (7.0, 7.1 e 7.2) su CentOS 7.4.
1 Nota preliminare
In questo tutorial, utilizzo il nome host server1.example.com con l'IP p 192.168.1.100. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato.
Aggiungerò il repository EPEL qui per installare l'ultimo phpMyAdmin come segue:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release
Per modificare i file sulla shell, installerò l'editor nano. Se preferisci vi per la modifica dei file, salta questo passaggio.
yum -y install nano
2 Installazione di MySQL/MariaDB
MariaDB è un fork di MySQL dello sviluppatore MySQL originale Monty Widenius. MariaDB è compatibile con MySQL e ho scelto di utilizzare MariaDB qui invece di MySQL. Esegui questo comando per installare MariaDB con yum:
yum -y install mariadb-server mariadb
Quindi creiamo i collegamenti di avvio del sistema per MySQL (in modo che MySQL si avvii automaticamente ogni volta che il sistema si avvia) e avviamo il server MySQL:
systemctl start mariadb.service
systemctl enable mariadb.service
Imposta le password per l'account root MySQL:
mysql_secure_installation
[[email protected] ~]# mysql_secure_installation
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): <--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]
New password: <--yourmariadbpassword
Re-enter new password: <--yourmariadbpassword
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] <--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] <--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] <--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] <--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!
[[email protected] ~]#
3 Installazione di Apache
CentOS 7 viene fornito con Apache 2.4. Apache è direttamente disponibile come pacchetto CentOS 7, quindi possiamo installarlo in questo modo:
yum -y install httpd
Qui uno screenshot del processo di installazione.
Ora configura il tuo sistema per avviare Apache all'avvio...
systemctl start httpd.service
systemctl enable httpd.service
Per poter accedere al server web dall'esterno, dobbiamo aprire le porte HTTP (80) e HTTPS (443) nel firewall. Il firewall predefinito su CentOS è firewalld che può essere configurato con il comando firewalld-cmd.
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
Ora indirizza il tuo browser all'indirizzo IP del tuo server, nel mio caso http://192.168.1.100, e dovresti vedere la pagina segnaposto di Apache:
4 Installazione di PHP
La versione PHP fornita con CentOS come impostazione predefinita è piuttosto vecchia (PHP 5.4). Pertanto ti mostrerò in questo capitolo alcune opzioni per installare le versioni PHP più recenti come PHP 7.0 o 7.1 dal repository Remi.
Aggiungi il repository Remi CentOS.
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Installa yum-utils poiché abbiamo bisogno dell'utilità yum-config-manager.
yum -y install yum-utils
ed esegui l'aggiornamento yum
yum update
Ora devi scegliere quale versione di PHP vuoi usare sul server. Se ti piace usare PHP 5.4, vai al capitolo 4.1. Per installare PHP 7.0, segui i comandi nel capitolo 4.2, per PHP 7.1 capitolo 4.3 e per PHP 7.1, usa invece il capitolo 4.4. Segui solo uno dei capitoli 4.x e non tutti poiché puoi utilizzare solo una versione PHP alla volta con Apache mod_php.
4.1 Installa PHP 5.4
Per installare PHP 5.4, esegui questo comando:
yum -y install php
4.2 Installa PHP 7.0
Possiamo installare PHP 7.0 e il modulo Apache PHP 7.0 come segue:
yum-config-manager --enable remi-php70
yum -y install php php-opcache
4.3 Installa PHP 7.1
Se invece vuoi usare PHP 7.1, usa:
yum-config-manager --enable remi-php71
yum -y install php php-opcache
4.4 Installa PHP 7.2
Se invece vuoi usare PHP 7.2, usa:
yum-config-manager --enable remi-php72
yum -y install php php-opcache
In questo esempio e nella macchina virtuale scaricabile, userò PHP 7.2.
Dobbiamo riavviare Apache per applicare le modifiche:
systemctl restart httpd.service
5 Testare PHP / Ottenere dettagli sull'installazione di PHP
La radice del documento del sito Web predefinito è /var/www/html. Creeremo un piccolo file PHP (info.php) in quella directory e lo chiameremo in un browser per testare l'installazione di PHP. Il file mostrerà molti dettagli utili sulla nostra installazione di PHP, come la versione di PHP installata.
nano /var/www/html/info.php
<?php phpinfo();
Ora chiamiamo quel file in un browser (es. http://192.168.1.100/info.php):
Come vedi, PHP 7.2 funziona e funziona tramite il gestore Apache 2.0, come mostrato nella riga dell'API del server. Se scorri più in basso, vedrai tutti i moduli che sono già abilitati in PHP. MySQL non è elencato lì, il che significa che non abbiamo ancora il supporto MySQL in PHP.
6 Ottenere supporto MySQL in PHP
Per ottenere il supporto MySQL in PHP, possiamo installare il pacchetto php-mysqlnd. È una buona idea installare alcuni altri moduli PHP e potresti averne bisogno per le tue applicazioni. Puoi cercare i moduli PHP5 disponibili in questo modo:
yum search php
Scegli quelli che ti servono e installali in questo modo:
yum -y install php-mysqlnd php-pdo
Nella fase successiva installerò alcuni moduli PHP comuni richiesti dai sistemi CMS come Wordpress, Joomla e Drupal:
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel
Ora riavvia il server web Apache:
systemctl restart httpd.service
Ora ricarica http://192.168.1.100/info.php nel tuo browser e scorri di nuovo verso il basso fino alla sezione dei moduli. Ora dovresti trovare molti nuovi moduli come curl ecc.:
Se non hai più bisogno dell'output delle informazioni php, elimina quel file per motivi di sicurezza.
rm /var/www/html/info.php
7 installazione di phpMyAdmin
phpMyAdmin è un'interfaccia web attraverso la quale puoi gestire i tuoi database MySQL.
phpMyAdmin ora può essere installato come segue:
yum -y install phpMyAdmin
Ora configuriamo phpMyAdmin. Cambiamo la configurazione di Apache in modo che phpMyAdmin consenta connessioni non solo da localhost (commentando la stanza
nano /etc/httpd/conf.d/phpMyAdmin.conf
[...]
Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin <Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
# <RequireAny>
# Require ip 127.0.0.1
# Require ip ::1
# </RequireAny>
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
<Directory /usr/share/phpMyAdmin/> Options none AllowOverride Limit Require all granted </Directory>
[...]
Successivamente, modifichiamo l'autenticazione in phpMyAdmin da cookie a http:
nano /etc/phpMyAdmin/config.inc.php
[...] $cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)? [...]
Riavvia Apache:
systemctl restart httpd.service
Successivamente, puoi accedere a phpMyAdmin da http://192.168.1.100/phpmyadmin/:
8 Scarica come macchina virtuale
Questa configurazione è disponibile come download della macchina virtuale in formato ova/ovf (compatibile con VMWare e Virtualbox) per gli abbonati howtoforge.
Dettagli di accesso per la VM
- La password di root di Linux è:howtoforge.
- La password principale di MySQL è:howtoforge
Modifica entrambe le password al primo accesso.
- L'indirizzo IP della VM è 192.168.1.100
9 link
Apache:http://httpd.apache.org/
PHP:http://www.php.net/
MySQL:http://www.mysql.com/
CentOS:http://www.centos.org/
phpMyAdmin:http://www.phpmyadmin.net/