zoukankan      html  css  js  c++  java
  • 树莓派做服务器,搭建Typecho博客和Owncloud云盘

    摘要

    博主用闲置已久的树莓派搭建了LAMP环境的服务器(LNMP也做了,不过没采用),而后配置部署了Typecho个人博客与Owncloud私有云,文中先讲述Typecho博客的搭建步骤以及遇到的问题,再描述Owncloud私有云的搭建步骤。

    1.前言

    树莓派:基于Linux系统的微型卡片电脑,现在是2020年了,对树莓派不做过多介绍了(树莓派官网)。

    Typecho:一款内核强健﹑扩展方便﹑体验友好﹑运行流畅的轻量级开源博客程序,相似的还有WordPress、Heox。 Typecho 和 WordPress 属于动态博客, Hexo 属于静态博客,这里的“动态、静态”主要是指其对数据处理的方式,通过数据库来动态的查询、调用、展示的叫“动态”,直接生成纯.html网页文件来供浏览的叫“静态”,从服务器端来说静态博客凭条的速度更加高效,动态博客平台因为需要数据库、服务器端的脚本语言解析的支撑在速度上相对于静态博客平台来说自然会低的。由于博主对建站的知识储备有限,所以弃用了Hexo(后期可能会继续尝试),在Typecho 和 WordPress之间选用了Typecho,原因Typecho是更为轻量化,风格简洁,可供选择主题还算可以,懂一点网页编程就能更好的改造出适合自己的主题,而WordPress相对较臃肿在树莓派上运行有点吃力。所以选用了Typecho搭建个人博客。

    Owncloud:是一个开源云服务项目,可以实现类似百度云,可以搭建在自己服务器上作为私有云网盘。

    LAMP:是常见的Web服务器环境解决方案,用于创建和管理Web应用程序的开源开发平台。Linux用作后端操作系统,Apache是​​Web服务器,MySQL是数据库,PHP是脚本语言。

    2.LAMP环境搭建

    关于raspbian系统烧写与相关配置,本文不做过多介绍,网上教程很多,相对较为简单,基本不会出错。

    烧写完系统后,通过网线将树莓派连接到路由器上,使用PUTTY远程连接树莓派,这里要保证电脑和树莓派在同一个网段(我用的树莓派地址是192.168.1.16,树莓派的初始用户名是pi,密码是raspberry)。

        

    连接成功后开始搭建LAMP环境吧。

    2.1更换国内镜像源

    原始的树莓派的源无法进行更新,需要更换国内的镜像源(树莓派官方镜像列表)。

    (1) 编辑/etc/apt/sources.list文件,在命令行窗口输入以下代码

    $ sudo nano /etc/apt/sources.list

              用#注释掉原文件内容,写入以下内容

    1.  
      deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
    2.  
      deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

              然后按Ctrl+o,Enter保存,Ctrl+x退出。

    (2)编辑编辑/etc/apt/sources.list.d/raspi.list文件,在命令行窗口输入以下代码

    $ sudo nano /etc/apt/sources.list.d/raspi.list

             用#注释掉原文件内容,写入以下内容

    1.  
      deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
    2.  
      deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui

            然后按Ctrl+o,Enter保存,Ctrl+x退出。

            最后执行

    1.  
      $ sudo apt-get update #更新系统软件
    2.  
      $ sudo apt-get upgrade #更新已安装的包

    问题:在执行upgrade的过程中有可能遇dpkg: error processing package XXX (--configure)问题或者Errors were encountered while processing,解决方法如下:

    1.  
      $ sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
    2.  
      $ sudo mkdir /var/lib/dpkg/info/
    3.  
      $ sudo apt-get update
    4.  
      $ sudo apt-get -f install
    5.  
      $ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/
    6.  
      $ sudo rm -rf /var/lib/dpkg/info
    7.  
      $ sudo mv /var/lib/dpkg/info_old/ /var/lib/dpkg/info/

    2.2安装Apache

    $ sudo apt-get install apache2

    完成Apache安装后,我们通过重启Apache服务检查是否正常安装,命令如下。

    1.  
      $ sudo /etc/init.d/apache2 start //启动
    2.  
      $ sudo /etc/init.d/apache2 restart //重启
    3.  
      $ sudo /etc/init.d/apache2 stop //关闭

    问题:如果之前安装过Nginx,可能会有端口号冲突的问题,修改方法如下

    $ sudo nano /etc/nginx/sites-available/default
    1.  
      server {
    2.  
      listen 8080 default_server;
    3.  
      # listen [::]:80 default_server;
    4.  
      ....

    将端口号修改为了8080,可以避免冲突,当然其他的端口号也可以。

    命令行输入apachectl -v,可以查看apache版本号。

    2.3安装MySQL

    $ sudo apt install mariadb-server

    完成数据库安装后,需要添加数据库,执行以下指令

    1.  
      $ $ sudo mysql -u root
    2.  
      ...
    3.  
      ...
    4.  
      MariaDB [(none)]> use mysql;
    5.  
      MariaDB [mysql]> update user set plugin='mysql_native_password' where user='root';
    6.  
      MariaDB [mysql]> UPDATE user SET password=PASSWORD('root的密码') WHERE user='root';
    7.  
      MariaDB [mysql]> flush privileges;
    8.  
      MariaDB [mysql]> exit;

    重启数据库验证安装结果:

    $ sudo /etc/init.d/mysql restart

    命令行输入mysql --versionmysql -V,可查看mysql版本号。

    2.4 安装PHP7.0

    1.  
      $ sudo apt-get install nginx php7.0-fpm php7.0-cli php7.0-curl php7.0-gd php7.0-mcrypt php7.0-cgi php7.0-sqlite php7.0-xml
    2.  
      $ sudo apt install libapache2-mod-php

    测试PHP是否正常安装,可以在命令行输入sudo nano /var/www/html/index.php,然后输入以下内容:

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

    重启apache和php7.0-fpm

    1.  
      $ sudo /etc/init.d/apache2 restart
    2.  
      $ sudo /etc/init.d/php7.0-fpm restart

    在电脑浏览器中输入树莓派的IP地址即可检查是否配置成功,成功界面如下:

    2.5安装phpMyAdmin

    对新手来说,在树莓派上使用命令行操作MySQL数据库比较困难,在树莓派上安装了PHPMyAdmin后,就可以通过可视化的网页来管理数据库了,输入以下命令

    $ sudo apt-get install phpmyadmin -y

    安装中会提示选择服务器,选择Apache2; dbconfig-common选择No,完成PHPMyAdmin的安装。

    然后在电脑浏览器中输入http://"你的树莓派IP"/phpmyadmin,然后用户名输入root,密码是在安装MySql时设置的密码。

    问题:在浏览器输入登录phpMyAdmin的时候可能会遇到网页中显示PhpMyAdmin gives this output: json extension is missing的问题。

    解决方法:输入sudo nano /etc/php/7.0/apach2/php.ini,打开php.ini文件写入

    1.  
      extension=json.so
    2.  
      extension=json.dll
    3.  
       

    重启apache2,sudo service apache2 restart,再次进入phpMyAdmin即可正常登录。

    3. 搭建Typecho

    为了保证安装配置过程顺利需要修改文件夹权限,安装完成后可以将权限再重新改回,然后下载Typecho,并解压。

    1.  
      $ sudo chmod -R 777 /var/www/html
    2.  
      $ cd /var/www/html
    3.  
      $ sudo wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz //下载typecho
    4.  
      $ tar zxvf 1.1-17.10.30-release.tar.gz //解压
    5.  
      $ mv build/* /var/www/html //将文件移至根目录

    在电脑浏览器中输入树莓派IP地址,访问typecho安装界面:

    问题:可能出现的问题,有typecho数据库适配器为空,无法选择

    解决方法:输入sudo nano /etc/php/7.0/apach2/php.ini,找到extension代码段,把关于sql代码行前面的分号去掉,然后再将下面代码添加到php.ini文件中,即可解决问题。

    1.  
      extension=pdo.so
    2.  
      extension=pdo_sqlite.so
    3.  
      extension=pdo_mysql.so
    4.  
      extension=sqlite.so
    5.  
      extension=pdo_mysql.so
    6.  
      extension=php_pdo.dll
    7.  
      extension=json.so
    8.  
      extension=json.dll

    问题:还可能会遇到数据库无法连接的问题,typecho显示“对不起,无法连接数据库,请先检查数据库配置再继续进行安装”

    解决方法:进入我们之前安装的phpMyAdmin界面(http://"你的树莓派IP"/phpmyadmin),然后新建typecho数据库,即可解决问题。

    完成typecho安装后,可以访问一下自己的blog了,再浏览器中输入树莓派IP:

    如果感觉主题不好看可以,在Typecho主题模板站中下载更多主题。

    将下载的主题解压出来,通过FileZilla软件传输到/var/www/html/usr/themes目录下,然后登录typecho后台管理界面,打开控制台页面,点击‘更换外观’,即可看到我们新添加的主题,再点击启用完成主题更换。

    比较简洁的主题:

    typecho更多的玩法还需要不断的尝试,折腾起来吧~

    问题:typecho更换外观时可能出现Call to undefined function token_get_all()

    解决方法:命令行输入 sudo nano /etc/php/7.0/apache2/php.ini,并添加代码extension=tokenizer.so


    问题:Typecho点击前台链接或者后台登录时出现404的解决方法

    Typecho 这个开源博客系统的问题我之前就想发出来的,但是因为博客没有 Typecho 的分类,也不太研究 Typecho 就暂时放着了

    前段时间我在折腾阿里云赠送的服务器时,安装了下 Typecho 这个程序,使用军哥一键包安装的 LNMP,这里大概说一下我遇到的问题吧

    1、安装程序时无法连接数据库

    在把程序放到目录下,进行安装的时候,将数据库的密码输入正确后,无法进行安装

    这个时候处理方式就是手动创建一个 typecho 的数据库即可解决

    2、无法登录后台

    Nginx 服务器点击前台链接或者后台登录时出现 404, not found

    官方给的解决方式是一般的出现这种情况时,nginx.conf 里的 location 设置都是类似这样

    location ~ .*.php$

    要支持 pathinfo,要改成

    location ~ .*.php(/.*)*$

    在某些老版本的 php 里面,可能还要打开 php.ini 里的 cgi.fix_pathinfo

    cgi.fix_pathinfo = 1

    我没有按照这个来,页面 404 一般都是伪静态的问题,在军哥的一键包中有伪静态设置,在添加的时候默认使用了 other.conf,这里要换成 typecho.conf

    军哥的一键包中默认已经有了一些常用的 Nginx 伪静态配置文件,可以直接输入名称进行使用

    我选择使用 wordpress 的配置,修改原来的伪静态配置,配置文件在:/usr/local/nginx/conf/vhost/域名.conf

    include other.conf; 改为 include wordpress.conf;

    执行:/etc/init.d/nginx restart 重启生效

    然后访问是没有问题了,但是点击登陆又是 404,真是问题一个接一个

    enable-php.conf 修改为下面这个配置 然后重启 nginx 服务即可

    location ~ [^/].php(/|$)
    {
            #try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
            include pathinfo.conf;
    }

    4. 搭建owncloud

    进入owncloud官网,再Download界面可以下载最新版owncloud文件,点击download即可下载,不过最新版的owncloud好像需要php在7.3版本以上,由于我用的是php7.0,没有下载最新版文件,而是用的owncloud-10.3.2。可以在电脑上下载完成后通过FTP传输到树莓派中然后再进行解压。

    1.  
      $ sudo unzip owncloud-10.3.2.zip -d /var/www/html/ //解压
    2.  
      $ cd /var/www/html/owncloud //进入owncloud目录
    3.  
      $ sudo mkdir data //(建立数据库目录)

    然后修改目录权限,ownCloud在安装的过程中需要对一些目录有写的权限,为此,web服务器用户(www-data对于基于Debian的系统)必须要拥有apps、data、config目录的权限。运行以下命令完成:

    1.  
      $ cd /var/www/html/owncloud
    2.  
      $ sudo chown -R www-data:www-data data
    3.  
      $ sudo chown -R www-data:www-data config
    4.  
      $ sudo chown -R www-data:www-data apps

    再打开浏览器,输入 http://“你的树莓派IP“/owncloud ,进入设置安装界面,根据提示安装填写管理用户名,密码;以及选择合适的数据库,填写数据库用户名,密码等,即可完成安装。

    问题:安装过程中可能会遇到PHP xxx模块未安装的问题(PHP ctype,gd,iconv,curl模块未安装),需要apt-get install进行安装,如果安装后还是显示模块未安装,可通过下面方法解决:

    解决方法:命令行输入 sudo nano /etc/php/7.0/apache2/php.ini,并添加以下代码

    1.  
      extension=ctype.so
    2.  
      extension=gd.so
    3.  
      extension=iconv.so
    4.  
      extension=curl.so
    5.  
       

    完成安装后测试下载速度,反正比百度云快一些

     

    5.总结

    搭建过程看似简单,实际上会遇到这样或那样的问题,遇到问题不要怕,多查阅资料,享受解决问题的过程。问题解决后带来的愉悦感是非常美妙的,拿起手中的树莓派,折腾起来吧。

    后续还做了办公室访问家中树莓派服务器的方法,前往链接

      

    出处:https://blog.csdn.net/anhei930/article/details/107025501

  • 相关阅读:
    Easyui datagrid 修改分页组件的分页提示信息为中文
    Easyui datagrid 实现表格记录拖拽
    Java:内部类
    算法导论:Trie字典树
    算法导论:找零钱问题
    lintcode:组成最大的数
    lintcode:验证二叉查找树
    lintcode:将二叉查找树转换成双链表
    lintcode:二叉树的路径和
    lintcode:字符串置换
  • 原文地址:https://www.cnblogs.com/mq0036/p/13269337.html
Copyright © 2011-2022 走看看