部署paperwork私有云笔记

Paperwork 是一个开源网络云笔记系统,Paperwork 采用 PHP 开发,使用 Laravel 4 框架,提供一个很流行的 Web UI,基于 AngularJS 和 Bootstrap 3 构建,提供开放 API 用于第三方集成。后端基于 MySQL 数据库。

1 环境说明

  • ubuntu 16.04
  • web环境:LAMP( Linux + Apache2 + Mysql + PHP)

2 创建应用数据库

sudo mysql -u root -p
#在Mysql中创建paperwork数据库,并分配权限
CREATE DATABASE paperwork;
GRANT ALL PRIVILEGES ON paperwork.* TO 'paperwork'@'localhost' IDENTIFIED BY 'yourpassword';
FLUSH PRIVILEGES;

3 安装相关依赖

3.1 composer

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# 查看composer是否安装成功
composer --version
#若输出版本信息则成功, 例如
Composer version 1.8.6 2019-06-11 15:03:05

3.2 Nodejs和nmp

sudo apt-get install nodejs npm

3.3 使用npm安装gulp和bower

# 更换npm源为国内源(例如淘宝源),提高下载速度
npm config set registry https://registry.npm.taobao.org/
# 查看是否更换成功
npm config get registry
# 安装gulp和bower
sudo npm install -g gulp bower

4 配置PHP

# 修改php配置文件,根据自己版本选择相应路径
vim /etc/php/7.0/cli/php.ini
# 分别修改 php内存限制、上传文件大小限制、使用UTC时区
# 搜索关键字,将相应选项改为如下值
 memory_limit = 512M
 upload_max_filesize = 200M
 date.timezone = UTC
 # 重启php服务
 sudo service php7-fpm restart

5 安装paperwork

# 从GitHub上下载源码
git clone https://github.com/paperwork/paperwork.git
# 使用composer安装PHP依赖:
cd paperwork/frontend
composer install

5.1 迁移数据库

# 修改数据库配置
vim paperwork/frontend/app/config/database.php
# 找到如下代码,将其修改成上面配置的数据库信息,其它信息默认

database.php

'mysql' => array(
                        'host'      => (getenv('DB_1_PORT_3306_TCP_ADDR') ? getenv('DB_1_PORT_3306_TCP_ADDR'    ) : '127.0.0.1'),
                          'port'            => '3306',
                          'database'  => 'paperwork',
                          'username'  => 'paperwork',
                          'password'  => 'yourpassword',
                          'charset'   => 'utf8',
                          'collation' => 'utf8_general_ci',
                          'prefix'    => '',
                  ),

迁移数据库

# 在 paperwork/frontend/下执行
php artisan migrate

mysql版本大于5.7可能会遇到如下报错
[PDOException] #SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for ‘created_at’,mysql5.7后不允许创建时间戳为空,解决办法见此处

5.2 安装npm依赖

# 安装npm依赖
npm install
sudo ln -s /usr/bin/nodejs /usr/bin/node
# 安装gulp依赖
bower install
gulp

5.3 部署paperwork

sudo mv  ~/paperwork /var/www
sudo chown -R www-data:www-data /var/www/paperwork

6 Apache2 配置

# 添加paperwork配置文件
vim /etc/apache2/sites-available/paperwork.conf

paperwork.conf

Alias /paperwork "/var/www/paperwork/frontend/public/"

<Directory /var/www/paperwork/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/paperwork
SetEnv HTTP_HOME /var/www/paperwork

</Directory>
# 创建软连接
sudo ln -s /etc/apache2/sites-available/paperwork.conf /etc/apache2/sites-enabled/paperwork.conf
# 重启apache2服务
sudo service apache2 restart

7 访问paperwork进行用户配置

访问ip/paperwork或者域名/paperwork进行账户配置

参考链接