【雲計算的1024種玩法】手把手學會配置安裝 LNMP 建站環境

前言php

在雲計算普及以前的 VPS 時代基本上網絡環境環境都是靠 LNMP(Linux + Nginx + MySQL + PHP)支撐起來的,由於其配置方便並且相較於 LAMP(Linux + Apache Httpd + MySQL + PHP)在小配置機器上表現很是好。不過 LNMP 的的更新可遠不止這些。css

本教程就介紹如何配置一個性能優異、靈活自由並且升級方便的進階型 LNMP 環境,由 Ubuntu + OpenResty + MariaDB + PHP 組成,兼容 LNMP 的習慣可是更加靈活和可靠。html

準備

雲翼計劃

學生用戶能夠在阿里雲官網上進行學生認證後購買必定配置的ECS,僅需9.9元每個月,學生用戶無需擔憂花費過多用在服務器的問題。mysql

學生用戶在通過學生認證事後就能夠在相關網址進行購買,網址爲:https://promotion.aliyun.com/ntms/campus2017.html,
買好了服務器就能夠去剛剛註冊好的帳號管理裏的管理控制檯去查看服務器以及它的一些配置。nginx

遠程控制

【雲計算的1024種玩法】使用 DMS 只要一個瀏覽器輕鬆搞定運維任務
【雲計算的1024種玩法】ECS和輕量應用服務器的遠程控制入門sql

設置安全組(重要)

若是不設置好安全組,到底是沒法訪問仍是編譯失敗會分不清的。數據庫

須要開放 : 80 和 443 端口瀏覽器

【雲計算的1024種玩法】用好阿里雲的安全組緩存

安裝

OpenResty

爲了更好的性能和靈活性,OpenResty 選擇編譯的方式。OpenResty 是一個基於 Nginx 與 Lua 的高性能 Web 平臺,擁有很是好的拓展性讓服務器發揮更好性能。教程中將所有依賴 Linux 發行版組建中的依賴,而免除編譯帶來的後期維護成本。安全

詳情: 【雲計算的1024種玩法】手把手教你如何編譯一個高性能 OpenResty

PHP

軟件源安裝的 PHP 默認以 Unix Socket 的狀態運行在 /run/php/php7.2-fpm.sock,比使用 TCP 以 localhost:9000 的方式性能更好。

安裝軟件源拓展

安裝軟件源拓展工具:

apt -y install software-properties-common

添加 Ondřej Surý 的 PHP PPA 源,須要按一次回車:

add-apt-repository ppa:ondrej/php

更新軟件源緩存:

apt update

安裝軟件

安裝 PHP7.2:

apt install php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-opcache -y

安裝 PHP7.1:

apt install php7.1-fpm php7.1-mysql php7.1-curl php7.1-gd php7.1-mbstring php7.1-mcrypt php7.1-xml php7.1-xmlrpc php7.1-zip php7.1-opcache -y

安裝 PHP7.0:

apt install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-xml php7.0-xmlrpc php7.0-zip php7.0-opcache -y

安裝 PHP5.6:

apt install php5.6-fpm php5.6-mysql php5.6-curl php5.6-gd php5.6-mbstring php5.6-mcrypt php5.6-xml php5.6-xmlrpc php5.6-zip php5.6-opcache -y

設置 PHP

這裏以 PHP7.2 爲例,其餘版本僅需將版本號改爲本身所用的便可. 安裝完成後,編輯 /etc/php/7.2/fpm/php.ini 替換換 ;cgi.fix_pathinfo=1 爲 cgi.fix_pathinfo=0 快捷命令:

sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.2/fpm/php.ini

管理 PHP

安裝好了先重啓一下! 更多操做:

systemctl restart php7.2-fpm #重啓
systemctl start php7.2-fpm #啓動
systemctl stop php7.2-fpm #關閉
systemctl status php7.2-fpm #檢查狀態

查看當前 PHP 版本:

php -v

MariaDB

這裏咱們用 MariaDB 代替 MySQL,MariaDB 數據庫管理系統是 MySQL 的一個分支,主要由開源社區在維護,採用 GPL 受權許可 MariaDB 的目的是徹底兼容 MySQL,包括 API 和命令行,使之能輕鬆成爲 MySQL 的代替品。

安裝 MariaDB 參考:【雲計算的1024種玩法】安裝 MariaDB 並經過 DMS 管理

能夠實現經過阿里雲的 DMS 產品高效且可視化的對 MariaDB 數據庫進行管理,直觀並且高效。

設置

僅僅只是安裝好 OpenResty 、MariaDB 和 PHP 但不進行結合就是沒有意義的。那麼如何建立虛擬子主機呢,並讓 OpenResty 加載 PHP-FPM呢?

默認主機安裝探針和 phpMyAdmin

開啓 PHP-FPM

將 /usr/local/openresty/nginx/conf/nginx.conf 中的這一段修改成,下面 PHP 的版本是 7.2,裏面還加入了防跨站參數其餘版本記得修改:

######################## default ############################
  server {
  ##運行端口
  listen 80; 
  ##這條意味着非指定域名以外均使用這個設置
  server_name _; 

  access_log /data/wwwlogs/access_nginx.log combined; #日誌目錄
  root /data/wwwroot/default; #網站文件目錄
  index index.html index.htm index.php; #首頁文件優先級

  ##PHP
  location ~ [^/]\.php(/|$) {
      fastcgi_pass unix:/run/php/php7.2-fpm.sock;
      fastcgi_index index.php;
      include fastcgi.conf;
      fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
    }

  ##下面的都是緩存
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
    }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
    }
  location ~ /\.ht {
    deny all;
    }
  }

下載探針

cd /data/wwwroot/default
wget http://www.yahei.net/tz/tz.zip
unzip tz.zip

訪問:http://yourip/tz.php 就能夠看到親切的雅黑探針了。

下載 phpMyAdmin

cd /data/wwwroot/default
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.1/phpMyAdmin-4.7.1-all-languages.zip
unzip phpMyAdmin-4.7.1-all-languages.zip
mv phpMyAdmin-4.7.1-all-languages pma

訪問:http://yourip/pma 就能夠看到親切的 phpMyAdmin 了。

虛擬子主機

單獨爲域名專門開闢虛擬子主機,首先建立儲存內容的目錄:

mkdir -p /data/wwwroot/主機目錄名稱
mkdir -p /usr/local/openresty/nginx/conf/vhost/

接下來,建立子主機配置文件,記得將 server_name yourdomian; 改爲 server_name 你的域名

cat >> /usr/local/openresty/nginx/conf/vhost/yourdomian.conf << EOF  
  server {
  ##運行端口
  listen 80; 

  ##這裏須要改爲你的域名
  server_name yourdomian; 

  access_log /data/wwwlogs/access_nginx.log combined; #日誌目錄
  root /data/wwwroot/yourdir; #網站文件目錄
  index index.html index.htm index.php; #首頁文件優先級

  ##PHP
  location ~ [^/]\.php(/|$) {
      fastcgi_pass unix:/run/php/php7.2-fpm.sock;
      fastcgi_index index.php;
      include fastcgi.conf;
      fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
    }

  ##下面的都是緩存
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
    }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
    }
  location ~ /\.ht {
    deny all;
    }
  }
EOF

而後重啓 OpenResty,就能夠訪問你的 http://你的域名 看看網站的 403 了:

nginx -s reload

更新

不少教程比較流氓的就是針對安裝了 LNMP 環境卻不提供更新 OpenResty 、ariaDB 和 PHP 的方法,特別是一些編譯方式的教程,升級就更是問題了,極大的提升了使用者的安全風險和學習成本。

不過咱們的這個 LNMP 環境方便的就在於升級很是方便。

運行

apt update && apt upgrade

就能夠實現 PHP、MariaDB 以及 Ubuntu 系統組件的更新和升級,很是的快捷方便。 OpenResty 的升級教程也將在後面寫出來~

結語

學會安裝 LNMP 環境後基本上除非一些很是老舊的版本。就能通吃全部的 PHP 程序的安裝了,但願你們可以應用到本身的 Linux 學習當中。

相關文章
相關標籤/搜索