最後更新日期:2024 年 10 月 21 日
跟大家分享我的操作步驟。
Table of Contents
Linux 伺服器基本資料設定
時區:Asia/Taipei
主機名稱:oak
操作人員帳號:david
<span class="line"><span style="color: #88C0D0">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">update</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&&</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">upgrade</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">timedatectl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">list-timezones</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">timedatectl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">set-timezone</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">Asia/Taipei</span><span style="color: #ECEFF4">'</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">date</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">hostnamectl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">set-hostname</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">oak</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">adduser</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">david</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">adduser</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">david</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">sudo</span></span>
<span class="line"></span>Apache 安裝設定
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">update</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">install</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apache2</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">systemctl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">status</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apache2</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">hostname</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">-I</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">curl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">http://</span><span style="color: #81A1C1"><</span><span style="color: #A3BE8C">IP_ADD</span><span style="color: #D8DEE9FF">R</span><span style="color: #81A1C1">></span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">//</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">stop</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">your</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">web</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">server</span></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">systemctl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">stop</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apache2</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">systemctl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">start</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apache2</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">systemctl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">restart</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apache2</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">//</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">If</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">you</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">are</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">simply</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">making</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">configuration</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">changes,</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">Apache</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">can</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">often</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">reload</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">without</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">dropping</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">connections.</span></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">systemctl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">reload</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apache2</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">//By</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">default,</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">Apache</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">is</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">configured</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">to</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">start</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">automatically</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">when</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">server</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">boots.</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">If</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">this</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">is</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">not</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">what</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">you</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">want,</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">disable</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">this</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">behavior</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">by</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">running:</span></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">systemctl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">disable</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apache2</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">//</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">To</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">re-enable</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">service</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">to</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">start</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">up</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">at</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">boot,</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">run:</span></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">systemctl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">enable</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apache2</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>預設的網頁檔案根目錄是 /var/www/html
MySQL 安裝設定
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">install</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">mysql-server</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">mysql</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">-u</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">root</span></span><span class="line"><span style="color: #88C0D0">CREATE</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">DATABASE</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">webdata</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #88C0D0">CREATE</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">USER</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">webuser</span><span style="color: #ECEFF4">'</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">IDENTIFIED</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">BY</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">password</span><span style="color: #ECEFF4">'</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #88C0D0">GRANT</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ALL</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">ON</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">webdata.</span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">TO</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">webuser</span><span style="color: #ECEFF4">'</span><span style="color: #81A1C1">;</span></span><span class="line"><span style="color: #88C0D0">ALTER</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">USER</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">root</span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">@</span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">localhost</span><span style="color: #ECEFF4">'</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">IDENTIFIED</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">WITH</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">mysql_native_password</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">by</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">password</span><span style="color: #ECEFF4">'</span><span style="color: #81A1C1">;</span></span>PHP 安裝設定
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">install</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">libapache2-mod-php</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-mysql</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">install</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-curl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-json</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-cgi</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">install</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-gd</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-mbstring</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-xml</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-xmlrpc</span></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">apt</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">install</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-bcmath</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-zip</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-pdo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-common</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">php-tokenizer</span><span style="color: #D8DEE9FF"> </span></span>
<span class="line"><span style="color: #616E88"># composer create-project 需要 zip</span></span>驗證 LAMP 是否成功運作
/var/www/php.index
<span class="line"><span style="color: #81A1C1"><</span><span style="color: #D8DEE9FF">html</span><span style="color: #81A1C1">></span></span>
<span class="line"><span style="color: #81A1C1"><</span><span style="color: #D8DEE9FF">head</span><span style="color: #81A1C1">></span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1"><</span><span style="color: #88C0D0">title>PHP</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">Test</span><span style="color: #81A1C1"><</span><span style="color: #A3BE8C">/titl</span><span style="color: #D8DEE9FF">e</span><span style="color: #81A1C1">></span></span>
<span class="line"><span style="color: #81A1C1"><</span><span style="color: #D8DEE9FF">/head</span><span style="color: #81A1C1">></span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1"><</span><span style="color: #88C0D0">body></span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1"><</span><span style="color: #88C0D0">?php</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">echo</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C"><p>Welcome to the Site!</p></span><span style="color: #ECEFF4">'</span><span style="color: #81A1C1">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">//</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">When</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">running</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">this</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">script</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">on</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">a</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">local</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">database,</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">servername</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">must</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">be</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">localhost</span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C">.</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">Use</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">name</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">and</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">password</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">of</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">web</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">user</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">account</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">created</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">earlier.</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">Do</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">not</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">use</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">root</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">password.</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">$servername</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">localhost</span><span style="color: #ECEFF4">"</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">$username</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">webuser</span><span style="color: #ECEFF4">"</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">$password</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">password</span><span style="color: #ECEFF4">"</span><span style="color: #81A1C1">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">//</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">Create</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">MySQL</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">connection</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">$conn</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">mysqli_connect</span><span style="color: #ECEFF4">(</span><span style="color: #D8DEE9">$servername</span><span style="color: #D8DEE9FF">, </span><span style="color: #D8DEE9">$username</span><span style="color: #D8DEE9FF">, </span><span style="color: #D8DEE9">$password</span><span style="color: #ECEFF4">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">//</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">If</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">conn</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">variable</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">is</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">empty,</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">connection</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">has</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">failed.</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">The</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">output</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">for</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">failure</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">case</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">includes</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">the</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">error</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">message</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">if</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">(</span><span style="color: #81A1C1">!</span><span style="color: #D8DEE9">$conn</span><span style="color: #ECEFF4">)</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">die(</span><span style="color: #88C0D0">'<p>Connection failed: </p>'</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">.</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">mysqli_connect_error</span><span style="color: #ECEFF4">()</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">}</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">echo</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">'</span><span style="color: #A3BE8C"><p>Connected successfully</p></span><span style="color: #ECEFF4">'</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">?></span></span>
<span class="line"><span style="color: #81A1C1"><</span><span style="color: #D8DEE9FF">/body</span><span style="color: #81A1C1">></span></span>
<span class="line"><span style="color: #81A1C1"><</span><span style="color: #D8DEE9FF">/html</span><span style="color: #81A1C1">></span></span>安裝 composer
<span class="line"><span style="color: #88C0D0">php</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">-r</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">copy('https://getcomposer.org/installer', 'composer-setup.php');</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #88C0D0">php</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">-r</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;</span><span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #88C0D0">php</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">composer-setup.php</span></span>
<span class="line"><span style="color: #88C0D0">php</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">-r</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">"</span><span style="color: #A3BE8C">unlink('composer-setup.php');</span><span style="color: #ECEFF4">"</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">mv</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">composer.phar</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">/usr/local/bin/composer</span></span>
<span class="line"></span>參考資料
Guides - Setting Up and Securing a Compute Instance
How To Install the Apache Web Server on Ubuntu 22.04
Comments
I’m trying to set up a search functionality for my website, but I’m completely stuck. I heard that Apache Solr is a good option, but I have no idea how to install and configure it on Ubuntu. Every guide I find is either too complicated or skips important steps.
Can someone explain the easiest way to get it running? Also, do I need to install Java first, or does Solr come with everything pre-configured? I found this [guide on installing Apache on Ubuntu](https://docs.vultr.com/install-apache-solr-on-ubuntu-20-04), but I’m not sure if I’m following it correctly. Any help would be greatly appreciated!
這篇文章真的幫了我大忙!剛開始設置 LAMP 環境時遇到了不少問題,但這份指南讓整個過程變得清晰許多。特別是在 Apache 和 MySQL 的配置部分,步驟詳細且易於理解。
之前還在研究如何[安裝 Apache 在 Ubuntu](https://docs.vultr.com/install-apache-solr-on-ubuntu-20-04),但總覺得缺少完整的環境設定說明,這篇文章剛好補足了我的需求。感謝分享!🚀
謝謝你的回覆,這讓我有更多動力分享心得。