Step1. install Apacher Server
sudo apt install apache2
執行apache2伺服器
sudo sytemctl start apache2
開機啟動apache2
sudo systemctl enable apache2
測試apach2執行情形
sudo systemctl status apache2
Step2. Installing PHP and its additional plugins
sudo apt install php libapache2-mod-php php-mbstring php-cli php-bcmath php-json php-xml php-zip php-pdo php-common php-tokenizer php-mysql
測試安裝情形
php -v
sudo apt install mariadb-server
執行Mariadb
sudo mysql -u root -p
CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'secretpassword';
GRANT ALL ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
QUIT;
Step 4: Install 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
Step 5: Install Laravel 8 on Ubuntu
cd /var/www/html
sudo composer create-project laravel/laravel laravelapp
sudo chown -R www-data:www-data /var/www/html/laravelapp
sudo chmod -R 775 /var/www/html/laravelapp/storage
cd laravelapp
php artisan
Step 6: Configure Apache to serve Laravel
建立laravel.conf檔案
sudo vim /etc/apache2/sites-available/laravel.conf
內容:
<VirtualHost *:80>
ServerName example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/html/laravelapp/public
<Directory /var/www/html/laravelapp>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
執行下列兩個指令,讓他們進入Apache rewiter 模組
sudo a2ensite laravel.conf
$ sudo a2enmod rewrite
重新啟動apache2
sudo systemctl restart apache2
Step 7: Run Laravel in a web browser
網站在 /var/www/html/laravelapp/public
安裝網路工具
$ sudo apt install net-tools
安裝 Apache 伺服器
// 安裝 Apache 與工具
$ sudo apt -y install apache2 apache2-utils
// 檢查 apache 運行狀況
$ sudo service apache2 status
// 利用 netstat 指令確認服務是否有啟動(有發現 80 port 運作中,但是 443 預設沒有啟用)。
$ netstat -tlnp
// 也利用 systemctl 指令查看一下相關服務的啟用情況。
$ sudo systemctl status apache2
啟用 SSL 模組
先啟用 Apache ssl 模組,並 restart apache2 服務。
$ sudo a2enmod ssl
$ sudo systemctl restart apache2
此時一樣用 netstat 指令查一下,會發現有 443 port 已啟用。但是直接連結網頁會失敗。
// 調整 SSL 網站設定檔
$ sudo a2ensite default-ssl.conf
$ sudo systemctl reload apache2
Apache 設定檔位置
// 一般設定檔
/etc/apache2/apache2.conf
// SSL 設定檔
/etc/apache2/sites-available/default-ssl.conf
這樣子就完第了 apache server 的初步安裝作業了~
安裝 PHP 8.2 or 8.1 版
增加新版 PHP 套件庫來源
要安裝新版的 PHP 8 需要加入 Ondřej Surý (PHP 和 Debian 的首席開發人員,並維護 Ubuntu 和 Debian 套件) PHP PPA 的來源,指令如下
$ sudo apt install software-properties-common
接下來新增 PHP 8 的 PPA 來源,指令如下
$ sudo add-apt-repository ppa:ondrej/php
更新 apt 來源
執行 apt update 指令,也許會有需要更新的套件。
$ sudo apt update
// 可以查詢那些套件可以升級
$ apt list --upgradeable
// 系統會提示您那些服務需要重啟
$ sudo apt upgrade -y
安裝 PHP 8.1 相關套件
PHP 的套件與模組很多,以下是一般常會用到的套件,安裝指令如下
$ sudo apt install php8.1 libapache2-mod-php8.1 php8.1-gd php8.1-mysql php8.1-curl php8.1-mbstring php8.1-intl -y
$ sudo apt install php8.1-gmp php8.1-bcmath php8.1-imagick php8.1-xml php8.1-zip php8.1-pdo php8.1-common php8.1-cli -y
啟用 Apache 的 PHP8.1 模組
如同文章開頭所述,Ubuntu 下的 Apache 模組需要先以 a2enmod 的指令啟用,指令如下
$ sudo a2enmod php8.1
$ sudo systemctl restart apache2
安裝 PHP 8.2 相關套件(以此為主)
$ sudo apt install php8.2 libapache2-mod-php8.2 php8.2-gd php8.2-mysql php8.2-curl php8.2-mbstring php8.2-intl -y
$ sudo apt install php8.2-fpm php8.2-gmp php8.2-bcmath php8.2-imagick php8.2-xml php8.2-zip php8.2-cli libapache2-mod-fcgid -y
$ sudo apt install php-common php-tokenizer php-json -y
啟用 Apache 的 PHP8.2 模組
$ sudo a2enmod php8.2
$ sudo systemctl restart apache2
測試 PHP 版本資訊
啟動完成後,在 /var/www/html/ 的目錄下新增一個名叫 phpinfo.php 的檔案,指令如下
$ sudo vim /var/www/html/phpinfo.php
內容如下
<?php
phpinfo();
?>
安裝 MariaDB 10.x 版
安裝 MariaDB 套件
在 Ubuntu Server 20.04 安裝 MariaDB 10.x 相對簡單,目前建議使用預設的版本,安裝指令如下所示,這個版本的 MariaDB 相依了非常多的套件。
$ sudo apt install mariadb-server -y
初始化 MariaDB 資料庫環境
因為 Ubuntu Server 20.04 預設會啟用服務,所以可以直接初始化 MariaDB 的環境,指令如下
// 先直接切換成 root 身份,使用 sudo 指令會有奇怪的狀況發生
$ sudo su -
$ mysql_secure_installation
重新啟動 MariaDB 服務
$ sudo systemctl restart mariadb
確認 MariaDB 服務狀態
利用 netstat 指令確認服務是否有啟動(有發現 3306 port 運作中)。
$ sudo netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 22965/mysqld
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 603/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 690/sshd: /usr/sbin
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 22203/sshd: ossii@p
tcp6 0 0 :::80 :::* LISTEN 21359/apache2
tcp6 0 0 :::22 :::* LISTEN 690/sshd: /usr/sbin
tcp6 0 0 ::1:6010 :::* LISTEN 22203/sshd: ossii@p
tcp6 0 0 :::443 :::* LISTEN 21359/apache2
//利用 systemctl 指令查看一下相關服務的啟用情況。
$ sudo systemctl status mariadb
安裝 phpMyAdmin (目前只會安裝 4.XX版,執行時會有錯誤訊息)
// php 8.1
$ sudo apt install phpmyadmin php8.1
// php 8.2
$ sudo apt install phpmyadmin php8.2
設定 phpMyAdmin
為了更安全的使用 phpmyadmin,建議在 apache2 的設定檔中,加入以下內容,指令如下
$ sudo vim /etc/apache2/conf-available/phpmyadmin.conf
// phpMyAdmin default Apache configuration
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
AddDefaultCharset UTF-8
# limit libapache2-mod-php to files and directories necessary by pma
<IfModule mod_php7.c>
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/usr/share/doc/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/:/usr/share/javascript/
</IfModule>
<IfModule mod_authz_core.c>
# Apache 2.4
# Require all granted
Require ip 192.168.200.53 192.168.200.0/24
</IfModule>
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
因為 phpMyAdmin 管理工具不需要開放給一般人去使用,所以建議只需開放給特定 IP 來源編輯即可(如: 第22行),利用修改 Apache 的設定檔即可達到此目的。
存檔之後,執行以下指令啟用 php mbstring 模組及 phpmyadmin 的設定檔,並重新啟動 apahce2。
$ sudo a2enconf phpmyadmin
$ sudo phpenmod mbstring
$ sudo systemctl restart apache2
在網址後面打 /phpmyadmin 或是 /phpMyAdmin 即可登入使用,最後即完成初步的 安裝設定工作。
注意:目前這樣安裝的phpmyadmin,因為版本舊會出現錯誤(20250116),改用下載解壓縮後更改設定,版本為5.2.11-all-Languege。
1.安裝 Apache 網路伺服器
sudo apt install apache2
2.安裝 PHP (php7.4)
sudo apt install php libapache2-mod-php php-mbstring php-xmlrpc php-soap php-gd php-xml php-cli php-zip php-bcmath php-tokenizer php-json php-pear
3.下載並安裝一個資料庫管理工具(Mariadb10.3.99)
sudo apt install mariadb-server
在這之後,您可以為 root 用戶設置一個密碼。要進行這個步驟,您需要使mysql_secure_installation 腳本。請注意,這一步是可選的,但基於安全考慮,建議執行。
sudo mysql_secure_installation
4.安裝phpmyadmin(4.1.0-all-Languge)
a.上傳解壓縮後的phpmyadmin後,更改config.inc.php.
b.找到[Servers configuration]區段.
/** * Servers configuration */ $i = 0; /** * First server */ $i++; /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false;
更改為
/** * Servers configuration */ $i = 0; /** * First server */ $i++; /* Authentication type */ $cfg['Servers'][$i]['verbose'] = 'MariaDB 5'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false; /** * Second server */ $i++; /* Authentication type */ $cfg['Servers'][$i]['verbose'] = 'MariaDB 10'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['socket'] = '/var/run/mariadb10.sock'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false;
5.用phpmyadmin登錄會出現
錯誤 1698 (28000):使用者「root」@「localhost」的存取被拒絕
解決方法:
sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'test';
安裝 Laravel – 安裝 Laravel 與 Apache 在Ubuntu 上 20250114
安裝 MariaDB 10.3 版 20241116
安裝設定Mariadb 成功 port為3306
安裝 Ubuntu20.04.06+php5.6+Mariadb10.6
目前測試 php5.6 無法連接 MariaDB 10.6 ,php5.6沒有Plesk obsidian 20241119-update
Debian/Ubuntu 環境安裝 MariaDB 資料庫伺服器 20241113
步驟四 初始設定MariaDB資料庫的安全性。
sudo mariadb-secure-installation
注意!這個步驟的設定,不然會有問題 20241117-update