Pages

Tuesday, 19 December 2017

SourceForge用于免费博客搭建

SourceForge用于免费博客搭建(1)-SSH+SFTP+SCP

前言

因为项目零散文件太多太多, 使用git来提交的话实在太慢太慢了. Github的纯静态网页不支持php/python等动态语言处理的风格实在是太约束…数据库也不支持, 真是个代码仓库罢了…
找一些别的解决方案, 看看有木有免费的服务器可用. 先找到的是新浪的云计算SAE, 其他的什么百度的BAE, 亚马逊的云, 阿里巴巴啥的都是收费的…SAE是用什么豆, 低使用量的话可能够用, 但是对访问次数啊什么都有限定, 超过了就给money了..因为我是用来自检的, 访问量暴大.. 所以对响应时间也有要求.
我只是想找个免费的可以提供1G以下大小的地方啊啊啊!! (最好当然有mysql, php/python一类的啦~)
然后看到一个帖子介绍托管静态网页的一些服务商:
服务名称 绑定域名 空间大小 发布方式 托管内容
GitHub Pages 支持 1GB Git 静态网站或 Jekyll 站点
GitCafe Pages 支持 512MB Git 静态网站或 Jekyll 站点
七牛云存储 支持(需备案) 10GB 七牛同步工具 静态网站
Google App Engine 新版不支持 1GB Git 或 GAE 工具 静态、Python、Java、PHP 站点
Opoo Pages 暂不支持 不限 Git OpooPress 站点
SourceForge.net 支持 不限 SCP/FTP 静态、PHP、Python 等站点
几种可以免费托管静态网站的服务对比
  • Github Page/Gitcafe page 是基于Git+Jekyll的, 一般也就够了. 但我的需求比较奇怪: 几十万上百甚至千万的空白文件….
  • 七牛云虽然也不错, 但是还是有访问次数的限制的,空间嘛, 也够用啦~
  • 至于GAE, 嗯, Google那种都爬几次都验证码的公司的产品服务肯定不是那么free和nice的…
最后, 咦, 原来SourceForge也可以托管静态网页还不限空间, 还支持PHP/Python这么diao?!!! 于是我就去看了看. 实在太TM赞了!

SourceForge对于项目的支持功能:

  • SSH登录服务器 !!
  • 网页上传, SFTP/SCP/Rsync !!
  • SSH上去后提供 cgi-bin, htdocs 文件夹(你懂), Apache + MySQL!!
  • 可以使用 GIT/SVN
更多简介和帮助请看Document的TOC

可以访问的目录

这里面有四组地址要记住:
  1. 用户目录: /home/users/首字母/首2字母/用户名
  2. project 主页(就是project.sourceforge.net/)内容所在 /home/project-web/PROJECTNAME/, cgi-bin定向到网页/cgi-bin/下. htdocs就是主页所在咯.
  3. files 位置(就是发布的文件啊, 各个版本zip啊之类): /home/frs/project/PROJECTNAME/
  4. 用户的主页: /home/user-web/USERNAME/, 里面也有cgi-bin和htdocs

SSH

免登陆准备: 如果不想每次都输入账号密码, 当然就是使用公钥私钥啦..在 Account Setting 里头的 SSH Setting 里头黏贴你的公钥就可以了. 每行一个. 不明白的就自己百度或者戳官方这里..
支持使用USERUSER,PROJECT的格式(用,分割两者识别究竟是何project.). 两者有差异, SSH时都是登录到用户HOME目录. SCP/SFTP使用用户名到的是用户目录, 使用 用户名,PROJECTNAME 登录的是PROJECT的web目录.
登录格式是 ssh USER,PROJECT@shell.sourceforge.net, 即门户是 shell.sourceforge.net.
但登录会报错:
>> ssh user,project@shell.sourceforge.net
Logging in to your interactive shell...

You don't have an active shell at this time.  For basic file transfers and
management, use web.sourceforge.net -- it allows rsync, sftp, and scp access.

If you would like to create a shell, use ssh to login using a USER,PROJECT
username with the "create" command.  If you tell ssh to allocate a tty
(e.g. using -t), an interactive shell will be opened when the create is
done.  Otherwise, the create command will exit when the shell becomes
ready for use.  An example create that enters the shell when ready:

    ssh -t USER,PROJECT@shell.sourceforge.net create

Connection to shell.sourceforge.net closed.
因为SF每个登录对话都是有个有效期的(4小时), 需要登录就要:
  • 创建新登录对话, 如提示: ssh -t USER,PROJECT@shell.sourceforge.net create (没有-t创建后会退出)
  • 等待后登录进去就能使用.
  • 退出后从创建登录后4小时内, 只要 ssh User,Project@shell.sourceforge.net即可.
  • 登录进去好, 假设用户名是 hello, 那么路径是/home/users/h/he/hello. 即/home/users/首字母/首2字母/用户名 登陆进去后啥都木有, 不过可以设置.bashrc等东西, 例如我就设置了:
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias goto_home='cd /home/users/p/pl/platinhom'
alias goto_cgi='cd /home/project-web/myproject/cgi-bin'
alias goto_web='cd /home/project-web/myproject/htdocs'
alias goto_file='cd /home/frs/project/myproject'
alias goto_userweb='cd /home/user-web/platinhom'

SCP

可以使用命令行来上传文件!
scp filename USER,PROJECT@frs.sourceforge.net:/home/frs/project/PROJECTNAME/DIRNAME

SFTP

可以使用命令行sftp USER,PROJECT@frs.sourceforge.net 来登录到SFTP, 然后用命令行方式操作。
另外当然可以使用GUI界面例如FileZilla, WinSCP一类软件啦, 配置是:
  • 服务器: frs.sourceforge.net 或者 web.sourceforge.net (后者我在GUI时登不上去..)
  • 端口: 22
  • 用户名: USER,PROJECT
  • 密码自己设定..
使用USER,PROJECT去到的是Project的web 文件目录. 如果用户名不加PROJECT就会跑到用户 Home 目录. 貌似没有办法直接上去就是frs文件目录, 只能使用绝对路径.

RSYNC

  • 上传同步:
rsync -avP -e ssh LOCALDIR/ USER@web.sourceforge.net:/home/project-web/PROJECTNAME/htdocs/
  • 备份到本地同步
rsync -avP -e ssh USER@web.sourceforge.net:/home/project-web/PROJECTNAME/htdocs/ LOCALDIR/

Reference

  1. 官方文件管理介绍
  2. 官方SSH介绍
  3. 官方SCP使用介绍
  4. 官方SFTP使用介绍
  5. Project Web and Developer Web Server Configuration Details
  6. Project Web Filesystem Permissions
  7. Project Web
-----------------------------

SourceForge用于免费博客搭建(2)-使用MySQL服务

 话说SourceForge提供项目的Web Page服务, 里面支持LAMP服务, 可以使用Linux环境下Apache, MySQL, PHP/Python/Perl来构建动态网页和数据库查询. 算是免费构建博客的网站里功能十分强大的! 空间貌似还没有限制! 不要乱用一般就木有问题了.
介绍可以参考:
  1. Project MySQL service

如何开启数据库服务?

Project界面-> Admin 管理页面-> 左下角: Project Web Hosting: MySQL Database 进入数据库设置界面, 设置密码后, 即开启MySQL数据库服务
貌似只有Project Web服务能使用数据库, 用户主页可能不支持数据库(除非登录时带project名?).

数据库名, 用户名和密码, 主机名

  • 数据库名: 在刚才的数据库服务中, 有一个o-数字串_的部分, 这个就是你这个project对应的数据库的名称前缀, 后面可以跟任意东东, 这是属于你project的数据库! 可以设置多个数据库!
  • 一个project有三组用户: RO/ RW /和Admin, 对应就是o-数字串ro,o-数字串rw,o-数字串admin的用户名, 对应密码由Project管理员在这个Admin界面管理三组用户的密码. 三组用户的权限对应:
    • RO: (read-only) 只读, 可以用 SELECT 来读取数据
    • RW: 可以对数据库的数据库表进行 SELECT, INSERT, DELETE, UPDATE 这些常规修改工作
    • ADMIN: 除了RW权限外还可以 REATE, DROP, ALTER, INDEX, LOCK TABLES 这些对报表和数据库的高级操作.
  • 主机名: 使用脚本语言操作MySQL时需要主机名, SourceForge的MySQL对应的主机名为mysql-o, 精确匹配哦. 例如Python:
    ` dbase=MySQLdb.connect(host=’mysql-o’,user=’o-1234567admin’,passwd=’admin’,db=’MyDataBase’)` , 就能成功读取数据库~
更正: 实际上主机名为mysql-LETTER, 就是一个字母, 我这里的项目是o开头的, 所以对应是mysql-o, 对应的用户也是o-数字串. 别的项目时相应的LETTER(包括主机名, 数据库名, 用户名)都要对上.
这个数字串其实是这个项目的group-ID
只有admin级别账号能修改报表和数据库层次.

管理

SF的MySQL可以通过SSH登录使用命令行管理, 也可以使用phpMyAdmin进行管理.
SourceForge不提供X11一类的图形界面功能, 所以图形界面操作数据库就靠phpMyAdmin一类网页界面咯. SourceForge预装了phpMyAdmin, 放心使用~~
  • phpMyAdmin 图形管理网页界面: https://mysql-o.sourceforge.net, 点击后进入数据库登录界面, 弹出登录输入账号密码提示框, 输入之前的用户账号和密码就可以登入 (对应权限不同). phpMyAdmin是常用的管理工具啦, 不作介绍, 自己上网搜, 十分简易.

备份

命令行使用:
mysqldump --host=mysql-{LETTER}.sourceforge.net \
  --user={LETTER}{GROUP ID}admin -p --opt \
  {LETTER}{GROUP ID}_{DATABASENAME} | gzip --fast > dumpfile.mysql.gz
也可以使用phpMyAdmin进行备份.
以上就是SourceForge-MySQL的主要介绍了~ 现在就能正常操作数据库了, 怎么操作不是这里的话题..

注意事项

  • 数据库权限: 通过动态网页可以操作数据库, 操作数据库的权限取决于底层脚本中的用户名权限(RO/RW/ADMIN).
  • 资源: 所有的网页请求都是通过Apache账号来执行, 所有项目都共享同一个数据库资源, 所以资源是有限的(空间不确定).
  • 请求时间限制: 120秒, 超时会断开. 例如用python打开数据库, 然后抽根烟回来, 再操作数据库, 会报出错误: MySQL server has gone away. 因为请求访问后时间是有限的,超时就断开了连接,所以要重新打开。
 ===============================

SourceForge用于免费博客搭建(3)-脚本与动态网页

最后是介绍SF的Web Services服务构建网页了~
动态网页功能是SF提供构建免费博客和项目主页的一大特色(虽然不是啥, 但是免费的提供服务的还能有啥哈?!), 支持多种语言, 支持用户主页和Project主页, 支持链接数据库, 一般支持使用开源第三方软件用于blog生产. 细节请参考以下官方三个文档(尤其第一个):
  1. Project Web and Developer Web Server Configuration Details
  2. Developer Web Services
  3. Project Web Services

动态网页的语言支持以下脚本语言:

  • PHP 5.3.2 under mod_php.
  • Perl 5.8.8
  • Python 2.4.3
  • Ruby 1.8.7
  • Tcl 8.4.13

文件读写

SF的文件系统有其独特特点, 和一般的系统的不同一致(一般就是User/Group/Other), 这里是 “project member”, “project-initiated apache access” 以及 “everyone”. 差异主要是: - 一般系统权限基本是基于用户为单位的, 而SF是基于Project为单位的, 所以一个Project文件夹所有项目成员都是等权限的(A创建, B也能删除). 所以用户部分替换为project member. - 因为实际访问是通过Apache的, 所有用户的组都是Apache. 所以组是Apache的组, 也就是说所有用户都是Apache用户. 但是, 这个是project-initiated的, 就是说只有该项目的应用/文件才能通过apache来控制和修改文件, 不能跨项目(即虽然都是Apache组, 但B项目不能操控A项目的文件) - SF的文件/文件夹权限不能设置为777, 最多就是775.
更多参考参看: Project Web Filesystem Permissions

Email系统

SF提供了EMail系统给project web用于发邮件给用户. 使用很简单, 详细可以参考 Project Web Email Configuration .

No comments:

Post a Comment