在Ubuntu 18.04 LTS中安裝phpMyAdmin + Composer + Laravel 6

Yu-Cheng Hung
8 min readDec 25, 2019

--

引用: https://pressing.space/backend/ubuntu-16-04-php7-phpmyadmin-gettext/

嗨大家好,今天我們要在Ubuntu 18.04 LTS中安裝MySQL網頁圖形化管理工具phpMyAdmin、Composer和Laravel 6。在此之前,請先確認您已經確實完成前篇「Ubuntu 18.04 LTS + Apache、MySQL、PHP (LAMP)安裝設定」中的各項安裝步驟。

前置作業

在進行後續動作前,先安裝幾個基本工具:

$ sudo apt install -y git curl wget zip unzip

安裝phpMyAdmin

首先需啟用universe repository (預設為關閉):

$ sudo add-apt-repository universe

接著下載安裝:

$ sudo apt install phpmyadmin php-mbstring php-gettext

完成後會出現phpMyAdmin安裝選單,web server選擇 apache2,然後都選擇 OK,並設定兩次密碼完成安裝,接著啟用 mbstring module

$ sudo phpenmod mbstring

重啟Apache2:

$ sudo systemctl restart apache2

安裝好後我們來創建新的使用者,phpMyAdmin預設已經有 rootphpmyadmin這兩個使用者。首先以 root登入MySQL:

$ mysql -u root -p

創建新的使用者:

CREATE USER '[Your Account]'@'localhost' IDENTIFIED BY '[Your Password]';

開通此帳號的權限:

GRANT ALL PRIVILEGES ON *.* TO '[Your Account]'@'localhost' WITH GRANT OPTION;

結束離開:

exit

現在打開 http://[ Your IP-Address]/phpmyadmin並用剛才創建的新帳號登入phpMyAdmin:

最後,因為phpMyAdmin極易成為網路攻擊目標,因此比較常見的做法是在 .htaccess中增加授權身分認證保護機制,我們先在 phpmyadmin.conf中新增 AllowOverride All

$ sudo vi /etc/apache2/conf-available/phpmyadmin.conf

重啟Apache2:

$ sudo systemctl restart apache2

接著新增.htaccess檔案:

$ sudo vi /usr/share/phpmyadmin/.htaccess

寫入以下程式碼:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

現在,創建一個新使用者來做為身分驗證帳號:

$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd [Your Account]

設定好密碼後重新登入phpMyAdmin,會看到多了以下登入介面:

以剛剛創建的驗證帳號即可登入,到這裡phpMyAdmin的安裝就全部完成啦!

安裝Composer

依下列步驟執行:

$ curl -sS https://getcomposer.org/installer | php$ sudo mv composer.phar /usr/local/bin/composer$ sudo chmod +x /usr/local/bin/composer

檢查是否安裝成功:

$ composer --version

安裝Laravel 6

在Ubuntu 18.04 LTS中,我們習慣將Laravel專案放置在/var/www/html目錄下,因此請依序執行:

$ cd /var/www/html

下載:

$ composer create-project --prefer-dist laravel/laravel [Your Laravel Project Name]

設定資料夾權限:

$ chmod -R 755 [Your Laravel Project Name]
$ chmod -R 777 [Your Laravel Project Name]/storage

進入專案:

$ cd [Your Laravel Project Name]

創建 base64 random number encryption key:

$ php artisan key:generate

打開http://[ Your IP-Address]/[Your Laravel Project Name]/public確認是否能成功看到Laravel預設首頁!

Git下來的Laravel專案如何設定執行?

首先將專案git clone至/var/www/html,接著開始重建專案:

$ cd [Your Laravel Project Name]

下載composer依賴套件:

$ sudo composer install

將 .env.example 複製成 .env:

$ sudo cp .env.example .env

創建 base64 random number encryption key於.env中的APP_KEY

$ php artisan key:generate

打開.env並設定其中的DB連線相關參數(DB_DATABASEDB_USERNAMEDB_PASSWORD)。

坑點提醒!!!若DB是建置在內網中,則DB_HOST設定127.0.0.1即可,這牽扯到使用者權限問題,當初在這邊卡了一段時間,幸虧有前輩救援!

設定好後存檔離開並套用設定:

$ php artisan config:cache

接著離開專案並設定資料夾權限:

$ cd ..
$ chmod -R 755 [Your Laravel Project Name]
$ chmod -R 777 [Your Laravel Project Name]/storage

新增一個給 Laravel 專案使用的 apache2 conf:

$ sudo vim /etc/apache2/sites-available/laravel.conf

laravel.conf中的設定:

<VirtualHost *:80>
ServerName localhost

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/[Your Laravel Project Name]/public

<Directory /var/www/html/[Your Laravel Project Name]>
AllowOverride All
</Directory>

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

關閉000-default.conf設定,啟用laravel.conf的設定,並重新啟動 Apache2:

$ sudo a2dissite 000-default.conf
$ sudo a2ensite laravel.conf
$ sudo a2enmod rewrite
$ sudo service apache2 restart

現在,我們只需要輸入http://[ Your IP-Address]/即可開啟Laravel 6專案!

總結

完成上述操作後,目前各位的環境應包含:

● phpMyAdmin 4.6.6deb5

● Composer 1.9.1

● Laravel 6.9.0

感謝大家觀看,有關Ubuntu 18.04 LTS的相關環境安裝設定到此告一段落,那麼就下次見囉,See You!

--

--

No responses yet