脫線的伺服器使用一台很久的老機器,是一台10年前i7的桌上型電腦,還不是伺服器等級,老機器有老機器的優點,散熱簡單,沒那麼耗電,不過這兩天顯卡出了狀況,還好硬碟沒壞,所以直接把硬碟拔到一台二手桌上型電腦裝,馬上開機馬上可以使用。
一、挑選PHP版本
但是,因為軟體固定要更新,ubuntu預設的php是8.4,moodle和wordpress可能版本舊,不支援到php8.4,也因為現在是學期中,一旦升級出狀況會很麻煩,所以我將php8.3也安裝起來。
現在是系統內有二個php,要如何讓系統執行我想要跑的php8.3呢?
1.檢查/etc/apache2/conf-enabled,看看裡面是php8.3-fpm.conf或php8.4-fpm.conf,如果是php8.4-fpm.conf,使用
a2disconf php8.4-fpm a2enconf php8.3-fpm
2.啟動php8.3,關閉php8.4
a2dismod php8.4 a2enmod php8.3
3.參考http://onnocenter.or.id/wiki/index.php/USB_OFFLINE:_Ubuntu_24.04_Install_Moodle,_Apache2,_MariaDB,_PHP_8,調整php.ini的設定值,重點是這幾個數值要調大
upload_max_filesize = 100M post_max_size = 48M memory_limit = 512M max_input_time = 1000 max_input_vars = 5000 max_execution_time = 600
其實還有另一種作法,但我沒測試過:參考https://www.depal.com.tw/blog/multiple-php
重點在步驟五
讓我們分別為 demo.com 建立虛擬主機,並測試使用 php 不同版本 cd /etc/apache2/sites-available> sudo vi demo.com.conf 添加以下配置並儲存文件。 <VirtualHost *:80> ServerAdmin admin@demo.com ServerName demo.com ServerAlias www.demo.com DocumentRoot /var/www/demo.com <Directory /var/www/demo.com/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all Require all granted </Directory> <FilesMatch \.php> SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/err-demo.com.log CustomLog ${APACHE_LOG_DIR}/demo.com.log combined </VirtualHost> 您可以使用 apachectl 檢查語法是否正確。 sudo apachectl -t 使用以下命令啟用網站。 sudo a2ensite demo.com.conf 創建 DocumentRoot 目錄。 sudo mkdir /var/www/demo.com 創建 PHP 資訊頁面。 cd /var/www/demo.com sudo vi info.php 添加以下配置並儲存文件 <?php phpinfo(); ?> 重新啟動 Apache2。 sudo systemctl restart apache2 現在打開您的瀏覽器來驗證 PHP 版本
我不是虛擬網站,所以修改了設定檔demo.conf
Alias /demo "/var/www/html/demo/" <Directory /var/www/html/demo> Require all granted AllowOverride All Options FollowSymLinks MultiViews Satisfy Any <FilesMatch \.php$> <If "-f %{REQUEST_FILENAME}"> SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost" </If> </FilesMatch> </Directory>
二、升級mariadb
ubuntu升級mariadb其實很簡單,安裝第三方支援就好
參考https://www.kjnotes.com/devtools/109,目前長期穩定板是11.4
sudo apt-get install apt-transport-https curl ca-certificates software-properties-common -y curl -fsSL https://mirror.mariadb.org/PublicKey_v2 | sudo gpg --dearmor | sudo tee /usr/share/keyrings/mariadb.gpg > /dev/null echo "deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/mariadb.gpg] https://mirror.mariadb.org/repo/11.4/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/mariadb.list
然後
sudo apt update
sudo apt upgrade
sudo apt-get install mariadb-server mariadb-client -y
我試了不改設定值,系統沒出問題