記Ubuntu 16.04 下配置 Nginx、PHP7、MySQL環境,以及多域名配置

聰聰發表於2018-03-16

1、安裝Nginx

sudo apt-get update 更新資源列表

sudo apt-get install nginx 安裝Nginx

sudo service nginx start 啟動ngin

sudo apt-get update 更新資源庫

sudo apt-get install php7.1 php7.1-fpm 安裝php和fpm

    -----------可能出現的錯誤--------------------
        sudo: unable to resolve host
        錯誤其實沒有什麼影響,解決方式:
        vim /etc/hostname
        檢視 主機名稱
        vim /etc/hosts
        127.0.0.1       localhost 主機名稱
    --------------------------------------------
複製程式碼

瀏覽器開啟地址 看到 Welcome to nginx! 安裝成功!

Nginx的預設網站目錄是 /usr/share/nginx/html/

有的是/var/www/html/

預設Nginx網站配置檔案為 /etc/nginx/sites-available/default

2、安裝php7.1

PHP7 等並不在 Ubuntu的軟體庫中

因此要使用 PPA ppa:ondrej/php 庫使用下列命令:
複製程式碼

sudo apt-add-repository ppa:ondrej/php

-----------可能出現的錯誤--------------------
    但是在執行add-apt-repository命令時,有時會提示命令不存在,
    這時候直接apt-get add-apt-repository是不可以的!
    解決的方法是安裝software-properties-common。
    輸入命令: apt-get install software-properties-common
--------------------------------------------
使用以下命令:
複製程式碼

sudo apt-get update 更新資源庫
sudo apt-get install php7.1 php7.1-fpm 安裝php和fpm

可以使用 php -v 命令來檢視 PHP 版本資訊**

3、Nginx 與 PHP-FPM整合

sock檔案路徑為 /run/php/php7.1-fpm.sock 。

vim /etc/nginx/sites-available/default 加入這些內容

   location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php/php7.1-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
複製程式碼

4、安裝mysql

sudo apt-get install mysql-server mysql-client

過程中會提示你設定Mysql的密碼,就跟平時的密碼設定一樣,一次輸入,一次確認。密碼確認完畢後基本等一會就安裝好了。
嘗試mysql -u root -p設定的密碼	如果登入成功,那Mysql就正確安裝了。
複製程式碼

5、授權使用者遠端登入

vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到  bind-address = 127.0.0.1
註釋為   #bind-address   = 127.0.0.1   或者改為  bind-address  = 0.0.0.0
複製程式碼

sudo service mysql restart 重啟MySQL
開始授權使用者遠端登入 依次執行以下命令

mysql -u root -p;

use mysql;

grant all privileges on *.* to root@"%" identified by "password" with grant option;

flush privileges;

命令解釋如下,*.*:第一個*代表資料庫名;第二個*代表表名。這裡的意思是所有資料庫裡的所有表都授權給使用者。
root:授予root賬號。	“%”:表示授權的使用者IP可以指定,這裡代表任意的IP地址都能訪問MySQL資料庫。
password”:分配賬號對應的密碼。
通過mysql客戶端連線到遠端的MySQL資料庫、 在自己本地mysql客戶端中輸入:
mysql -h ip -u root -p; 其中ip是你訪問資料庫所在伺服器的IP地址
如果設定完畢 無法遠端連線 請在阿里雲開放你的3306埠
複製程式碼

6、配置多站點

cd /etc/nginx/sites-available/ 切換到網站配置目錄下

cp default web1.com 拷貝一份預設的配置

ln -s /etc/ngix/sites-available/web1.com /etc/nginx/sites-enabled/web1.com 建立軟連線(必須,不然不生效)

vim web1.com

找到  listen 80 default_server;
listen [::]:80 default_server;
改成:listen 80;listen [::]:80;
root /var/www/html改成:root /var/www/(寫你自己的網站目錄)
sudo service nginx restart       重啟nginx服務:
複製程式碼

到此配置結束。

相關文章