CentOS 7系統YUM快速安裝LNMP環境教程

來源:互聯網
上載者:User

源碼編譯安裝 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 http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
然後是 PHP YUM 源,PHP 最新的 RPM 包,可以使用 Remi's RPM repository。

匯入 PHP RPM-GPG-KEY (remi):

rpm --import http://rpms.remirepo.net/RPM-GPG-KEY-remi
安裝 PHP RPM (remi) 包:

rpm -Uvh http://remi.mirrors.arminco.com/enterprise/remi-release-7.rpm
最後是 Nginx YUM 源,Nginx 官網也給出了配置教程。

匯入 Nginx RPM-GPG-KEY:

rpm --import http://nginx.org/packages/keys/nginx_signing.key
安裝 Nginx RPM 包:

rpm -Uvh http://nginx.org/packages/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

wget https://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
樣本:

#添加一個標識為 domain 的網站
service vhost add domain domain.com,www.domain.com index.html,index.htm,index.php nomal.conf on

#啟動標識為 domain 的網站
service vhost start domain

#停止標識為 domain 的網站
service vhost stop domain

#編輯標識為 domain 的網站
service vhost edit domain

#刪除標識為 domain 的網站
service vhost del domain

#列出所有網站
service vhost list
備份資料

 service vbackup (start,list,del) <delete name.tar.gz>
start 添加
list 列出
del 刪除
樣本:

#添加一個新的備份
service vbackup start

#列出備份檔案
service vbackup list

#刪除一個備份
service vbackup del name.tar.gz

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.