2017年9月23日 星期六

在ubuntu安裝composer,把本機端的laravel資料夾push上去


1.在ubuntu的命令環境下,下指令:



1-1.安裝:



php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"





php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"





php composer-setup.php





php -r "unlink('composer-setup.php');" 



 



1-2.移動到可以全域使用的位置



sudo mv composer.phar /usr/bin/composer



1-3.測試



composer



 



2.在本機端laravel資料夾按右鍵,選擇git bash



2-1.開始使用git,下指令:git init



2-2.把所有檔案放到暫存區,下指令:git add .



2-3.把所有檔案放到commit,下指令:git commit -m '你想打的文字'



2-4.更改~/.ssh/config



2-4-1.(動作之前,若沒有c:/使用者/使用者名字/.ssh,則要在c:/使用者/使用者名字按右鍵git bash下指令:ssh-keygen -t rsa,然後一路enter按到底)



2-4-2.在laravel資料夾開git bash的狀態,下指令:vim ~/.ssh/config



2-4-3.編輯器內,填入內容(按i開始編輯,esc下指令: :wq 存檔然後離開)



Host AWS

HostName <AWS IP>

User ubuntu

IdentityFile <AWS pem 金鑰檔案路徑>(格式:c:/使用者/使用者名字/.ssh/AWS上下載下來的.pem)



(註:把從AWS上下載下來的.pem檔案放到c:/使用者/使用者名字/.ssh 比較簡單)



2-5.伺服端,新增一個空的git respository



2-5-1.在home/ubuntu(也就是~$那邊)下指令:git init --bare 你自己取的名稱.git



2-6.本機端,讓電腦知道要push到哪去



2-6-1.下指令:git remote add deploy ssh://AWS/home/ubuntu/你自己取的名稱.git



2-6-2.直接push,下指令:git push -u deploy master



2-7.伺服端,在home/ubuntu/你自己取的名稱.git裡面是看不到檔案內容,可以移到var/www去



2-7-1.去到畫面呈現的資料夾,cd ../../var/www/html



2-7-2.開始殖民,下指令:sudo git clone /home/ubuntu/你自己取的名稱.git



 



3.更改使用者權限(在var/www/html 的情況下)



3-1.伺服端,下指令:sudo chown -R ubuntu:www-data 你自己取的名稱



 



4.更改laravel的env檔內的資料庫資訊(在var/www/html/你自己取的名稱 的情況下)



4-1.把現在的env複製一份到env.example,下指令:cp .env.example .env



4-2.使用vim編輯.env,下指令:vim .env



4-3.更改database名稱,使用者名稱與密碼



 



5.增加一個新的laravel的keygen



5-1.php artisan key:gen



5-2.過程中如果遇到問題,就更新composer,下指令:composer update --no-scripts 



(要耐心等待)



 



6.php artisan serve --host=0.0.0.0



 



7.建立表格,下指令:php artisan migrate



(需要確定有安裝 php7.0-mysql、env檔裡面的帳號密碼資料庫資訊,然後在資料庫建立該資料庫(mysql -u root -p 你的密碼→下指令:create database 你要取的名稱;))



※備份:



AWS的volume是你的instance的儲存空間



使用snapshot去備份你的volume



 



8.解決連上public資料夾時出現Failed to open stream: Permission denied問題



8-1.指令連到你的專案資料夾(記得在var/www/html下面)



8-2.下指令:php artisan cache:clear (清除快取)



8-3.下指令:(更改權限)



   chmod -R 777 app/storage # for laravel < 5.4

   chmod -R 777 storage/ # for laravel >= 5.4



   (1)每一個檔均有一個擁有者(owner),僅有owner及root可以更改檔案之存取保護模式(利用 chmod 指令)



   (2)只有root可以更改檔案之「擁有者」與「群組」(利用 chown 指令)



   參考:http://tnrc.ncku.edu.tw/course/93/fedora_core2/page10/p10.htm



   -R  :連同子目錄內容一起列出來,等於該目錄下的所有檔案都會顯示出來;



   參考:http://linux.vbird.org/linux_basic/0220filemanager.php



   read/write/execute



   owner = rwx = 4+2+1 = 7

   group = rwx = 4+2+1 = 7

   others=  rwx = 4+2+1 = 7



   參考:http://linux.vbird.org/linux_basic/0210filepermission.php



8-4.composer dump-autoload



   假如您需要重新產生您的套件自動載入檔案,您可以使用 php artisan dump-autoload 指令。這個指令會重新產生自動載入檔案在您的根目錄專案內。



   參考:https://laravel.tw/docs/4.2/packages



8-5瀏覽器輸入:你的ip/你命名的資料夾(git的)/public



   即可連上



 



9.改變連線的路徑



9-1.去改變apache的設定



9-2.下指令(到此資料夾):cd /etc/apache2/sites-available



9-3.下指令(建立這個檔案):sudo vim laravel.conf



9-4.編輯模式(輸入i),貼上下列



<VirtualHost *:80>

    ServerName localhost



    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html/你自己命名的名稱/public



    <Directory /var/www/html/project>

        AllowOverride All

    </Directory>



    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>



9-5.按esc,輸入:wq,存檔並離開



9-6.下指令:



sudo a2dissite 000-default.conf  (關掉預設)

sudo a2ensite laravel.conf  (啟動你剛剛設定的)

sudo a2enmod rewrite  (重寫apache2的設定?)

sudo service apache2 restart  (apache2 伺服器重啟)



9-7.瀏覽器輸入ip即可連到你的資料夾的public



 



10.如果其他的route出不來的解決方式



錯誤訊息:The requested URL / was not found on this server



10-1.更改權限,下指令:/etc/apache2$ sudo chown ubuntu:www-data apache2.conf



10-2.更改內容,下指令:sudo vim apache2.conf



10-3.找到<Directory /var/www/>,並更改為(i進入編輯模式,改好後,esc,:wq離開)



<Directory /var/www/>

        Options Indexes FollowSymLinks

        AllowOverride All

        Require all granted

</Directory>



10-4.重啟apache



sudo service apache2 restart



 



沒有留言:

張貼留言