zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    多线程 分配
    fopen:文本和二进制方式打开方式对比【转】
    C优先级列表【转】
    sscanf用法
    heap和stack【转】
    大端小端【转】
    二级指针与二维数组的秘密【二者不等】
    C++中的空类编译器默认隐式声明哪些成员函数【CSDN】
    项目内存泄漏问题及解决方案后续
    浅谈部门前台框架中的几个方法<一>
  • 原文地址:https://www.cnblogs.com/fjlinww/p/12512796.html
Copyright © 2011-2022 走看看