CentOS7快速安裝LNMP環境

CentOS7快速安裝LNMP環境

源碼編譯安裝 LNMP 環境雖然便於自定義,但是對於小型服務器來說,漫長的編譯時間讓人無法等待。如果能在 10 分鐘內搞定環境安裝,那就很好了。

1、配置yum

CentOS 7 默認 yum 源裏的軟件包版本可能不是最新的,如果要安裝最新的軟件包就得配置下 yum 源。

配置 yum 源可以通過直接安裝 rpm (Red Hat Package Manager) 包,或者修改 Repository,本文講解通過安裝 rpm 方式。

1.1、安裝epel

首先需要安裝 EPEL ( Extra Packages for Enterprise Linux ) yum 源,用以解決部分依賴包不存在的問題

[root@localhost ~]# yum -y install epel-release

 

1.2、安裝MySQL

官方安裝MySQL源參考網址

https://dev.mysql.com/doc/mysql-repo-excerpt/5.6/en/linux-installation-yum-repo.html

 

安裝 rpm 包前需要導入 rpm-GPG-KEY 文件,不然安裝過程會出錯。將 MySQL rpm-GPG-KEY 另存爲 mysql_pubkey.asc 並導入

[root@localhost ~]# rpm --import mysql_pubkey.asc

 

導入後安裝 CentOS 7 MySQL rpm

[root@localhost ~]# rpm -Uvh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

1.3、安裝PHP

PHP 最新的 rpm 官方yum源包地址

http://rpms.remirepo.net/

 

導入 PHP rpm-GPG-KEY (remi)

[root@localhost ~]# rpm --import http://rpms.remirepo.net/rpm-GPG-KEY-remi

 

安裝 PHP rpm (remi)

[root@localhost ~]# rpm -Uvh http://remi.mirrors.arminco.com/enterprise/remi-release-7.rpm

 

1.4、安裝 Nginx 

官方安裝Nginx源參考網址

http://nginx.org/en/linux_packages.html

 

導入 Nginx rpm-GPG-KEY

[root@localhost ~]# rpm --import http://nginx.org/packages/keys/nginx_signing.key

 

安裝 Nginx rpm

[root@localhost ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/rpmS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

 

到目前爲止,yum 源已經安裝好了 ,接着進行下一步的配置。

2、修改相關的yum源文件

MySQL yum 源默認是啓用的 MySQL-5.6PHP yum 源默認都沒有啓用,Nginx yum 源默認是啓用的 Nginx-1.8。定位到 /etc/yum.repos.d/,對後綴爲 .repo 的文件進行編輯,修改 enabled 1 以啓用。

2.1、啓用 PHP-7.0yum

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

[root@localhost ~]# sed -i "/remi\/mirror/{n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi.repo

[root@localhost ~]# sed -i "/test\/mirror/{n;n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi.repo

[root@localhost ~]# sed -i "/php70\/mirror/{n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi-php70.repo

 

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

[root@localhost ~]# yum clean all

[root@localhost ~]# yum makecache

 

3、安裝 MySQL + PHP + Nginx + phpMyAdmin

yum 源已經配置好了,現在直接安裝 MySQL + PHP + Nginx + phpMyAdmin

[root@localhost ~]# 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-* 可以根據實際使用情況選擇安裝

4、修改MySQL + PHP + Nginx + phpMyAdmin的配置文件

安裝完成後,進行下一步的環境配置。

MySQL 配置文件在 /etc/my.cnf.d/

PHP 配置文件在 /etc/php-fpm.d/

Nginx 配置文件在 /etc/nginx/

phpMyAdmin 的配置文件在 /etc/phpMyAdmin/

4.1、配置 MySQL

MySQL 配置文件保持默認,運行一次安全配置即可。

4.1.1、啓動 MySQL

[root@localhost ~]# systemctl start mysqld.service

4.1.2、安全配置 MySQL

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

[root@localhost ~]# mysql_secure_installation

 

4.2、配置 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

[root@localhost ~]# systemctl start php-fpm.service

 

4.3、配置 Nginx

讓服務器默認訪問顯示爲 400 提示頁。

 

新建名爲 nginx-default.conf 的配置文件

[root@localhost ~]# touch /etc/nginx/conf.d/nginx-default.conf

編輯配置文件

[root@localhost ~]# vim /etc/nginx/conf.d/nginx-default.conf

#將以下信息輸入到 nginx-default.conf

server

{

    listen 80 default;

    return 400;

}

 

防火牆放行 HTTP 端口訪問:

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --reload

 

啓動 Nginx

[root@localhost ~]# systemctl start nginx.service

這時,在瀏覽器地址欄輸入當前服務器 IP 就會看到一個 400 的提示頁面了。

4.4、綁定域名+站點目錄+保存日誌+運行 PHP的配置文件

server

{

    #監聽80端口

listen 80;

#綁定域名 default.com www.default.com

server_name default.com www.default.com;

#設置首頁文件,越前優先級越高

index index.html index.htm index.php;

#設置網頁編碼

charset utf-8;

#設置站點根目錄

    root  /home/wwwroot/default;

 

    #運行 PHP

    location ~ .*\.php$

    {

         #默認使用9000端口和PHP通信

fastcgi_pass  127.0.0.1:9000

        #使用 unix sock PHP通信

#fastcgi_pass  unix:/dev/shm/php-fpm-default.sock;

        fastcgi_index index.php;

        #PHP文檔根目錄

  fastcgi_param DOCUMENT_ROOT  /home/wwwroot/default;

        #PHP 腳本目錄

fastcgi_param SCRIPT_FILENAME  /home/wwwroot/default$fastcgi_script_name;

        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;

}

 

4.5、配置 phpMyAdmin

[root@localhost ~]# 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 目錄

[root@localhost ~]# cp -a /usr/share/phpMyAdmin /home/wwwroot/default/

 

替換連接形式爲目錄

[root@localhost ~]# rm -rf /home/wwwroot/default/phpMyAdmin/doc/html

[root@localhost ~]# cp -a /usr/share/doc/phpMyAdmin-<span>*</span>/html /home/wwwroot/default/phpMyAdmin/doc/

 

5、一鍵腳本

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

 

安裝

[root@localhost ~]# yum install -y unzip

[root@localhost ~]# wget https://github.com/maicong/LNMP/archive/master.zip

[root@localhost ~]# unzip master.zip

[root@localhost ~]# cd LNMP-master

[root@localhost ~]# bash lnmp.sh

 

輸出到指定文件

[root@localhost ~]# bash lnmp.sh 2>&1 | tee lnmp.log

 

管理站點

[root@localhost ~]# 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 的站點

[root@localhost ~]# service vhost add domain domain.com,www.domain.com index.html,index.htm,index.php nomal.conf on

 

啓動標識爲 domain 的站點

[root@localhost ~]# service vhost start domain

 

停止標識爲 domain 的站點

[root@localhost ~]# service vhost stop domain

 

編輯標識爲 domain 的站點

[root@localhost ~]# service vhost edit domain

 

刪除標識爲 domain 的站點

[root@localhost ~]# service vhost del domain

 

列出所有站點

[root@localhost ~]# service vhost list

 

備份數據

[root@localhost ~]# service vbackup (start,list,del) <delete name.tar.gz>

start 添加

list 列出

del 刪除

 

示例:

添加一個新的備份

[root@localhost ~]# service vbackup start

 

列出備份文件

[root@localhost ~]# service vbackup list

 

刪除一個備份

[root@localhost ~]# service vbackup del name.tar.gz

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章