Raspberry Pi 4B LAMP/LNMP配置


LAMP

1.安裝Mariadb

在Raspberry Pi中,MySQL無法安裝,會自動建議安裝Mariadb,它和MySQL同源,具體介紹大家可自行搜索。

$ sudo apt-get install mariadb-server mariadb-client

2. 安裝PHP和apache

phpmyadmin會自動把其他相關依賴(包括apapche2)都裝好,安裝過程要選擇和apache協同,還可設置phpmyadmin用戶密碼,注意要先裝前面的數據庫,這樣設置過程才不會出現數據庫連接錯誤。

$ sudo apt-get install phpmyadmin
$ sudo apt-get install apache2 #實際不需要執行命令,phpmyadmin會附帶把apache2裝好
$ sudo apt-get install libapache2-mod-php #這個沒安裝apache可能解析不了php代碼,導致頁面上直接顯示php代碼
$ sudo ln -s /usr/share/phpmyadmin/ /var/www/html/  #在apache默認web目錄下添加phpmyadmin的軟鏈接,否則后者無法打開

3. 測試php和apache的協同

  • 測試apache

  • 測試php頁面
    在默認的網站根目錄/var/www/html/下新增php程序phpinfo.php,並添加內容:

<?php phpinfo(); ?>

4. 修改MariaDB數據庫配置

$ sudo mysql_secure_installation #設置root密碼,是否刪除匿名用戶,是否只允許localhost連接,是否刪除test庫,最后更新權限。


之后在終端用root登錄數據庫

# mysql -u root -p

發現會報錯“ERROR 1698 (28000): Access denied for user 'root'@'localhost'”,樹莓派4B安裝PHP7.3 + Nginx + MySQL 教程給出了解決辦法

$ sudo mysql -u root
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set plugin='mysql_native_password';
MariaDB [mysql]> flush privileges; 

之后重新使用root密碼登錄,成功。

5.測試數據庫連接

  • 編寫php連接數據庫的腳本testdblink.php(我習慣用PDO連接,測試賬號root)
<?php

$servername = "localhost";
$dbName = "mysql";
$username = "root";
$password = "此處輸入root密碼";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbName", $username, $password);
    echo "連接成功";
}
catch(PDOException $e)
{
    echo $e->getMessage();
}
?>

保存為testdblink.php放在apache的/var/www/html默認目錄下測試。

由於安裝了phpmyadmin,就可以直接通過web管理數據庫了。
登錄地址:http://服務器ip地址/phpmyadmin/index.php

6. 修改apache2監聽端口

apache2默認監聽80端口,如果不希望這個端口被使用,可以嘗試修改。

$ cd /etc/apache2/
$ sudo nano ports.conf

$ cd /etc/apache2/sites-enabled/
$ sudo nano 000-default.conf

$ sudo service apache2 restart


LNMP

1. 安裝Mariadb

同lamp

2. 安裝和配置nginx

$ sudo apt-get install nginx

先前apache已將監聽端口修改至8080,將80端口騰出
修改nginx配置文件

$ sudo nano /etc/nginx/sites-available/default

保持80端口監聽

手工追加index.php。注意到“root /var/www/html;”,說明nginx的默認根目錄是/var/www/html,Web頁面文件要放在這個目錄下



修改為如下:

重啟

$ sudo systemctl restart nginx

3. 安裝php-fpm

在安裝phpmyadmin時,有一步驟是選擇配合的web服務器,由於要用nginx,所以此時都不選放空。php很多組件在安裝phpmyadmin時組件都裝了,nginx需要另外裝php-fpm。

$ sudo apt-get install php-fpm

4. 測試

測試php,可以發現Server API和apache的php頁面不同

數據庫已經安裝,直接測試也ok。

有個bug:nginx監聽端口是80,apache2的監聽端口已經改成了8080,但是直接在瀏覽器那里輸入ip,仍舊是apache的頁面,而輸入“ip地址/phpinfo.php”時,卻能定位到fpm,而不是apache。用命令/etc/init.d/apache2 stop 停止apache2服務,80端口正常8080端口無法打開,說明nginx正常,但是默認頁面還是apapche2的。
解決:我同時保留了apache和nginx,經查看/var/www/html/目錄發現:目錄中有index.html和另一個index.nginx-debian.html,前者是安裝apache時默認添加的。直接在瀏覽器那里輸入ip實際默認訪問的是ip/index.html。因此要測試nginx的基本頁面,應該訪問ip/index.nginx-debian.html。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM