樹莓派4B安裝PHP7.3 + Nginx + MySQL


在樹莓派4B上搭建Web服務器環境:PHP7.3 + Nginx + Mariadb。數據庫Mariadb是MySQL的一個分支,API和命令行兼容MySQL。

 

安裝PHP7.3

目前官方源已經有PHP7.3的版本,不用添加其它下載源就能安裝。首先更新軟件列表:

sudo apt-get update

安裝PHP7.3:

sudo apt install -y -t buster php7.3-fpm php7.3-curl php7.3-gd php7.3-intl php7.3-mbstring php7.3-mysql php7.3-imap php7.3-opcache php7.3-sqlite3 php7.3-xml php7.3-xmlrpc php7.3-zip

通過命令php -v能夠看到PHP版本號7.3,說明安裝完成:

  1.  
    pi@raspberrypi:~ $ php -v
  2.  
    PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
  3.  
    Copyright (c) 1997-2018 The PHP Group
  4.  
    Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
  5.  
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

查看php.ini配置文件位置:

  1.  
    pi@raspberrypi:~ $ php -i|grep "Loaded Configuration File"
  2.  
    Loaded Configuration File => /etc/php/7.3/cli/php.ini

輸出顯示配置文件在/etc/php/7.3/cli/php.ini。注意,實際上配置文件有兩個,另外一個在/etc/php/7.3/fpm/php.ini。通過命令行調用php時,會使用第一個配置文件;通過fpm調用php(例如nginx)會使用第二個配置文件。

php-fpm常用管理命令:
開啟php-fpm: sudo systemctl start php7.3-fpm
關閉php-fpm: sudo systemctl stop php7.3-fpm
重啟php-fpm: sudo systemctl restart php7.3-fpm
編輯php-fpm配置文件: vi /etc/php/7.3/fpm/php-fpm.ini

安裝Nginx

安裝nginx:
sudo apt-get install nginx

安裝完成后,會自動開啟nginx。在瀏覽器輸入樹莓派的IP地址,可以看到“Welcome to nginx!”。
或者使用命令行:

  1.  
    pi@raspberrypi:~ $ curl 127.0.0.1
  2.  
    <!DOCTYPE html>
  3.  
    <html>
  4.  
    <head>
  5.  
    <title>Welcome to nginx!</title>
  6.  
    <style>
  7.  
    .....

能夠輸出html說明nginx安裝成功。

默認的網站根目錄:/var/www/html
nginx配置文件目錄:/etc/nginx/
nginx主配置文件位置:/etc/nginx/nginx.conf

nginx常用管理命令:
啟動nginx: sudo systemctl start nginx
關閉nginx:sudo systemctl stop nginx
設置nginx開機啟動:sudo systemctl enable nginx

配置nginx解析php

編輯配置nginx文件:
sudo vi /etc/nginx/sites-enabled/default   #此文件為ln的鏈接文件,也可直接編輯原始文件。

找到index指令,添加index.php。修改后:

index index.php index.html index.htm index.nginx-debian.html;

找到# pass PHP scripts to FastCGI server后面的location,刪除注釋。修改后如下:

  1.  
    location ~ \.php$ {
  2.  
    include snippets/fastcgi-php.conf;
  3.  
    #
  4.  
    # # With php-fpm (or other unix sockets):
  5.  
    fastcgi_pass unix:/run/php/php7.3-fpm.sock;
  6.  
    # # With php-cgi (or other tcp sockets):
  7.  
    #fastcgi_pass 127.0.0.1:9000;
  8.  
    }

保存后重啟nginx:

sudo systemctl restart nginx

在網站根目錄創建一個php文件:

sudo vi /var/www/html/index.php

寫入以下php代碼並保存:

  1.  
    <?php
  2.  
    phpinfo();
  3.  
     

在瀏覽器中輸入樹莓派的IP地址即可看到phpinfo。

啟動nginx服務時如果遇到這個錯誤 Job for nginx.service failed because the control process exited with error code. See “systemctl stat 可能原因如下:
1.nginx配置文件有錯誤

運行下面命令查看修改

nginx -t

之前配置解析php時始終不能成功,只因為default文件最后一行缺少一個“}”

 

2.已經啟動nginx或者配置文件中的端口號被占用

    檢查端口是否被占用

netstat -tnlp

   

如果端口已經被占用,自己權衡一下是換個端口還是把占用端口的進程殺掉

    檢查nginx是否已經啟動

ps -aux | grep nginx

   

如果已經啟動使用下面命令干掉即可

pkill -9 nginx
 

 

 

 

安裝Mairadb數據庫

使用以下命令安裝mariadb:

sudo apt-get install mariadb-server mariadb-client

執行數據庫初始化安裝:

sudo mysql_secure_installation

根據提示設置數據庫root用戶密碼、是否允許外網訪問等。

嘗試登錄數據庫:

mysql -u root -p

輸入上一步設置的密碼,發現無法登錄,錯誤提示如下:

ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

原因: 數據庫默認使用系統用戶登錄,需要修改為使用密碼登錄。
解決方案: sudo mysql -u root ,登入數據庫后,依次執行以下SQL:

use mysql #切換到mysql數據庫
update user set plugin='mysql_native_password'; #修改plugin字段
flush privileges; #刷新權限
exit; #退出數據庫

再次使用mysql -u root -p即可通過密碼登錄數據庫,無需root權限執行。

mariadb配置文件保存在多個位置:
/etc/mysql/mariadb.cnf
/etc/mysql/mariadb.conf.d/
/etc/mysql/conf.d/

mariadb常用命令:
啟動mariadb: sudo systemctl start mariadb
關閉mariadb:systemctl stop mariadb
設置mariadb開機啟動:sudo systemctl enable mariadb


免責聲明!

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



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