2018年7月21日 星期六

[GCP/GCE/Ubuntu/Apache/Laravel5.6]踩雷筆記


GCE為Google Compute Engine的簡稱

1.新增專案






2.新增instance




稍等片刻


位置設在台灣
小型記憶體1.7G
主計類型Ubuntu 16.04LTS
允許http和https


3.安裝相關套件


進入Compute Engine頁面
進入VM instances
使用ssh的 Open in browser window 按鈕

進入後就可以下指令啦
sudo apt-get update //更新
sudo apt-get upgrade //更新

sudo add-apt-repository ppa:ondrej/php //抓到最新版php來源
sudo apt-get update //更新
sudo apt-get install apache2 libapache2-mod-php7.2 php7.2 php7.2-xml php7.2-gd
sudo apt-get install php7.2-opcache php7.2-mbstring zip unzip php7.2-zip
sudo apt-get install mysql-server phpmyadmin //過程中會要你設定Mysql的root的登入密碼,並在安裝phpmyadmin時再輸入一次


4.安裝php的套件管理程式:composer



cd /tmp //進入資料夾temp
curl -sS https://getcomposer.org/installer | php  //將composer檔案放入資料夾
sudo mv composer.phar /usr/local/bin/composer  //將資料夾移動到可以下全域指令的地方
composer //測試是否安裝成功


5.安裝Laravel



cd /var/www/html //至Apache主機放公開程式的地方
sudo composer create-project laravel/laravel your-project --prefer-dist 
//使用composer安裝laravel(你也可以把你github的專案clone過來)


6.更改權限



sudo chgrp -R www-data /var/www/html/your-project
sudo chmod -R 775 /var/www/html/your-project/storage


7.更改Apache的路由(把laravel的public路徑去掉)



cd /etc/apache2/sites-available
sudo vim laravel.conf
<VirtualHost *:80>
    ServerName yourdomain.tld

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/your-project/public

    <Directory /var/www/html/your-project>
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


8.設定Apache與剛剛設定的路由的關聯



sudo a2dissite 000-default.conf //取消作用
sudo a2ensite laravel.conf //激活
sudo a2enmod rewrite //開啟Apache的mod_rewrite功能
sudo service apache2 restart //重啟Apache


9.回到VM instances頁面的external IP那邊即可連到網站(目前是只有http沒有https)





10.套用到自己已經購買的Domain



連到NETWORKING > VPC network > External IP addresses



連到NETWORKING > VPC network > External IP addresses
將Type改成Static



連到NETWORKING > Network services > Cloud DNS



Create Zone

DNS Name輸入你購買的網址
Add record set

Resource record type輸入A
IP address輸入你VM instances裡面的external IP
再按一次Add record set

DNS name加個www
Resource record type輸入A
IP address輸入你VM instances裡面的external IP


連到Godaddy
進入到你購買的網址的DNS設定
新增網域名稱伺服器Nameservers
把你google的Cloud DNS的zone裡面Type是NS的data加進去
格式類似
ns-cloud-a1.googledomains.com
ns-cloud-a2.googledomains.com
ns-cloud-a3.googledomains.com
ns-cloud-a4.googledomains.com




11.若希望可以用瀏覽器管理phpmyadmin



sudo ln -s /usr/share/phpmyadmin /var/www/ //將你phpmyadmin連結到公開資料夾
sudo vim /etc/apache2/apache2.conf 編輯apache的設定檔
加入此段
Include /etc/phpmyadmin/apache.conf //phpmyadmin裡面的設定檔
 sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf //建立連結
 sudo a2enconf phpmyadmin.conf //啟用
 sudo service apache2 reload //重開apache





後記:

由於後來發現mysql版本太久,很多SQL語法不能用(例如:NOW()),於是決定更新到MariaDB-10.1
首先先刪除mysql
sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean
再安裝MariaDB
sudo apt install mariadb-server

出現
缺少 mysqli 擴充套件。請檢查 PHP 設定。 請參考 our 文件 以取得更多的資訊。

去/etc/php/7.2/apache2/php.ini
把extension=php_mysqli.dll
前面分號拿掉

若不行
再安裝
sudo apt install php7.2-mysql
phpenmod mysqli
sudo service apache2 restart

sql匯入太大時
去改php.ini的
upload_max_filesize = 100M;
post_max_size = 100M;
max_execution_time = 6000;
max_input_time = 6000;
memory_limit = 120M;

參考資料:
Installing Laravel PHP Framework on Ubuntu 18.04 LTS for Apache
How to Setup the Domain Name with your Google Cloud Instance
[SOLVED]Install phpmyadmin for laravel 5.2
How do I uninstall MySQL?



沒有留言:

張貼留言