在阿里雲上部署 Laravel 第一課作業

heart發表於2018-11-14

正好趁雙十一活動,阿里 ECS 打折優惠挺大的。買了 3 年的入門打算把我的 laravel 作業給交了(域名還沒買)。
基於上一篇記錄的部署環境:
https://learnku.com/articles/19585
這一篇就記錄程式碼上線了。

首先配置下 nginx 站點。
預設的 nginx 配置檔案路徑在 /etc/nginx/sites-available/ 下,複製預設配置檔案。

cp  default  sample.com

修改 sample.com 配置

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/sample.com;

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}

root 目錄路徑做相對修改,index 中加入 index.php,關聯執行的 php 。
sample.com 佔用 80 埠,所以把 default 配置裡的埠 80 改為 8000;
修改好後在目錄 /etc/nginx/sites-enabled/ 下做一個站點配置的軟連線

ln -s /etc/nginx/sites-available/sample.com sample.com

重新載入 nginx 配置

nginx -t #檢查配置正確性
service nginx reload

建立目錄 /var/www/sample.com 及 index.php 丟擲 phpinfo();訪問 IP 正常輸出。

Mysql 服務端已安裝好了,但本地想遠端連線檢視下。但客戶端 Navicat 始終連線不上。上網搜,有老哥遇到相同問題,逐步按照老哥的設定連線成功。感謝! https://blog.csdn.net/hohaizx/article/details/78370333

新環境中缺了好多工具:Git,Composer,NPM 都沒有。還好 apt 安裝比較方便。
Git 安裝

sudo apt install git

Composer 安裝

sudo apt install -y composer

Nodejs 安裝

sudo apt-get install nodejs

NPM 安裝

sudo apt install npm

切換 NPM 源為淘寶源

npm config set registry https://registry.npm.taobao.org

git 拉取程式碼到 /var/www/sample.com目錄。執行了一次

composer install

報錯了。缺少 php 擴充套件,mbstring,dom。
file
繼續裝!

sudo apt-get install php-mbstring
sudo apt-get install php7.2-dom

安裝好了在跑一次,還是報錯還缺少 zip 擴充套件。
file
繼續

sudo apt-get install php7.2-zip

在執行一次終於正常了。趕緊執行下 php artisan key:generate 成功。

之前的 sample.com Nginx配置目錄需要重新修改下,要指定到 public 入口資料夾下 並重新載入 nginx。

root /var/www/sample.com/public

service nginx reload

修改 storage 目錄為可寫許可權。
繼續報錯
file
PHP mysql擴充套件也沒有裝。

sudo apt-get update
sudo apt install php7.2-mysql

安裝順利,檢視 phpinfo() 擴充套件已經裝好。
繼續報錯
file
好吧,資料庫還沒建立。
建立好 sample 資料庫,做下資料表遷移:

php artisan migrate

在訪問,終於看到久違的介面了。點選相關頁面發現 404 了。nginx 配置還有問題。

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                #try_files $uri $uri/ =404;
                try_files $uri /index.php?$query_string;
        }

重啟 nginx,頁面可以正常訪問了,在測試相關功能,註冊使用者時發現報錯,是註冊成功後傳送郵件,沒有配置 SMTP,郵件驅動直接改為 log 。
使用者註冊,發微博功能到正常了,到這算是大功告成了。
附上作業地址:http://47.101.155.173/

相關文章