1. 程式人生 > >阿里雲ECS 搭建 Linux+Nginx+Mysql+PHP環境 & 部署php的laravel專案

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

https://www.cnblogs.com/chenjingxuan/p/8072923.html

 

阿里雲買ECS的時候選擇自己習慣的映象系統,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04穩定支援版的環境中搭建Linux+Nginx+Mysql+PHP環境的

首先,在一般的情況下,剛剛購買的阿里雲ECS的Linux中會給你預裝Apache,我們先把它給刪了

 

刪除完之後,更新一下包列表

1

sudo apt-get update

 

1.安裝Nginx

1

sudo apt-get install nginx

安裝完Nginx,執行

1

sudo service nginx start

再在瀏覽器位址列輸入你的公網IP,你就可以看的welcome to Nginx的介面了

2.安裝Mysql

1

sudo apt-get install mysql-server mysql-client

過程中會提示你設定Mysql的密碼,就跟平時的密碼設定一樣,一

次輸入,一次確認。密碼確認完畢後基本等一會就安裝好了。嘗試

1

mysql -u root -p

如果登入成功,那Mysql就正確安裝了。

a.

1

vim /etc/mysql/my.cnf

找到:

1

 bind-address           = 

127.0.0.1

    這行,註釋掉(如下)

1

#bind-address           = 127.0.0.1

    或者改為

1

 bind-address           = 0.0.0.0

    允許任意IP訪問,或者自己指定一個IP地址。

 

b.然後重啟 MySQL

1

sudo service mysql restart

c.授權使用者遠端登入

 

1

2

3

4

mysql -u root -p;

use mysql;

grant all privileges on *.* to [email protected]"%" identified by "password" with grant option;

flush privileges;

   第一行命令解釋如下,*.*:第一個*代表資料庫名;第二個*代表表名。這裡的意思是所有資料庫裡的所有表都授權給使用者。

    root:授予root賬號。

“%”:表示授權的使用者IP可以指定,這裡代表任意的IP地址都能訪問MySQL資料庫。

    password”:分配賬號對應的密碼。

d.通過mysql客戶端連線到遠端的MySQL資料庫

    在自己本地mysql客戶端中輸入:

1

 mysql -h ip -u root -p;

   其中ip是你訪問資料庫所在伺服器的IP地址

 

 

 

3.安裝PHP

1

sudo apt-get install php5-fpm php5-cli php5-mcrypt

只有通過php5-fpm,PHP在Nginx下才能正常執行,遂,安裝之。

至於php5-mcrypt,有些PHP框架會依賴於這個,比如Laravel就是,所以也把它裝上了。

4.配置PHP

1

sudo vim /etc/php5/fpm/php.ini

開啟PHP配置檔案,找到cgi.fix_pathinfo選項,去掉它前面的註釋分號;,然後將它的值設定為0,如下

1

cgi.fix_pathinfo=0

5.啟用php5-mcrypt:

1

sudo php5enmod mcrypt

6.重啟php5-fpm:

1

sudo service php5-fpm restart

在搭建完LEMP環境之後,首先要明確兩個重要目錄

Nginx的預設root資料夾

/usr/share/nginx/html

Nginx的伺服器配置檔案所在目錄

/etc/nginx/sites-available/

上面兩個目錄記住就好,很常用,先擺出來

下面一步一步在阿里雲ECS上部署Laravel

1.建立網站的根目錄

1

sudo mkdir -p /var/www

2.配置nginx伺服器

1

sudo vim /etc/nginx/sites-available/default

開啟nginx的配置檔案之後,找到server這一塊,大概是長這個樣子的

 

1

2

3

4

5

6

7

8

9

10

server {

        listen80 default_server;

        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;

        index index.html index.htm;

        server_name localhost;

        location / {

                try_files$uri$uri/ =404;

        }

}

 

其中root,index ,server_name和location這幾行需要稍微修改一下

root修改

root /var/www/laravel/public;

這裡就是將nginx伺服器的根目錄指向Laravel的public資料夾下,後續的Laravel專案的程式碼我們會放在我們之前建立的/var/www/laravel目錄下

index修改

indexindex.php index.html index.htm;

這裡需要注意的是,index.php排在最前面

server_name修改

server_name server_domain_or_IP;

將server_domain_or_IP修改為你的公網IP

location修改

 

1

2

3

location / {

        try_files$uri$uri/ /index.php?$query_string;

}

 

修改完是這樣的:

 

1

2

3

4

5

6

7

8

9

10

server {

    listen 80;

    listen [::]:80;

    root /var/www/laravel/public;

    index index.php index.html index.htm;

    server_name a.com;

    location / {

            try_files $uri $uri/ /index.php?$query_string;

    }

}

 

最後我們還需要配置一下Nginx,讓其執行PHP檔案。同樣是在這個檔案裡,在location下方新增下面的配置:

 

1

2

3

4

5

6

7

8

9

10

server {

    listen 80;

    listen [::]:80;

    root /var/www/laravel/public;

    index index.php index.html index.htm;

    server_name a.com;

    location / {

            try_files $uri $uri/ /index.php?$query_string;

    }

}

 

注意,這一塊是自己加上去的:

 

1

2

3

4

5

6

7

8

location~ \.php$ {

        try_files $uri /index.php =404;

        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name;

        include fastcgi_params;

    }

 

配置完之後重啟Nginx,使上面的配置項生效。

1

sudo service nginx restart

3.建立Laravel專案

在配置完nginx後,怎麼獲取Laravel的專案程式碼呢?有以下幾種方法:

(1).直接composer安裝

直接通過composer來安裝,你可以在CES上通過執行

cd~

curl -sS https://getcomposer.org/installer | php

上面命令會安裝composer

composer全域性使用:

sudo mv composer.phar /usr/local/bin/composer

然後在/var/www目錄下直接執行

sudo composer create-project laravel/laravel laravel

因為我們之前建立/var/www目錄,你可以直接cd /var/www然後執行上面的命令。然後坐等安裝完成。

(2).直接上傳程式碼

使用下面命令上傳

scp -r laravel [email protected]_IP:

然後在阿里雲的ECS上將laravel移動到/var/www目錄下

sudo mv laravel/ /var/www

(3).使用Git和Coding平臺

個人比較喜歡使用git來上傳程式碼,可以很方便的更新程式碼和進行回滾,一旦版本更新出Bug我可以藉助Git的強大版本管理能力來修復Bug。流程大概是這樣:

原生代碼---->Coding---->阿里雲ECS

既然要使用git,那麼先在ECS上安裝git:

sudo apt-get install git

安裝完成就可以使用git了,然後在Coding上建立一個私有專案laravel,裡面包含所有該Laravel專案所需程式碼。

一旦原生代碼都推送到Coding,然後在/var/www目錄下直接使用

git clone your-project-git-link

your-project-git-link替換為你Coding上的laravel專案地址

4.最後的最後

不管哪種方式安裝的程式碼,/var/www/都是屬於root使用者的,而訪問網站的使用者則需要正確的許可權和訪問限制,我們可以通過下面的命令來實現。

1

sudo chown -R :www-data /var/www/laravel

根據Laravel的官方文件,/var/www/laravel/storage 目錄需要給網站的使用者寫許可權

1

sudo chmod -R 775 /var/www/laravel/storage