Il seguente articolo ti guiderà attraverso i passaggi su come installare LEMP (Linux, Nginx, MariaDB e PHP-FPM) su uno dei nostri CentOS 7 Server virtuali Linux .
Se invece stai cercando come impostare LAMP , quindi fai riferimento alla nostra guida su come installare LAMP (Linux Apache, MariaDB e PHP) su un VPS CentOS 7
Cos'è LEMP?
Un LEMP stack è sinonimo di LEMP server o LEMP server web. Si riferisce a una configurazione che include Linux , Nginx , MariaDB (MySQL) e PHP .
AGGIORNAMENTO DEL SISTEMA
Come al solito, SSH
sul tuo VPS Linux, avvia una screen
sessione e assicurati che il tuo CentOS 7 è completamente aggiornato eseguendo i seguenti comandi:
## screen -U -S lemp-centos7 ## yum update
INSTALLA MARIA DB (MYSQL)
MariaDB è un sostituto drop-in di MySQL ed è il server di database predefinito utilizzato in CentOS 7 (RHEL7) . Procedi con l'installazione usando yum
come in:
## yum install mariadb mariadb-server mysql
Quindi, apri /etc/my.cnf.d/server.cnf
utilizzando il tuo editor di testo preferito e aggiungi bind-address = 127.0.0.1
all'interno di [mysqld]
bloccare. Ad esempio:
## vim /etc/my.cnf.d/server.cnf [mysqld] #log-bin=mysql-bin #binlog_format=mixed bind-address = 127.0.0.1
Questo legherà MariaDB a ascoltare solo su localhost , che è considerata una buona pratica di sicurezza. OK, ora riavvia il server del database MariaDB e abilitalo all'avvio all'avvio del sistema utilizzando:
## systemctl restart mariadb ## systemctl status mariadb ## systemctl enable mariadb
Facoltativamente, puoi eseguire mysql_secure_installation
script post-installazione per migliorare la sicurezza dell'installazione di MariaDB (MySQL) . Ad esempio:
## mysql_secure_installation Enter current password for root (enter for none): ENTER Set root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
INSTALLA SERVER HTTP NGINX
Nginx
non è ancora disponibile in CentOS 7 repository ufficiali al momento della stesura di questo articolo. Quindi, per essere facilmente installato e gestito usando yum
, possiamo utilizzare il repository per l'ultima versione stabile di Nginx per CentOS 7.
Ad esempio:
## rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm ## yum install nginx
Una volta installato, esegui il seguente comando per scoprire il numero di CPU disponibili nel tuo SSD VPS:
## grep -c processor /proc/cpuinfo 2
Questo numero dovrebbe rappresentare il numero di nginx
processi impostati nel file di configurazione principale di Nginx in /etc/nginx/nginx.conf
.
## vim /etc/nginx/nginx.conf ... worker_processes 2;
Arresta Apache se è in esecuzione sul sistema utilizzando il seguente comando:
## [[ $(pgrep httpd) ]] && ( systemctl stop httpd; systemctl disable httpd )
e testa, avvia e aggiungi Nginx all'avvio del sistema utilizzando:
## nginx -t ## systemctl restart nginx ## systemctl enable nginx
Vai a http://server_ip e dovresti ottenere qualcosa come:
Ciò significa che Nginx è attivo e funzionante.
INSTALLA PHP-FPM
Eseguiremo PHP come FastCGI utilizzando PHP-FPM , quindi installa il supporto PHP usando yum
:
## yum install php-fpm php-mysql
inoltre, potresti voler installare altre estensioni PHP richiesto dalle vostre applicazioni. Ecco l'elenco:
php-bcmath : A module for PHP applications for using the bcmath library php-cli : Command-line interface for PHP php-common : Common files for PHP php-dba : A database abstraction layer module for PHP applications php-devel : Files needed for building PHP extensions php-embedded : PHP library for embedding in applications php-enchant : Enchant spelling extension for PHP applications php-fpm : PHP FastCGI Process Manager php-gd : A module for PHP applications for using the gd graphics library php-intl : Internationalization extension for PHP applications php-ldap : A module for PHP applications that use LDAP php-mbstring : A module for PHP applications which need multi-byte string handling php-mysql : A module for PHP applications that use MySQL databases php-mysqlnd : A module for PHP applications that use MySQL databases php-odbc : A module for PHP applications that use ODBC databases php-pdo : A database access abstraction module for PHP applications php-pear.noarch : PHP Extension and Application Repository framework php-pecl-memcache : Extension to work with the Memcached caching daemon php-pgsql : A PostgreSQL database module for PHP php-process : Modules for PHP script using system process interfaces php-pspell : A module for PHP applications for using pspell interfaces php-recode : A module for PHP applications for using the recode library php-snmp : A module for PHP applications that query SNMP-managed devices php-soap : A module for PHP applications that use the SOAP protocol php-xml : A module for PHP applications which use XML php-xmlrpc : A module for PHP applications which use the XML-RPC protocol
Modifica il file di configurazione principale di PHP in /etc/php.ini
e impostare quanto segue:
## vim /etc/php.ini date.timezone = America/New_York memory_limit = 64M expose_php = Off
Inoltre, modifica /etc/php-fpm.d/www.conf
e cambia l'utente e il gruppo in cui verrà eseguito il pool fpm in nginx
:
## vim +/^user /etc/php-fpm.d/www.conf user = nginx group = nginx
proprietà della directory del registro di configurazione:
## chown nginx:root -R /var/log/php-fpm/
avvia e aggiungi il server PHP all'avvio del sistema utilizzando systemctl
## systemctl restart php-fpm ## systemctl enable php-fpm
CONFIGURAZIONE VHOST NGINX
Supponiamo che tu abbia un dominio mydomain.com
e ti piace usarlo per ospitare un'applicazione web basata su PHP in /srv/www/mydomain.com.com
come WordPress, Joomla, Laravel ecc. Per impostare Nginx, servi le richieste per mydomain.com
e servi gli script PHP in /srv/www/mydomain.com.com
dovresti creare un blocco server in /etc/nginx/conf.d/mydomain.com.conf
che assomiglierebbe a:
## vim /etc/nginx/conf.d/mydomain.com.conf server { server_name mydomain.com; listen 80; root /srv/www/mydomain.com; access_log /var/log/nginx/mydomain.com-access.log; error_log /var/log/nginx/mydomain.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ /\.ht { deny all; } location ~ \.php { try_files $uri = 404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
prova e riavvia Nginx usando:
## nginx -t ## systemctl restart nginx
Facoltativamente, crea un test info.php
script utilizzando il comando seguente:
## mkdir -p /srv/www/mydomain.com ## echo -e "<?php\n\tphpinfo();" > /srv/www/mydomain.com/info.php ## chown nginx: -R /srv/www/
e prova ad accedervi nel tuo browser all'indirizzo http://miodominio.com/info.php
Ovviamente non devi fare nulla di tutto ciò se utilizzi uno dei nostri servizi di hosting VPS Linux, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di installare LEMP per te . Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta. Puoi anche provare a leggere la nostra guida su Come installare LEMP (Linux, Nginx, MySQL e PHP-FPM) su un VPS Debian 8.
PS. Se questo post ti è piaciuto condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o semplicemente lascia una risposta qui sotto. Grazie.