阿里云centos7安裝NGINX+MYSQL+PHP-FPM環(huán)境

前言

LIUNX服務(wù)器部署,百度找的資料有些都是老的。查了一些資料順便整合了一下,阿里云服務(wù)器(ECS)可以選擇多種操作系統(tǒng),打算用它運行Drupal或者WordPress,你最好選擇Liunx系統(tǒng),這篇文章的演示是基于阿里云的CentOS操作系統(tǒng)的服務(wù)器,在上面搭建LEMP的環(huán)境。
那就。。。。。。開始啦?。?!~~~~

走你
創(chuàng)建服務(wù)器實例

創(chuàng)建一個服務(wù)器實例其實就是去購買一臺相應(yīng)配置的云服務(wù)器。注冊并登錄到阿里云的網(wǎng)站,在 產(chǎn)品服務(wù) 里選擇 云服務(wù)器 ECS ,點擊頁面上的 立即購買??梢?包年包月 的購買,也可以 按量付費,也就是用多少花多少,不過這種方式不支持網(wǎng)站的備案。

確定后,可以按需要去配置服務(wù)器,建議最初可以選擇最低配置,因為后續(xù)升級也非常容易。選擇 CPU,內(nèi)存,帶寬,不同的配置價格不同。你還要選擇 地域 ,也就是云服務(wù)器所在的地方,目前只有 青島 與 杭州。再去選擇操作系統(tǒng),這篇文章所做的測試用的是 CentOS 6.3 64 位。需要的話可以再增加一塊數(shù)據(jù)盤,默認會帶一個系統(tǒng)盤,一共 20 G ,足夠我們測試用了。
現(xiàn)在推薦使用 CentOS 7 64 位。

aliyun-05.png

點擊 立即購買,預(yù)覽一下所選的服務(wù)器,然后 提交訂單。

aliyun-01.png

選擇支付方式,然后點擊 確認支付。

aliyun-02.png

注意支付以后,可能會等一小會兒訂單才能生效。至少我是等了一會兒,也可能是因為我用的手機版的支付寶。支付成功以后,打開你的個人賬戶頁面,選擇 管理控制臺,在這里,你可以找到購買的云服務(wù)器。云服務(wù)器默認的 root(超級管理員) 用戶的密碼,會發(fā)送到你的手機上,你也可以點擊 修改密碼,去修改 root 用戶密碼。

在這個界面,你還可以 停止重啟 去服務(wù)器。也可以找到你的服務(wù)器的公眾的 IP 地址。我購買的這臺服務(wù)器地址是 218.244.147.196,使用這個地址配合 root 用戶和密碼,你可以使用工具登錄到服務(wù)器,對它進行遠程管理,比如安裝軟件,修改設(shè)置,重啟服務(wù)等等。

aliyun

遠程控制你的服務(wù)器

遠程控制 Linux 類型的系統(tǒng)的服務(wù)器,比如 CentOS 系統(tǒng)的服務(wù)器,一般不像 Windows 服務(wù)器那樣,使用圖形界面的遠程控制。我們需要使用命令行工具,遠程連接到服務(wù)器,然后使用命令去控制服務(wù)器。Windows 用戶可以使用 Putty ,Mac 用戶可以使用系統(tǒng)自帶的終端工具。然后用 ssh 命令,連接到你的服務(wù)器。像這樣:

ssh root@218.244.147.196

@ 左邊的 root 是連接時使用的用戶的名字,@ 右邊的數(shù)字是你的服務(wù)器的 IP 地址。這行命令的意思就是,使用 root 用戶,登錄到 218.244.147.196 這臺服務(wù)器上?;剀囈院?,會提示你輸入 root 用戶的密碼(這個密碼阿里云會發(fā)送到你手機上)。

添加新用戶并分配 Root 權(quán)限

為了安全,我們可以單獨創(chuàng)建一個平時操作服務(wù)器的用戶,并且給這個用戶分配可以使用 Root 的權(quán)限,也就是如果需要 Root 權(quán)限,可以在命令的前面加上 sudo 獲取到 Root 用戶的權(quán)限。

添加新用戶
比如添加一個名字是 wanghao 的用戶,可以這樣:

adduser niexiangyang 

設(shè)置密碼
為用戶設(shè)置密碼:

passwd niexiangyang 

分配Root權(quán)限
讓我們新創(chuàng)建的用戶擁有 Root 用戶的權(quán)限,執(zhí)行:

gpasswd -a niexiangyang wheel

把 niexiangyang這個用戶名換成你自己的用戶名。

用新用戶登錄服務(wù)器

ssh niexiangyang@218.244.147.196

倉庫
為了可以使用 CentOS 系統(tǒng)的包管理工具去安裝更多的東西,我們需要單獨安裝一些額外的軟件倉庫。

EPEL

sudo yum install epel-release -y

IUS

sudo yum install https://centos7.iuscommunity.org/ius-release.rpm -y

IUS 倉庫里面有我們需要的一些新的軟件包,比如 PHP 7。注意我們安裝的是為 CentOS 7 這個系統(tǒng)準備的 IUS 倉庫,如果你的系統(tǒng)是 CentOS 6,你需要到 IUS 網(wǎng)站上去查找適合的倉庫的下載地址。

現(xiàn)在開始安裝環(huán)境啦?。。~~

timg (3).jpg

安裝NGINX

NGINX 這個軟件包已經(jīng)包裝在 EPEL 倉庫里了,之前我們已經(jīng)安裝了這個倉庫,所以可以直接使用包管理工具去安裝 NGINX。

sudo yum install nginx -y

啟動

sudo systemctl start nginx

開機自啟動

sudo systemctl enable nginx

服務(wù)啟動以后,你就可以在瀏覽器上使用服務(wù)器的 IP 地址,或者指向這個地址的域名訪問服務(wù)器指定的目錄了。你會看到類似下面的這些文字。

Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to nginx.org. Commercial support is available at nginx.com. Thank you for using nginx.

配置 nginx 虛擬主機
安裝完 nginx 以后,第一件想到的事應(yīng)該就是去創(chuàng)建虛擬主機,虛擬主機允許我們在同一臺服務(wù)器上運行多個網(wǎng)站,我們可以為不同的域名綁定不同的目錄,訪問這個域名的時候,會打開對應(yīng)目錄里面的東西。之前介紹過為 Apache 服務(wù)器創(chuàng)建虛擬主機,下面來看一下為 nginx 配置虛擬主機。先進入到 nginx 配置文件目錄:

cd /etc/nginx/conf.d

創(chuàng)建一個新的配置文件,比如我要為 nginx.ninghao.net 這個主機名創(chuàng)建一個虛擬主機,可以這樣:

vim nginx.ninghao.net.conf

把下面的配置代碼放到這個配置文件里:

server {
    listen        80;
    server_name   nginx.ninghao.net;
    root          /home/www/nginx.ninghao.net;
    index         index.php index.html;

    location / {
      try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
}

上面這個配置文件支持一些的 PHP 應(yīng)用,比如 WordPress,Drupal,Laravel。第一個 location 區(qū)塊可以讓 PHP 應(yīng)用支持地址的重寫功能,第二個 Location 設(shè)置了讓虛擬主機可以去處理 PHP 的請求。注意這里用了 include 命令,包含進來一個 fastcgi.conf 文件,你要確定這個文件存在。

你也可能會找到 fastcgi_params 這個文件,如果沒有 fastcgi.conf 就把 fastcgi_params 這個文件包含進來,并且在處理 php 的那個 location 區(qū)塊里再添加一條配置:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

server_name 就是主機名,也就是跟這個虛擬主機綁定在一塊兒的域名,我事先把 nginx.ninghao.net 指向了服務(wù)器,這個虛擬主機就是為它準備的,所以,server_name 后面的東西就是 nginx.ninghao.net 。緊接著 server_name 下面可以是一個 root,就是這個虛擬主機的根目錄,也就是網(wǎng)站所在的目錄。比如我們要把 nginx.ninghao.net 這個網(wǎng)站的文件放在 /home/www/nginx.ninghao.net 下面,那么這個 root 就是這個路徑。

然后去掉 location / 里面的 root 這行代碼。再在 index 后面加上一種索引文件名,也就是默認打開的文件,這里要加上一個 index.php ,這樣訪問 nginx.ninghao.net 就可以直接打開 root 目錄下面的 index.php 了。稍后我們再去安裝 php 。

保存一下,按 esc ,輸入 :wp(保存并退出)。現(xiàn)在虛擬主機應(yīng)該就可以使用了。主機的域名是 nginx.ninghao.net,訪問它的時候,打開的是 /home/www/nginx.ninghao.net 這個目錄里面的東西,你可以在這個目錄下放點東西。

重啟 nginx 或者重新加載 nginx 可以讓配置文件生效。

sudo systemctl reload nginx

現(xiàn)在,打開瀏覽器,輸入你為虛擬主機設(shè)置的域名,看看是否能打開你指定的目錄里的東西。

PHP

要讓 nginx 能夠執(zhí)行 php 文件,需要去安裝一下 php-fpm,我要安裝的是比較新的 PHP 7 ,這個軟件包可以在 IUS 倉庫里找到,所以你需要先安裝 IUS 倉庫。

sudo yum install php70u-fpm -y

啟動

sudo systemctl start php-fpm

開啟自啟動

sudo systemctl enable php-fpm

安裝PHP擴展
為了可以正常運行一般的 PHP 應(yīng)用,你需要再安裝一些其它的 PHP 擴展,通常你在安裝 PHP 應(yīng)用,比如 WordPress,Drupal,Laravel 的時候,都會提示你缺少的 PHP 擴展。下面是一些常用的 PHP 擴展:

sudo yum install php70u-gd  php70u-mysqlnd php70u-pdo php70u-mcrypt php70u-mbstring php70u-json php70u-opcache php70u-xml -y

重新加載 PHP-FPM

sudo systemctl reload php-fpm

測試是否可以執(zhí)行 php
現(xiàn)在,我們已經(jīng)安裝了 php-fpm,并修改了 nginx 的配置文件讓它可以去執(zhí)行 php,下面,我們得去測試一下,可以使用 php 的 phpinfo(); 函數(shù),方法是在你的虛擬主機根目錄下面,創(chuàng)建一個 php 文件,命名為 phpinfo.php,然后在這個文件里輸入:

<?php phpinfo(); ?>

保存文件并退出。在瀏覽器里打開剛才創(chuàng)建的這個 php 文件。我這里應(yīng)該是 http://nginx.ninghao.net/phpinfo.php。打開以后,你應(yīng)該能看到像下面這樣的界面,如果能,說明 nginx 已經(jīng)可以執(zhí)行 php 了。

安裝 MySQL / MariaDB

MySQL 與 MariaDB 是相互兼容的,現(xiàn)在社區(qū)推薦使用 MariaDB,所以我們可以去安裝一下 MariaDB ,用它代替 MySQL 。

sudo yum install mariadb101u-server -y

如果出現(xiàn)沖突的提示,是因為系統(tǒng)本身自帶 MariaDB,我們需要先刪除掉系統(tǒng)本身帶的,才能正常安裝比較新的。一般可以這樣來刪除:

sudo yum remove mariadb-libs -y

啟動

sudo systemctl start mariadb

開機自啟動

sudo systemctl enable mariadb

安全配置
然后我們需要簡單配置一下 mysql ,默認安裝以后 mysql 的 root 用戶是沒有密碼的,對于生產(chǎn)環(huán)境來說,這肯定是不行的,另外還有一些安全相關(guān)的設(shè)置,可以使用下面這行命令去配置一下,它是一個向?qū)?,問你一些問題,你要給出答案,比如是否要設(shè)置 root 用戶的密碼, 密碼是什么等等。

mysql_secure_installation

Enter current password for root (enter for none):
解釋:輸入當前 root 用戶密碼,默認為空,直接回車。
Set root password? [Y/n] y
解釋:要設(shè)置 root 密碼嗎?輸入 y 表示愿意。
Remove anonymous users? [Y/n] y
解釋:要移除掉匿名用戶嗎?輸入 y 表示愿意。
Disallow root login remotely? [Y/n] y
解釋:不想讓 root 遠程登陸嗎?輸入 y 表示愿意。
Remove test database and access to it? [Y/n] y
解釋:要去掉 test 數(shù)據(jù)庫嗎?輸入 y 表示愿意。
Reload privilege tables now? [Y/n] y
解釋:想要重新加載權(quán)限嗎?輸入 y 表示愿意。

目錄與文件的權(quán)限問題
網(wǎng)站上面有些目錄或文件需要有寫入權(quán)限,這樣你得為這些目錄和文件分配合適的權(quán)限,一般可以把它們的擁有者設(shè)置成 php-fpm 使用的用戶,查看一下誰在運行 php-fpm 這個服務(wù):

sudo ps aux|grep php

修改所使用的用戶,php-fpm 的配置文件是:/etc/php-fpm.conf,還有在 /etc/php-fpm.d/* 這個目錄里的所有文件都是 php-fpm 的配置文件。默認這個目錄里有一個 www.conf ,你可以編輯這個文件來修改 php-fpm 所使用的用戶名稱。使用 vim 命令:

vim /etc/php-fpm.d/www.conf

打開文件以后你可以搜索下關(guān)鍵詞 user ,輸入 :/user ,會搜索到結(jié)果,按小 n 可以繼續(xù)向下查找,按大 N 可以向上查找。直到你看到:

user = php-fpm

這個 php-fpm 就是運行 PHP-FPM 的用戶的名字,你看到的也可能是其它的名字,這不重要。你只要知道這個用戶是誰,在哪里可以修改這個用戶就行了。在遇到目錄寫入權(quán)限的問題,比如不能正常上傳網(wǎng)站的文件,你可以把保存上傳文件的那個目錄的擁有者修改成運行 PHP-FPM 的用戶就可以了。

修改目錄的擁有者可以使用這樣的命名:

 sudo chown -R 用戶名 目錄

這樣就會把指定的目錄的擁有者修改成指定的用戶了。也就是如果你把目錄的擁有者修改成運行 PHP-FPM 的那個用戶,那么在網(wǎng)站上再去上傳文件就不會有權(quán)限的問題了,因為目錄的擁有者一般都會擁有可以寫入的權(quán)限。

timg (4).jpg

有沒有對你起到幫助呢!不懂的可以咨詢:WX:nxy18336033555 QQ:1264512198 加的時候備注一下哦!~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容