分类目录归档:Linux

Linux

Ubuntu 14.04 安装Redmine及整合Git环境之快速偷懒篇

现在网上转来转去的文章太不靠谱,坑太多,填坑填得心很憔悴。
这篇文章在我填坑埋土大半天后写成,已经反复测试过3遍,整个过程只需要手动copy即可。
系统环境为 Ubuntu 14.04 LTS ,不保证其他版本依然有效,但仍可作为有效参考。

一、准备工作

# 首先升级软件包
sudo apt-get update
sudo apt-get upgrade
# 安装LAMP环境
sudo apt-get install tasksel
tasksel
sudo apt-get install phpmyadmin

二、安装 Redmine

sudo apt-get install redmine-mysql
sudo apt-get install redmine
sudo apt-get install imagemagick #可选
sudo gem install bundler
#安装后主要目录结构如下:
#redmine目录:/usr/share/redmine/
#配置文件目录:/etc/redmine/default/
#日志文件目录:/var/log/redmine/

三、安装Email

sudo apt-get install postfix #Select ‘Internet Site’

四、一些必要的权限配置

#程序启动时需要创建配置文件及log,给他权限
sudo chmod 775 /etc/redmine/default/
sudo chmod -R 775 /var/log/redmine/
sudo mkdir /usr/share/redmine/tmp
sudo chmod -R 775 /usr/share/redmine/tmp
#sudo mkdir /usr/share/redmine/public/plugin_assets # 如果需要安装plugin
#sudo chmod 775 /usr/share/redmine/public/plugin_assets
sudo mkdir /usr/share/redmine/files
sudo chmod 775 /usr/share/redmine/files
#为整合apache做准备
sudo chown -R www-data:www-data /usr/share/redmine

五、使用 webrick 测试

sudo ruby /usr/share/redmine/script/rails server webrick -e production
#默认端口是3000,例如访问http://git.mimiz.cn:3000/ 查看效果

六、配置Apache

sudo apt-get install libapache2-mod-passenger
sudo ln -s /usr/share/redmine/public /var/www/redmine
sudo vi /etc/apache2/sites-available/redmine.conf
#增加一行:RailsBaseURI /redmine
sudo vi /etc/apache2/sites-enabled/000-default.conf
#修改web根目录为:DocumentRoot /var/www
#增加一行:ServerName localhost
sudo vi /etc/apache2/mods-available/passenger.conf
#增加一行:PassengerDefaultUser www-data
sudo a2ensite redmine
service apache2 reload
sudo service apache2 restart

七、配置 Redmine

#创建config配置文件
sudo cp /usr/share/redmine/config/configuration.yml.example /etc/redmine/default/configuration.yml
#编辑config文件
sudo vi /etc/redmine/default/configuration.yml
#查找修改以下内容:

production:
    email_delivery:
        delivery_method: :sendmail
attachments_storage_path: /usr/share/redmine/files
scm_stderr_log_file: /var/log/redmine/redmine_scm_stderr.log

sudo service apache2 restart #重启生效

八、安装 Git

sudo apt-get install git git-core
#一些简单的设置
git config –global user.name “mimi”
git config –global user.email “mimi@mimiz.cn”
#查看设置
git config –list

九、为Redmine创建版本库

#为图方便我创建到Redmine目录中
sudo mkdir /usr/share/redmine/gitrepo
sudo mkdir /usr/share/redmine/gitrepo/project1
cd /usr/share/redmine/gitrepo/project1
sudo git init –bare
#给他权限,同样为了方便我设置777
sudo chmod -R 777 /usr/share/redmine/gitrepo/
sudo chown -R www-data:www-data /usr/share/redmine

十、在Redmine系统中设置版本库路径

在Redmine系统中,path 路径要填系统的绝对路径 /usr/share/redmine/gitrepo/project1
这里有个大坑,需要commit一次代码才能显示出来,否则总是显示404:
The entry or revision was not found in the repository

十一、本地连接Git

#这里的username是你ssh登录系统的username
username@server-ip:/usr/share/redmine/gitrepo/project1

十二、如果你想修改目录

#参考这篇文章:
http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_in_a_sub-URI
sudo vi /usr/share/redmine/config/environment.rb
在文件最后一行添加:
Redmine::Utils::relative_url_root = “/path”

———-我是无敌的终结线——–

Advertisements

搭建CentOS6+Apache+MySQL+PHP+PostFix服务器环境之快速偷懒篇

以目前最新版CentOS6为例,整个过程只需要手动copy即可。

一、配置网络

如果购买的云主机可以省略这步,如果自己安装的CentOS需要先配置IP地址,以静态IP为例:
配置网卡:

vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0

修改网关:

vi /etc/sysconfig/network
NETWORKING=yes
GATEWAY=192.168.1.1

修改DNS:

vi /etc/resolv.conf
nameserver 8.8.8.8

重启网络:

service network restart

二、增加国内yum源

cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
wget http://mirrors.aliyun.com/repo/Centos-6.repo
yum makecache
yum install yum-fastestmirror -y

三、提前配置防火墙

vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT #for ftp
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT #for ftp
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT #for ftp
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #for apache
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #for mysql
-A INPUT -p tcp --dport 12000:13000 -j ACCEPT #for ftp PASV
service iptables restart

四、安装Apache

yum install httpd
vi /etc/httpd/conf/httpd.conf
修改以下内容:
ServerName localhost:80
AllowOverride All
Options FollowSymLinks
DirectoryIndex index.html index.html index.php

创建虚拟主机:
vi /etc/httpd/conf.d/httpd-vhosts.conf
增加以下内容:
NameVirtualHost *:80
<virtualhost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
ServerName localhost
#ErrorLog “logs/localhost-error.log”
#CustomLog “logs/localhost-access.log” common
</virtualhost>
<virtualhost *:80>
ServerAdmin webmaster@domain.com
DocumentRoot /home/domain_com/public_html
ServerName domain.com
ServerAlias http://www.domain.com
#ErrorLog logs/domain.com-error.log
#CustomLog logs/domain.com-access.log common
</virtualhost>

设置Apache开机启动

chkconfig httpd on
service httpd restart

五、安装MySQL

yum install mysql mysql-server
/etc/init.d/mysqld start
chkconfig mysqld on

设置root密码:

/usr/bin/mysqladmin -u root password 'new-password'

六、安装PHP

yum install php
service httpd restart

目前yum安装的是PHP5.3.3

根据yum源选择需要安装的组件:

yum search php
yum install php-bcmath php-gd php-imap php-ldap php-mbstring php-mysql php-odbc php-pdo php-pear php-soap php-xml php-xmlrpc php-mcrypt
service httpd restart
service mysqld restart

七、安装phpMyAdmin

目前最新版本是4.2.4,但根据yum安装的php和mysql版本,应该安装4.0.10才更合适。
首先进入要存放phpmyadmin的目录

cd /var/www/html/
wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.0.10/phpMyAdmin-4.0.10-english.zip
unzip phpMyAdmin-4.0.10-english.zip

为apache配置phpmyadmin的虚拟目录:

vi /etc/httpd/conf/httpd.conf
Alias /phpmyadmin "/var/www/phpmyadmin/"
<Directory "/var/www/phpmyadmin/">
AllowOverride None
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>

八、安装vsftpd

yum install vsftpd
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
#注意这里:如果chroot_local_user设置了YES,那么chroot_list_file是不被chroot的用户(可以向上改变目录)。
#如果chroot_local_user设置了NO,那么chroot_list_file是被chroot的用户(无法向上改变目录)。
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
pasv_max_port=13000 #这里是设置PASV使用的端口范围 和前面iptables规则对应
pasv_min_port=12000

创建chroot_list
touch /etc/vsftpd/chroot_list

创建ftp用户

useradd -d /var/www/html/ -g ftp -s /sbin/nologin -M ftpusername
passwd ftpusername
chown -R ftpusername /var/www/domain_com
chmod -R 755 chmod -R 755
service vsftpd restart
chkconfig vsftpd on

这时登录ftp应该会出现550错误,原因是没有配置SELINUX权限
因为是偷懒,直接关闭SELINUX:

vi /etc/selinux/config
SELINUX=disabled

临时关闭:

/usr/sbin/setenforce 0

九、安装Postfix

一般来说CentOS内置了Postfix
检查下看看:

yum -qa | grep postfix

yum安装:

yum install postfix

安装后命令行运行mail测试一下,就算没问题了估计也不能通过php的mail()发送邮件,因为httpd没有maildrop的权限

chmod 777 /var/spool/postfix/maildrop

其他可能存在的权限问题:

chown apache.apache -R /var/www/html
chown mysql.mysql -R /var/lib/mysql

完毕!

Ubuntu 9.10 安装 thinkpad APS 硬盘保护系统

我的本本是T60,自从用了Linux之后,自带的硬盘保护功能就再也没用过,一直以为不支持Linux系统,早晨在Ubuntu论坛看到有人在Ubuntu8.10上面安装APS驱动成功了,才知道Linux也有APS驱动,迫不及待的去尝试一下,结果折腾了半天才弄好,
网上的方法都是针对Ubuntu8.10的,使用的包版本也都不是最新版的,现把针对最新版本系统和软件的过程记录下来:

首先,要安装hdaps驱动(参考:http://www.thinkwiki.org/wiki/HDAPS),
官方的地址在这里:http://hdaps.sourceforge.net/
最新版本是:hdapsd-20090401.tar.gz ,
但是老外们都推荐使用tp-smapi(参考:http://www.thinkwiki.org/wiki/Tp_smapi),
什么原因我也不知道,地址在这里:http://tpctl.sourceforge.net/
最新版本是:tp_smapi-0.40.tgz
把tp_smapi解压缩,先load一下:
#sudo make load HDAPS=1 FORCE_IO=1
如果显示”drivers successfully loaded”,可以进行下一步安装:
#sudo make install HDAPS=1 FORCE_IO=1
安装成功后,检查是不是有hdaps的mod:
#lsmod | grep hdaps
配置自动加载模块:
#sudo gedit /etc/modules
加入下面几行:
thinkpad_ec
tp_smapi
hdaps
然后:
#sudo gedit /etc/modprobe.d/local.conf
增加:
# enable thinkpad_ec
options thinkpad_ec force_io=1
# option to correctly set tilting through hdaps sensor
options hdaps invert=1

下一步安装hdapsd,下载地址在:http://sourceforge.net/projects/hdaps/files/hdapsd/hdapsd-20090401/hdapsd-20090401.tar.gz/download
解压缩后直接make:
#sudo make
#sudo make install

装好了之后,启动服务HDAPS:
#sudo service hdapsd start
配置自动启动:
wget http://www.unet.univie.ac.at/~a0604095/hdapsd
sudo chmod 733 hdapsd
sudo cp hdapsd /etc/init.d/
sudo /etc/init.d/hdapsd start

接下来,安装显示硬盘状态的小图标,下载地址:http://www.zen24593.zen.co.uk/hdaps/gnome-hdaps-applet-20081204.tar.gz
#tar zxvf gnome-hdaps-applet-20081204.tar.gz
#gcc $(pkg-config --cflags --libs libpanelapplet-2.0) -o gnome-hdaps-applet gnome-hdaps-applet.c
#sudo cp gnome-hdaps-applet /usr/bin/
#sudo mkdir /usr/share/pixmaps/gnome-hdaps-applet/
#sudo cp *.png /usr/share/pixmaps/gnome-hdaps-applet/
#sudo cp GNOME_HDAPS_StatusApplet.server /usr/lib/bonobo/servers/

执行完成后(可能需要重启GNOME),把项目添加到面板,选择HDAPS Status Applet。
到这里基本上OK了,现在晃动一下笔记本,图标会变 ^_^

我测试了一会儿,个人感觉Linux下的APS系统不如Win下的灵敏,不知道什么原因。

折腾了整整一上午,中午吃过饭后把上午的步骤凭记忆记录了这么多,在安装的过程中,还有包依赖的问题,记不清具体是哪些包了,总之遇到找不到的包就:apt-get install packagename ,不出意外都能搞定。

也许还有什么细小的步骤没有记录,但实在记不起来了,发现有什么不对的朋友请指正。过年过的酒喝多了,飘飘然的,上午做的事下午就模糊了,真杯具。。。

iptables 端口映射的一点经验

1.对于“内部实际提供服务的机器”如果和做端口转换的机器的内网ip在同一个网段内,并且“内部实际提供服务的机器”的网关就是做端口转换的机器的内网ip,这种情况下只需要一条语句:

iptables -t nat -A PREROUTING -d “对外公网ip” -p tcp –dport “对外端口” -j DNAT –to “内部实际提供服务的ip”:”实际提供服务的端口”

2.对于“内部实际提供服务的机器”如果和做端口转换的机器的内网ip不在同一个网段内,或者“内部实际提供服务的机器”的网关不是做端口转换的机器的内网ip,这种情况下就需要条语句:

iptables -t nat -A PREROUTING -d “对外公网ip” -p tcp –dport “对外端口” -j DNAT –to “内部实际提供服务的ip”:”实际提供服务的端口”

iptables -t nat -A POSTROUTING -d “内部实际提供服务的ip”-p tcp –dport “实际提供服务的端口” -j SNAT –to “运行iptables机器的内网ip”

3.端口转发其实就是做DNAT转换,在做DNAT转换的那个机器上(也就是iptables运行的那个机器)有记录相关转换的对应关系,回去的包如何转换用户不用管系统会处理。

4.做端口转换的情况下,iptables 的3条链中nat的链才能对端口进行防火墙过滤,其他的链无法控制。

5.未完待续…… :mrgreen:

忘记Root密码的解决办法

忘记了Linux Root密码怎么办?
通过Linux单用户模式来修改密码吧。

以RHEL4.6为例,进入GRUB引导菜单,
按”e”键进入编辑模式,选择”kernel /vmlinuz-2.6.9-67…”,
再按”e”键,在文本结尾处输入”single”,回车,
按”b”键让GRUB引导单用户模式。
引导成功后,您会看到Shell提示为:
sh-3.00#
用passed命令来修改密码吧!
键入:
sh-3.00# passwd root
输入两遍新口令后reboot一下,成功!

就是喜欢Linux

(纪念2002-2004年盲目崇拜Linux的疯狂时光)

记得第一次接触Linux是在99年,由于好奇,在爱机上安装了简化版的Unix,看着一行行的命令提示符头昏眼花的,于是心有不甘安装了当时广为流行的RedHat Linux.当时做为菜鸟的我来说,Linux是那么的高不可攀,无从下手。不会驱动,无法配置中文,图形界面速度超慢,就觉得在windows那里得来的有关计算机的经验好像完全用不上。而喜欢Linux是在阅读了大量关于Linux的文章之后才渐渐对它有所了解,而后日久生情,深深的喜欢上了它。

有很多人会问Linux到底有什么优点,我不知道,我会回答我不知道。Linux安装复杂,可用的软件比起Windows也少得可怜,如果你用Linux只是办公、玩游戏,那么推荐你用XP,因为它有良好的兼容性和稳定性。而这样你永远也只是一个Windows用户,Windows系统永远是属于微软的。Linux却不同,它是一个开源的系统,你可以看到它的内部结构,学习它的工作原理,并根据自己的个性加以改造,它会成为属于你自己的系统。所以我喜欢“`

喜欢Linux,因为它代表了自由、开放、创新、共享的互联网精神。然而,在堆积如云的书籍和众口一词的说法中,都说是乔布斯和比尔盖茨创造了PC产业。事实上,他们在PC产业腾飞的初期,的确起到了力挽狂澜的作用。但是,PC业的真正缔造者却是众多无名的计算机业余爱好者。Linux就是他们智慧的结晶。

记得国外某著名杂志,将Linus列为软件业未来的新偶像,将取代盖茨。确实,Linus神话正在迅速掩过盖茨神话。过去人们往往将盖茨渲染成一个天才程序员,但实际上这多是虚构的故事。盖茨的代表作是他和艾伦在别人基础上编写的Basic语言,1K大小,代码水平一般。而Linus则一下子就端出了一个操作系统Linux,150多万行的程序,比微软4000多名高薪程序员编织出来的数千万行的Windows NT还要雅致,还要可靠。后来,Linus秉承了自由软件的传统和思想,主张源代码公开,使程序员和用户一起融入产品开发中,可以根据自己的需要修改、完善。而且用户可以自由拷贝,充分享受信息技术革命带来的好处。正是因为这样,大量的优秀程序员参与进了Linux的开发行业使之得到了快速的发展,在短短几年中如日中天。

比尔.盖茨曾公开表示,他根本没把Linux放在眼里,他预测Linux只会起一些有限的作用。而现在,微软真正感到日渐成熟的Linux带来的压迫。这就是自由共享精神的力量所在,Linux代表了这种精神,它唤回了业界久违了的PC精神,是PC和互连网精神的又一次发扬。总之,我喜欢Linux,喜欢自由、开放、创新的精神,发自内心的喜欢,喜欢的轰轰烈烈、一塌糊涂““`