动手搭建开发网站: nginx, wiki + trac + git (一)

本文详细介绍了如何在Ubuntu Server 12.04.1 LTS上部署Nginx、MediaWiki、Trac与Git,包括安装配置步骤和关键细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原料:

安装和配置Nginx

安装: 
apt-get install nginx-full
文件系统 布局和 url规划:
  • /home/services  -- 服务存放目录
  • /home/sites  -- 各个站点的名空间
  • /home/media  -- 存放静态资源
  • /home/helpers  -- 帮助程序
# vi /etc/nginx/sites-enabled/default
server {
        server_name www.example.com;
        index  index.php index.html index.htm;

        root /home/sites/default;
        access_log off;

        client_max_body_size 5m;
        client_body_timeout 60;
}


部署Mediawiki

Mediawiki部署,Mysql数据库支撑,nginx收到请求后,以fast-cgi协议扔给php-fpm的socket,后者来从线程/进程池中调出线程/进程来执行index.php。
整个部署过程需要:
  1. 安装mediawiki及其依赖包
  2. 配置nginx以导出web界面
  3. 创建供mediawiki使用的数据库账号
  4. 在线配置mediawiki
  5. 配置php mail()函数后端,以启用通知功能
安装
mkdir -p /home/services/wiki/web
tar xf mediawiki-1.19.tar.gz --strip 1 -C /home/services/wiki/web

# 变更权限,程序文件所有者为root,其他用户不可更改
chown -R root.root /home/services/wiki/web
安装依赖:
apt-get install mysql-server php-apc php5-gd php5-intl imagemagick php5-fpm
配置url:
在原有nginx基础上,把www.example.com/wiki分给 mediawiki:
# export to web
mkdir -p /home/sites/default
ln -ds /home/services/wiki/web /home/sites/default/wiki
配置nginx:vi  /etc/nginx/sites-enabled/default
        location ~ \.php$ {
                if (!-e $request_filename) {
                        return 404;
                }

                fastcgi_pass   unix:/tmp/phpfpm.sock;
                fastcgi_index  index.php;
                fastcgi_intercept_errors on;
                include fastcgi_params;
        }

        # wiki
        location /wiki {
                try_files $uri $uri/ @wiki_rewrite;
        }

        location @wiki_rewrite {
                rewrite ^/wiki/(.*)$ /wiki/index.php?title=$1&$args;
        }

        location ^~ /wiki/maintenance/ {
                return 403;
        }

        location = /wiki/_.gif {
                expires max;
                empty_gif;
        }

        location ^~ /wiki/cache/ {
                deny all;
        }

        location /wiki/dumps {
                root /home/sites/default/wiki/local;
                autoindex on;
        }

       ...

        # Bottom (for mediawiki)
        # 这段要放在配置文件的最后,后面新加入的配置要在其上!!
        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                try_files $uri /index.php;
                expires max;
                log_not_found off;
        }
创建数据库账号:
  • 为mysql的root用户设置密码:mysqladmin -u root
  • 以mysql root用户登陆并创建数据库(<wikiuser>: <password>):
mysql -u root -p

create database wikidb;
grant index, create, select, insert, update, delete, alter, lock tables on wikidb.* to 'wikiuser'@'localhost' identified by 'password';
配置wiki
  • 在浏览器中访问:http://www.example.com/wiki,回答完一系列问题后,下载了一个LocalSettings.php
  • 修改LocalSettings.php:
    • $wgFileExtensions = array('bmp', 'png', 'jpg', 'jpeg', 'gif', 'svg', 'pdf', 'doc', 'xls', 'ppt', 'odt', 'ods', 'odp', 'odg', 'tar', 'gz', 'c', 'cpp', 'py', 'sh', 'log', 'txt');
    • $wgAllowExternalImages = true;
    • 移除该行,允许注册账号:$wgGroupPermissions['*']['createaccount'] = false;
  • LocalSettings.php放到/home/services/wiki/web下,并所有者改为root
配置php mail()
后端基本上是配置成sendmail的命令调用,不过sendmail这货挺复杂的。这里召唤了一个发邮件的帮助脚本: mailSender.py
用法如下:
  • 安装mailSender.py:
# 安装依赖的python模块
apt-get install python-pyinotify

mkdir -p /home/helpers/sendmail
cd /home/helpers/sendmail

cp /path/to/mailSender.py .
chmod 755 mailSender.py
chown root.root mailSender.py

mkdir MAILCACHE
# Assume: All clients run as www-data
chown www-data.www-data MAILCACHE
  • 配置mailSender.py:SMTP服务器的地址和用户账号
vi /home/helpers/sendmail/mailSender.py
WorkingDir = '/home/helpers/sendmail/MAILCACHE'
SelfID = 'mailSender'
smtp_server = 'smtp.example.com'
smtp_port = 25
smtp_user = '<user>'
smtp_password = '<password>'
smtp_use_tls = False
default_from_addr = 'user@smtp.example.com'
  • 配置php-fpm:
vi /etc/php5/fpm/php.ini
...
[mail function]
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = /home/helpers/sendmail/mailSender.py -t -i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值