歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> CentOS 7 YUM 10分鐘快速安裝 LNMP 環境詳細教程

CentOS 7 YUM 10分鐘快速安裝 LNMP 環境詳細教程

日期:2017/3/3 11:35:28   编辑:Linux技術



源碼編譯安裝
LNMP 環境雖然便於自定義,但是對於小型服務器來說,漫長的編譯時間讓人無法等待。如果能在 10 分鐘後內搞定環境安裝,再好不多了。
那麼如何在 10 分鐘內快速安裝完
LNMP 環境呢,答案是 使用 YUM 安裝

什麼 YUM ?

官網給出的解釋
yum is a software package manager that installs, updates, and removes packages on RPM-based systems. It automatically computes dependencies and figures out what things should occur to install packages. yum makes it easier to maintain groups of machines without
having to manually update each one using rpm.
Features include:
Support for multiple repositories
Simple configuration
Dependency calculation
Fast operation
RPM-consistent behavior
Package group support, including multiple-repository groups
Simple interface
其中有兩條解釋很明顯,Simple configuration —— 簡單配置Fast operation ——快速操作

配置安裝

基於 YUM 的這種特性,那麼就可以簡單粗暴的安裝 LNMP 環境了。
配置 YUM 源
CentOS 7 的 默認 YUM 源裡的軟件包版本可能不是最新的,如果要安裝最新的軟件包就得配置下 YUM 源。
配置 YUM 源可以通過直接安裝 RPM (Red Hat Package Manager) 包,或者修改 Repository,本文講解通過安裝 RPM 方式。
首先需要安裝 EPEL ( Extra Packages for Enterprise Linux ) YUM 源,用以解決部分依賴包不存在的問題:
yum install -y epel-release

接著是 MySQL YUM 源,MySQL 官網給出了配置教程,因為本文章講解的是 CentOS 7,我們只需要安裝對應的
RPM 包就行了。
安裝 RPM 包前需要導入 RPM-GPG-KEY 文件,不然安裝過程會出錯。

MySQL RPM-GPG-KEY 另存為
mysql_pubkey.asc
並導入 :
rpm --import mysql_pubkey.asc

導入後安裝 CentOS 7 的 MySQL RPM 包:
rpm -Uvh' target='_blank'>http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm[/code] 然後是 PHP YUM 源,PHP 最新的 RPM 包,可以使用 Remi's RPM repository。
導入
PHP RPM-GPG-KEY (remi):
rpm --import' target='_blank'>http://rpms.remirepo.net/RPM-GPG-KEY-remi[/code] 安裝 PHP RPM (remi) 包:
rpm -Uvh' target='_blank'>http://remi.mirrors.arminco.com/enterprise/remi-release-7.rpm[/code] 最後是 Nginx YUM 源,Nginx 官網也給出了配置教程。
導入
Nginx RPM-GPG-KEY:
rpm --import' target='_blank'>http://nginx.org/packages/keys/nginx_signing.key[/code] 安裝 Nginx RPM 包:
rpm -Uvhhttp://nginx.org/packages/ href="http://www.luoxiao123.cn/tag/centos" target=_blank>centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

到目前為止,YUM 源已經安裝好了 ,接著進行下一步的配置。
MySQL YUM 源默認是啟用的 MySQL-5.6,PHP YUM 源默認都沒有啟用,Nginx YUM 源默認是啟用的 Nginx-1.8。
定位到
/etc/yum.repos.d/
,對 後綴為
.repo
的文件進行編輯,修改
enabled
1
以啟用。
啟用 PHP-7.0 :
1、修改 /etc/yum.repos.d/remi.repo,將 [remi] 和 [remi-test] 下面的 enabled=0 改為 enabled=1;
2、修改 /etc/yum.repos.d/remi-php70.repo,將 [remi-php70] 下面的 enabled=0 改為 enabled=1;
sed -i "/remi\/mirror/{n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi.repo
sed -i "/test\/mirror/{n;n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi.repo
sed -i "/php70\/mirror/{n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi-php70.repo

到這一步 YUM 配置就算完成了,清除並生成 YUM 緩存使之生效:
yum clean all
yum makecache

安裝 MySQL + PHP + Nginx + phpMyAdmin
YUM 源已經配置好了,現在直接安裝 MySQL + PHP + Nginx + phpMyAdmin:
yum install -y mysql-community-server nginx php php-bcmath php-fpm php-gd php-json php-mbstring php-mcrypt php-mysqlnd php-opcache php-pdo php-pdo_dblib php-pgsql php-recode php-snmp php-soap php-xml php-pecl-zip phpMyAdmin

注:上面安裝的
php-*
可以根據實際使用情況選擇安裝
安裝完成後,進行下一步的環境配置,MySQL 配置文件在
/etc/my.cnf.d/
,PHP 配置文件在
/etc/php-fpm.d/
,Nginx 配置文件在
/etc/nginx/
,phpMyAdmin的配置文件在
/etc/phpMyAdmin/

配置 MySQL
MySQL 配置文件保持默認,運行一次安全配置即可。
啟動 MySQL:
systemctl start mysqld.service

安全配置 MySQL:
設置 root 密碼、刪除匿名用戶、禁止 root 遠程登錄、刪除 test 數據庫、重新加載權限表,一路
Y
下去
mysql_secure_installation

配置 PHP
PHP 默認配置文件使用的是監聽 9000 端口進行通信,針對小型單一、沒有做負債均衡的服務器,可以使用 unix sock 方式通信。
使用 unix sock 方式需要修改 PHP 配置文件:
#更換監聽方式
listen = /dev/shm/php-fpm-default.sock

#監聽隊列最大長度為不限
listen.backlog = -1
#指定監聽用戶和用戶組(需存在)
listen.owner = www
listen.group = www

啟動 PHP-FPM:
systemctl start php-fpm.service

配置 Nginx
讓服務器默認訪問顯示為 400 提示頁。
#新建名為 nginx-default.conf 的配置文件
touch /etc/nginx/conf.d/nginx-default.conf
#編輯配置文件
vi /etc/nginx/conf.d/nginx-default.conf

將以下信息輸入到 nginx-default.conf
server
{
    listen 80 default;
    return 400;
}

按下
Esc
,輸入
:x
保存並退出。
防火牆放行 HTTP 端口訪問:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload

啟動 Nginx:
systemctl start nginx.service

這時,在浏覽器地址欄輸入當前服務器 IP 就會看到一個 400 的提示頁面了。
進階!綁定域名+站點目錄+保存日志+運行 PHP的配置文件:
server
{
    listen 80; #監聽80端口
    server_name default.com www.default.com; #綁定域名 default.com 和 www.default.com
    index index.html index.htm index.php; #設置首頁文件,越前優先級越高
    charset utf-8; #設置網頁編碼

    root  /home/wwwroot/default; #設置站點根目錄

    #運行 PHP
    location ~ .*\.php$
    {
        fastcgi_pass  127.0.0.1:9000 #默認使用9000端口和PHP通信
        #fastcgi_pass  unix:/dev/shm/php-fpm-default.sock; #使用 unix sock 和PHP通信
        fastcgi_index index.php;
        fastcgi_param DOCUMENT_ROOT  /home/wwwroot/default; #PHP 文檔根目錄
        fastcgi_param SCRIPT_FILENAME  /home/wwwroot/default$fastcgi_script_name; #PHP 腳本目錄
        include fastcgi_params;
        try_files $uri = 404;
    }

    #設置文件過期時間
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|wma)$
    {
        expires      30d;
    }

    #設置文件過期時間
    location ~ .*\.(js|css)$
    {
        expires      12h;
    }

    #設置文件訪問權限
    location ~* /templates(/.*)\.(bak|html|htm|ini|old|php|tpl)$ {
        allow 127.0.0.1;
        deny all;
    }

    #設置文件訪問權限
    location ~* \.(ftpquota|htaccess|htpasswd|asp|aspx|jsp|asa|mdb)?$ {
        deny all;
    }

    #保存日志
    access_log /var/log/nginx/default-access.log main;
    error_log /var/log/nginx/default-error.log crit;
}

配置 phpMyAdmin
# 編輯配置文件
vi etc/phpMyAdmin/config.inc.php

修改以下內容:
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '/var/lib/mysql/mysql.sock';
$cfg['Servers'][$i]['connect_type'] = 'socket';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['UploadDir'] = '/tmp';
$cfg['SaveDir'] = '/tmp';

如果Nginx使用的是上面的進階代碼,那麼把
phpMyAdmin
的目錄 復制到
/home/wwwroot/default/phpMyAdmin/
下面,就可通過
http://default.com/phpMyAdmin
訪問了:
#復制 phpMyAdmin目錄
cp -a /usr/share/phpMyAdmin/home/wwwroot/default/
#替換連接形式為目錄
rm -rf /home/wwwroot/default/phpMyAdmin/doc/html
cp -a /usr/share/doc/phpMyAdmin-<span class="pl-k">*</span>/html /home/wwwroot/default/phpMyAdmin/doc/

一鍵腳本

上面已經講解了如何配置和安裝,但是不能每次都這麼一步一步來吧?為了節省時間,麥蔥寫了一個一鍵安裝管理腳本,可選擇安裝
Nginx 1.8/1.9
MySQL 5.5/5.6/5.7

PHP 5.5/5.6/7.0

安裝
yum install -y unzip

wgethttps://github.com/maicong/LNMP/archive/master.zip 
unzip master.zip

cd LNMP-master

bash lnmp.sh

# 輸出到指定文件
# bash lnmp.sh 2>&1 | tee lnmp.log

管理站點
service vhost (start,stop,list,add,edit,del,exit) <domain> <server_name> <index_name> <rewrite_file> <host_subdirectory>

start
啟動
stop
停止
list
列出
add
添加
edit
編輯
del
刪除
exit
什麼都不做
<domain>: 配置名稱,例如:
domain

<server_name>: 域名列表,例如:
domain.com,www.domain.com

<index_name>: 首頁文件,例如:
index.html,index.htm,index.php

<rewrite_file>: 偽靜態規則文件,保存在
/etc/nginx/rewrite/
例如:
nomal.conf

<host_subdirectory>: 是否支持子目錄綁定,
on
或者
off
Copyright © Linux教程網 All Rights Reserved