1. 程式人生 > >阿里雲ECS之完整流程搭建:CentOS 7.3+Nginx 1.12.1+php 7.2 + MaraiaDB 5.5.52 + PhpMyAdmin 4.6.6

阿里雲ECS之完整流程搭建:CentOS 7.3+Nginx 1.12.1+php 7.2 + MaraiaDB 5.5.52 + PhpMyAdmin 4.6.6

大神們,請跳過~~~

【背景】

本人客戶端專業戶,簡單用用php,搭建伺服器屬於小白中的小白。去年買了低配阿里雲做測試服順便掛了個個人網站及堆放了些資源,最初是硬著頭皮據“甯浩網”的系列視訊教程搭建了一個apache+php+mysql的伺服器,被各種配置搞得頭大,但還算穩定。

幾天前突然域名無法訪問,IP無法訪問,致電阿里雲客服,讓重啟,沒解決;提交了兩次工單最終算是解決了一半,主要是我不懂這方面的技術,最後我就說,我不在乎安全性這些,只要伺服器能訪問就行讓對接的阿里雲技術客服幫助修改:結果預設開啟的是apache的首頁抓狂,自己又不會配置,感覺自己實在駕馭不了,配置又低,最近一個APP又要求並行連線比較大,索性重灌為NGINX。

首先是各種百度,各種嘗試,跳了不少坑。網上也有不錯且完整的帖子,但是有些步驟實在是無法實操。最終經過各種查閱及實際操做才有了本篇文章,現在網站能正常訪問了,資源也能正常訪問了,不容易且Happy!!! 

斷斷續續搞了2天,邊測試搭建,邊寫文章留存,總共七大步,過程也比較詳細,特此留存備忘。

【一.重置系統】

1.登陸阿里雲進入控制檯。

2.找到例項,停止該伺服器。

3.選擇“更多”下的“更換系統盤”,

4.選擇Centos 7.3,並設定新的登陸密碼

5.點選確定,驗證手機號,重置後會自動重啟系統。

【二.重置Mac 終端ssh認證】

1.第一次使用SSH連線時,會生成一個認證,儲存在客戶端的known_hosts中.

2.由於伺服器重新安裝系統了,所以會出現以上錯誤。

解決辦法:ssh-keygen -R 伺服器端的ip地址

3.退出ssh連線:quit 回車

【三.FTP相關】

{1.安裝vsftpd}

#安裝vsftpd
yum install -y vsftpd
#設定開機啟動
systemctl enable vsftpd.service 
# 重啟
service vsftpd restart
# 檢視vsftpd服務的狀態
systemctl status vsftpd.service

{2.關閉匿名訪問}

如需關閉FTP匿名使用者訪問,需修改配置檔案/etc/vsftpd/vsftpd.conf,將anonymous_enable=YES修改為anonymous_enable=NO,重啟Vsftpd服務即可。

備份配置檔案: cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
vi /etc/vsftpd/vsftpd.conf輸入 i 進入編輯模式進行修改儲存修改:按鍵 esc
退出文件直接輸入   :wq

{3.新增FTP賬號}

示例:建立系統使用者 ftpadmin,分別設定密碼為123456:
useradd  ftpadmin
echo 123456|passwd --stdin  ftpadmin

【四.安裝Nginx】

1.先解除安裝老版本
yum remove nginx  
2.編輯nginx的yum源配置
vi /etc/yum.repos.d/nginx.repo 
往裡面寫入:
[nginx]  
name=nginx repo  
baseurl=http://nginx.org/packages/centos/7/x86_64/  
gpgcheck=0  
enabled=1  

i:插入esc:儲存:wq:退出文件3.安裝
yum install nginx  

4.啟動
service nginx start
5.開機啟動
systemctl enable nginx

6.檢視nginx 版本 
nginx -v

7.檢視程序 
ps aux|grep nginx
8.配置nginx解析PHP

命令:vi  /etc/nginx/nginx.conf;【可選】
編輯文件:
user  nginx;
worker_processes  2;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;


    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';


    access_log  /var/log/nginx/access.log  main;


    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  300;
   #gzip  on;


    proxy_read_timeout 3s;
    proxy_buffer_size   256k;
    proxy_buffers   4 256k;
    proxy_busy_buffers_size   256k;
    client_header_buffer_size 256k;
    large_client_header_buffers 4 256k;
    client_max_body_size 256m;
    fastcgi_buffer_size 256k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256m;
    fastcgi_temp_file_write_size 256m;

    include /etc/nginx/conf.d/*.conf;
}

i:插入esc:儲存:wq:退出文件

命令:cd  /etc/nginx/conf.d【必選】

ls

vi default.conf

主要有如下步驟:

  • 設定 root 根目錄

  • 新增 index.php 為預設目錄首頁請求

  • 修改 server_name ,新增域名或 IP

  • 定義 404 等錯誤頁面的規則

  • 配置 PHP 處理模組,主要調整 location ~ \.php$ { 部分,尤其注意 fastcgi_pass unix: 指向的 php-fpm.sock 路徑是否正確;

  • 儲存後重啟 nginx 服務

server {
    listen       80;
    server_name  www.***.com【域名或IP】;

    # note that these lines are originally from the "location /" block
    root   /www;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /www;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

儲存後重啟 nginx 服務: service nginx restart

在根目錄新增一個 phpinfo 的 php 檔案,開啟瀏覽器進行測試是否正常顯示。成功後刪除測試頁面。

如果瀏覽器測試無法正常顯示,嘗試在“安全組”新增80埠規則】


【注意】因該配置檔案(/etc/nginx/conf.d/default.conf)包含配置:root  /www;即網站根目錄重定向到了伺服器根目錄下的www目錄,預設該目錄不存在,則命令列建立該目錄:mkdir /www/通常為方便傳輸更新網站資源會用FTP方式操作該目錄下的檔案,則需要指定該目錄的操作許可權為【第三.3步】ftpadmin使用者所有:
chown -R ftpadmin /www/
chmod 755 -R /www/


此時可正常使用FileZilla等FTP工具正常上傳下載www目錄下的檔案資源了。【如果FTP客戶端連線FTP失敗,配置如下:】
點選“連線”後,會彈出如下視窗。

【五.安裝 php7】

執行下面的命令刪除php

yum remove php* php-common

建立 php7 的 yum 源

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

執行下面的命令安裝(升級)軟體倉庫【該句不應分行執行,編輯下,單行執行該命令】

yum install -y php72w php72w-fpm php72w-xml php72w-json php72w-mcrypt php72w-gd php72w-devel 
php72w-mysql php72w-intl php72w-mbstring php72w-tokenizer php72w-pdo php72w-ctype php72w-openssl
php72w-bcmath

用 yum repolist all 檢視所有 repo,檢查是否配置成功。

也可以用 yum list installed | grep php 檢視 php 套件安裝情況。
用 php -v 檢視當前版本。

配置 php-fpm

找到你的 php-fpm.sock 檔案,將該路徑配置到 php-fpm 的 conf 檔案中

find / -name www.conf
vi /etc/php-fpm.d/www.conf

修改 www.conf 如下

listen = /run/php-fpm/php-fpm.sock

php-fpm 的 user/group 要和 webserver 的所有權一致,如我在 CentOS7 下,用 nginx 使用者 執行 nginx 服務,則修改 php-fpm 的 www.conf 配置如下:

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

user = nginx
group = nginx

重啟 php-fpm 服務,並加入到系統自啟動中:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

如果重啟後,php 服務還是不成功,可能還需執行 chown nginx:nginx /run/php-fpm/php-fpm.sock 後再重啟。


【六.安裝 MySQL (MariaDB)】

1.檢查是否MariaDB是否已經存在,存在則刪除,並重新安裝

先檢視是否已經存在服務
rpm -qa|grep mariadb
mariadb-libs-5.5.52-1.el7.x86_64
如果存在,移除, 中間要確定 選擇  y
yum remove mariadb* 
開始下載yum下載,記得y:
yum install mariadb*
啟動服務:
systemctl start mariadb.service
開機自動啟動:
systemctl enable mariadb.service
設定許可權:
mysql_secure_installation

首先是設定密碼,會提示先輸入密碼【初次執行直接回車】
Enter current password for root (enter for none):<–初次執行直接回車設定密碼
Set root password? [y/n] <– 是否設定root使用者密碼,輸入y並回車或直接回車
New password: <– 設定root使用者的密碼 【測試連線資料庫會用到該密碼】
Re-enter new password: <– 再輸入一次你設定的密碼


其他配置
Remove anonymous users? [y/n] <– 是否刪除匿名使用者,y回車
Disallow root login remotely? [y/n] <–是否禁止root遠端登入, n回車,
Remove test database and access to it? [y/n] <– 是否刪除test資料庫,y回車
Reload privilege tables now? [Y/n] <– 是否重新載入許可權表,y回車

初始化MariaDB完成,接下來測試登入

mysql -uroot -ppasswordpassword為{New password:<– 設定root使用者的密碼 【測試連線資料庫會用到該密碼】}上面的這個步驟設定的新密碼】【以下為成功連線DB顯示的資訊】

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 10

Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

退出MariaDB連線:\q 回車

2、配置MariaDB的字符集

檔案/etc/my.cnf
vi /etc/my.cnf
在[mysqld]標籤下新增
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake

(ESC 儲存文件    
:wq 退出文件)


檔案/etc/my.cnf.d/client.cnf
vi /etc/my.cnf.d/client.cnf
在[client]中新增
default-character-set=utf8
(ESC 儲存文件    :wq 退出文件)

檔案/etc/my.cnf.d/mysql-clients.cnf
vi /etc/my.cnf.d/mysql-clients.cnf
在[mysql]中新增
default-character-set=utf8
(ESC 儲存文件    :wq 退出文件)


此時,全部配置完成,重啟mariadb
systemctl restart mariadb

之後進入MariaDB檢視字符集

mysql -uroot -p******

MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";

顯示為

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client    | utf8                      |
| character_set_connection | utf8                      |
| character_set_database  | utf8                      |
| character_set_filesystem | binary                    |
| character_set_results    | utf8                      |
| character_set_server    | utf8                      |
| character_set_system    | utf8                      |
| character_sets_dir      | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


+----------------------+-----------------+
| Variable_name        | Value          |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database  | utf8_unicode_ci |
| collation_server    | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

至此,字符集配置完成。

3、新增使用者,設定許可權
建立使用者命令
MariaDB [(none)]> create user username@localhost identified by 'password';

【--------分割線start  以下為擴充套件----------】

直接建立使用者並授權的命令
mysql>grant all on *.* to [email protected] indentified by 'password';
授予外網登陸許可權 
mysql>grant all privileges on *.* to [email protected]'%' identified by 'password';
授予許可權並且可以授權
mysql>grant all privileges on *.* to [email protected]'hostname' identified by 'password' with grant option;
簡單的使用者和許可權配置基本就這樣了。
其中只授予部分許可權把 其中 all privileges或者all改為select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file其中一部分。

一般不允許使用管理員賬戶遠端連線資料庫,及預設的root使用者。該使用者一般許可權為最大,考慮安全因素,我們通常只會賦予root使用者資料庫伺服器所在機器的本地連線訪問許可權。
MariaDB的使用者賬號不僅包含使用者名稱,還包含客戶端連線點的主機名、域名、IP地址。這個兩個重要元素組成了賬戶。
資料庫的賬戶與訪問主機的主機名、域名、IP地址組成了賬戶,賬戶與主機相關資訊均需要分別用單引好(’)區分開。
賬號語法: 
‘db_id’@’HOSTNAME | 域名 |IP’ 
其語法以使用者名稱開始,@作為分割符,最後是使用者連線MariaDB伺服器的客戶端連線主機資訊。
例如,root使用者按一下注冊,將只有在DB伺服器本地可連線MariaDB伺服器,外部其他伺服器均無法連線。 
‘root’@’127.0.0.1’
例如,需要所有外部主機連線,只需要將連線MariaDB伺服器的客戶端連線主機部分修改為’%’。 
‘root’@’%’

【--------分割線end  以上為擴充套件----------】

【七.安裝 phpmyadmin】

安裝phpmyadmin過程中會有解壓的步驟,檢測是否安裝了zip和unzip命令:

 zip
-bash: zip: command not found【表示未安裝zip】

unzip
-bash: unzip: command not found【表示未安裝unzip】

安裝命令:yum install zip unzip

然後去官網下載並解壓phpmyadmin:

wget https://files.phpmyadmin.net/phpMyAdmin/4.6.6/phpMyAdmin-4.6.6-all-languages.zip
unzip phpMyAdmin-4.6.6-all-languages.zip -d /www

複製預設配置

cp /www/phpMyAdmin-4.6.6-all-languages/config.sample.inc.php /www/phpMyAdmin-4.6.6-all-languages/config.inc.php

如果瀏覽器打開出現如下錯誤:

session_start(): open(SESSION_FILE, O_RDWR) failed: Permission de

則修改報錯資訊檔案的所有權,如下:

chown nginx:nginx /var/lib/php/session

【完】

此時,開啟瀏覽器,位址列輸入:伺服器IP地址/phpMyAdmin-4.6.6-all-languages/

然後輸入MariaDB新建立的使用者名稱和密碼即可開啟此頁面。


相關推薦

阿里ECS完整流程搭建:CentOS 7.3+Nginx 1.12.1+php 7.2 + MaraiaDB 5.5.52 + PhpMyAdmin 4.6.6

大神們,請跳過~~~【背景】本人客戶端專業戶,簡單用用php,搭建伺服器屬於小白中的小白。去年買了低配阿里雲做測試服順便掛了個個人網站及堆放了些資源,最初是硬著頭皮據“甯浩網”的系列視訊教程搭建了一個apache+php+mysql的伺服器,被各種配置搞得頭大,但還算穩定。幾

阿里ECS例項 CentOS7 下搭建LNMP(Linux+Nginx+Mariadb+PHP)教程

一:安裝Nginx 1.下載對應當前系統版本的nginx包(package) wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 2

阿里ECS伺服器選購流程

1、首先開啟雲伺服器購買連結 https://www.aliyun.com/product/ecs?spm=5176.8142029.selected.1.c5fc6d3esppYhf 點選立即購買 2、選擇伺服器的地域 3、選擇例項規格 一般我們選擇 **計

阿里伺服器Ubuntu環境搭建筆記(二)——軟體安裝

1.嘗試安裝screen,輸入命令:apt install screen 輸出:Reading package lists... Done Building dependency tree        Reading state informatio

阿里伺服器Ubuntu環境搭建筆記(一)

1.阿里雲免費套餐:https://free.aliyun.com/ntms/free/personal.html?handle=true 選擇第一個雲伺服器ECS,選擇免費體驗一個月 2.更多收費的雲伺服器連結:https://www.aliyun.com/product/ecs?sp

阿里ECS伺服器購買流程

阿里ECS雲伺服器購買流程 本文提供全圖文流程,中文翻譯。 Chinar 堅持將簡單的生活方式,帶給世人!(擁有更好的閱讀體驗 —— 高解析度使用者請根據需求調整網頁縮放比例) Chi

阿里伺服器Tomcat環境搭建以及域名繫結

上一步主要主要講解在伺服器中建立自己的hexo部落格環境,最後達到可以遠端訪問,以及遠端git推送到github。這章主要講解Tomcat環境的搭建,以及域名解析。到這裡你的伺服器以及可以被全世界的人民訪問了。掌聲送給自己吧!! 1.Tomca

阿里ECS ubuntu 14.04 搭建svn以及使用實踐記錄

1.   安裝SVN apt-get install subversion 2.    建立版本庫 2.1先建立SVN版本庫目錄 mkdir /home/svn  理論上是放到任何地方都可以的,也可以選擇放到/var/www/ /home/svn   所有版本庫的目錄 m

使用阿里ECS CentOS 搭建Shadowscoks

新加坡伺服器 1核CPU 1GB記憶體 CentOS 7.0 64位 1. 安裝Shdowsocks服務端 #安裝pip yum install python-pip #使用pip安裝sha

阿里ECS CentOS lamp搭建及繫結多個網站

最近購買了阿里雲伺服器,系統CentOS 7.2,研究了搭建lamp環境和繫結多個網站 具體步驟如下: 首先搭建lamp環境: 1.關閉預設的firewall防火牆,配置iptables防火牆。 配置防火牆 /* 停止firewall */ sy

阿里ECS+CentOS 7.0+Docker+Redmine環境搭建

前言   搭建Redmine環境可以選擇使用分別安裝Ruby+Rails+Redmine+MySQL的方式,   但是過程中需要解決各種擾人的依賴問題。Docker為我們提供的Plan B,方便,快捷。    安裝環境   當然可以選擇Ruby+Rails+Red

阿里ecs伺服器(linuxcentos系統)安裝除錯nginx

購買阿里雲ecs伺服器例項 由於這裡只是測試,我們就隨便買一個(當然我就選最便宜的了,這裡的搶佔式例項測試完可以直接釋放) 選擇

阿里ECS搭建WordPress部落格

該文章針對那些壓根沒有任何基礎的人建站的流程, 從註冊域名開始, 一直到站點上線完整流程, 我一步步圖文教程了....實際邊操作邊寫這篇文章的....知乎連結 注意: 本篇僅包含阿里雲ECS搭建步驟, 適用於想搭建部落格的新人, 甚至不需要Linux經驗 所有連結域名指向阿里雲官方域名 本篇

阿里ECS 搭建 Linux+Nginx+Mysql+PHP環境 & 部署php的laravel專案

https://www.cnblogs.com/chenjingxuan/p/8072923.html   在阿里雲買ECS的時候選擇自己習慣的映象系統,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04穩定支援版的環境中搭建Linux+Ngin

阿里ECS上Linux系統例項搭建FTP站點

vsftpd 是 Linux 下的一款小巧輕快、安全易用的 FTP 伺服器軟體,是一款在各個 Linux 發行版中最受推崇的 FTP 伺服器軟體。本文以 CentOS 7.2 64位作業系統為例,說明如何在 Linux 例項上安裝 vsftpd。 Linux 例項搭建 FTP 站點具體操作步驟如

【Linux】阿里ECS提示RHSA-2017:3263: curl security update(CentOS 7 更新 curl 為最新版本)

1、前言   由於 CentOS 7 內建的 curl 和 libcurl 源為較舊的 7.29.0,不支援一些新特性且有安全性問題,所以需要更新一下。 2、開始   1、更新ca-bundle     · 首先備份一下        cp /etc/pki/tls/certs/ca-bu

阿里ECS-centos7建站環境搭建

又快到一年的雙十一了,阿里雲也搞起了拼團活動,買了一臺最低配的雲伺服器,自己玩。 連線遠端伺服器直接使用了xshell,不詳細描述。 最基礎的環境準備,安裝jdk和tomcat。 在usr目錄下建立了資料夾java,又在java檔案中建立了jdk和tomcat兩個子目錄 &nb

阿里ECS搭建我的世界伺服器

阿里雲ECS搭建我的世界伺服器 目錄 購買阿里雲服務 上傳檔案到雲伺服器 安裝必要環境 搭建我的世界伺服器端 本地客戶端 1. 購買阿里雲服務 1.1 選擇系統 個人並不懂伺服器配置,但是在系統映象選擇時記得選擇ubuntu16.04 64位。 注 1:如果你年齡低於24週

阿里ECS搭建gogs(Ubuntu16.04)

前言 因為我的阿里雲伺服器是隻有1核和512MB記憶體最“頂級”的配置。安裝和配置gitlab做版本管理的話至少需要4GB,即便我搞了4G的SWAP分割槽也不行。 在gitlab的配置過程中不只一次把我搞死,所以在請教大神的意見後,轉而搭建gogs。這個比gitlab需要的資源少多了

阿里ECS搭建我的世界伺服器方法

系統版本centos7.4(x64),更新時間2018.10.29 下載並安裝JDK // 這裡將所需Url替換掉,去官網檢視,這裡以11.0.1版本為例 wget --no-check-certificate --no-cookies --header "Co