dynamips iosUnable to create log file (Permission denied).

(13)Permission denied: /home/username/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
Enter Your Query:
Use '%' for wildcards and quotes for "exact phrases"
(13)Permission denied: /home/username/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readableLast Modified: Apr 8,
When viewing your domain, if you see the error "Forbidden" and then check your apache logs:
/var/log/httpd/error_log
/var/log/httpd/domains/<.error.log
and see the error:[crit] [client 1.2.3.4] (13)Permission denied: /home/username/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readableit would imply that apache does not have read access on your /home/username directory.
The cause for this can be permission related, config related or ownership related.
Apache runs as user "apache", thus the directory must be +x for that user or group.
1) As of DirectAdmin 1.38.0, we implement the , which will set the /home/user (for Users) to chmod 750 and chown username:access. & The apache user will be in the "access" group. &To confirm this, type the following:[root@server]# grep ^access: /etc/group
access:x:506:apache,nobody,mail,majordomo,daemonand you should get something similar to the output shown.
If you get a blank list of Users, then the access group exists, but is empty. & To correctly fill the group (on RedHat/CentOS/Debian systems), type:usermod -G access apache
usermod -G access nobody
usermod -G access mail
usermod -G access majordomo
usermod -G access daemonon FreeBSD systems, the command to create the group is:pw groupadd -n access -M apache,nobody,mail,majordomo,daemonbut this implies the group doesn't yet exist. &This case has not been seen on FreeBSD, so likely won't be needed.
2) The error has also been reported for Users who use mod_ruid. &Ensure that all 4 virtual_host2*.conf files have the mod_ruid code set. & Referenced thread from .
&Related Helpfiles
2003 JBMC Software, Suite 173& 3-11 Bellerose Drive, St Albert, AB&
T8N 1P7& Canada.&
Mon-Fri 9AM-5PM MST你的位置: >
> centos 6.5安装GitLab全过程和问题记录
GitLab,是一个使用 Ruby on Rails 开发的开源应用程序,与Github类似,能够浏览源代码,管理缺陷和注释,非常适合在团队内部使用。
官方只提供了Debian/Ubuntu系统下的安装说明文档,如果需要在centos下安装,可以参考这篇:/gitlabhq/gitlab-recipes/tree/master/install/centos,笔者依照这篇文章的说明,成功的在centos系统上安装了gitlab,分享一下自己的安装过程和碰到的问题。
安装的英文文档:
先秀下安装完成后的成果。
centos安装gitlab成果
在开始之前请先查看官方的刚需文档: /gitlabhq/gitlabhq/blob/master/doc/install/requirements.md ,该文档说明了系统,软件和硬件等各方面的需求。详细的了解这些,可以避免碰到很多怪异的问题。
安装步骤总览
基础操作系统(CentOS 6.4 Minimal,升级后为6.5)
Ruby (版本: 2.0.0p353)
创建项目运行用户(创建git账号,方便权限管理)
GitLab Shell(版本:1.8.0)
数据库(可以支持mysql和PostgreSQL,这里使用mysql,版本:5.1.17)
GitLab(版本:6.3.1)
Web服务器(可支持nginx和apache,这里使用nginx,版本:1.0.15)
防火墙(iptables)
1、安装操作系统
这个比较简单,安装完成之后记的配置下网络,使其可以在启动时自动连接。而后需要升级系统和安装一些相应的软件和依赖包,以下逐一说明。
Tips:如果不能连接国外的网络,经常出现网络错误或者couldn&#8217;t not resolve host这样的错误,建议修改dns服务器为8.8.8.8和8.8.4.4。
a、升级操作系统和安装wget
$ sudo yum -y update
$ sudo yum -y install wget
升级完成后,系统版本是6.5。
笔者注:和英文文档不同,笔者这里是先升级系统和安装wget,不然后面的操作会提示wget命令找到。
b、增加EPEL安装源
EPEL,即Extra Packages for Enterprise Linux,这个软件仓库里有很多非常常用的软件,而且是专门针对RHEL设计的,对RHEL标准yum源是一个很好的补充,完全免费使用,由Fedora项目维护,所以如果你使用的是RHEL,或者CentOS,Scientific等RHEL系的linux,可以非常放心的使用EPEL的yum源。
下载并安装GPG key
$ sudo wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://www.fedoraproject.org/static/.txt
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
检验下是否安装成功
$ sudo rpm -qa gpg*
安装epel-release-6-8.noarch包
$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
提示:不要在意x86_64,在i686的机器上一样能使用。
c、增加PUIAS安装源
PUIAS Linux是面向桌面和服务器的完整的操作系统,它靠编译Red Hat Enterprise Linux的源代码包来创建。除了这些上游的软件包外,该项目还提供一些其他的软件仓库:“Addons”包含了通常的Red Hat发行中未收入的额外软件包,“Computational”提供专门针对科学计算的软件,“Unsupported”则收入各种各样的测试性软件 包。该发行由美国普林斯顿 大学的高等研究所维护。
创建/etc/yum.repos.d/PUIAS_6_computational.repo,并添加如下内容:
[PUIAS_6_computational]
name=PUIAS computational Base $releasever - $basearch
mirrorlist=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch/mirrorlist
#baseurl=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puias
下载并安装GPG key
$ sudo wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-puias http://springdale.math.ias.edu/data/puias/6/x86_64/os/RPM-GPG-KEY-puias
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-puias
检验下是否安装成功
$ sudo rpm -qa gpg*
Tips:安装完EPEL和PUIAS两个源后,可以检测下:
$ sudo yum repolist
d、安装GitLab的所需依赖包和工具
$ yum -y groupinstall 'Development Tools'
$ yum -y install vim-enhanced readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc sqlite-devel gcc-c++ libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui python-devel redis sudo wget crontabs logwatch logrotate perl-Time-HiRes git
如果部分包不能安装,例如: eg. gdbm-devel, libffi-devel and libicu-devel,那么增加rhel6的安装源。
$ yum-config-manager --enable rhel-6-server-optional-rpms
e、配置redis
配置redis使其在开机时启动:
$ sudo chkconfig redis on
$ sudo service redis start
f、配置邮件服务器
笔者注:这个过程笔者没有配置,请参考英文文档。
2、安装Ruby
下载并编译:
$ mkdir /tmp/ruby &#038;&#038; cd /tmp/ruby
$ curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p353.tar.gz | tar xz
$ cd ruby-2.0.0-p353
$ ./configure --prefix=/usr/local/
$ make &#038;&#038; make install
安装完成后,重新登录终端确保$PATH生效,检测ruby的安装成功与否:
$ which ruby
/usr/local/bin/ruby
ruby 2.0.0p353 ( revision 43784) [x86_64-linux]
安装bundle:
$ sudo gem install bundler --no-ri --no-rdoc
如果提示sudo: gem: command not found,使用root账号登录执行该命令即可。
3、系统用户
创建用户git
$ adduser --system --shell /bin/bash --comment 'GitLab' --create-home --home-dir /home/git/ git
因为git用户不需要登录,所以这里不需要设置git的密码。
转发所有邮件
笔者注:因为上面没有配置发送邮件,这里也省略。
4、配置GitLab shell
GitLab shell是专门为GitLab开发的提供ssh访问和版本管理的软件。
先使用root登录,而后切换成git
$ su - git
克隆gitlab shell
$ git clone /gitlabhq/gitlab-shell.git
$ cd gitlab-shell
切换成1.8.0版本,并编辑配置
$ git checkout v1.8.0
$ cp config.yml.example config.yml
这里最重要的是将gitlab_url修改成gitlab的访问域名。形如:/
笔者注:如果gitlab是使用https访问,则需将http替换成https,配置文件中的self_signed_cert要修改成true,否则gitlab shell在通过api和gitlab进行通信的时候就会出现错误,导致项目push出错。因为后面配置web服务器的时候是使用ssl,所以这里要按照ssl的方式配置。
Tips: 另外如果使用的域名是测试域名,不要忘记在系统的/etc/hosts做域名映射。
安装一些需要的目录和文件
$ ./bin/install
5、安装数据库
笔者这里使用的是msyql,关于PostgreSQL的安装请参考原文档。
安装mysql并设置开机启动:
$ yum install -y mysql-server mysql-devel
$ chkconfig mysqld on
$ service mysqld start
设置mysql root账号的密码:
$ /usr/bin/mysql_secure_installation
创建新用户和数据库给gitlab使用
# 登录数据库
$ mysql -u root -p
# 输入root密码
# 为gitlab创建使用用户
CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitlab账号的密码';
# 创建gitlaba使用的数据库
CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
# 给予gitlab用户权限
GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
# 登出数据库
6、安装GitLab
将GitLab安装在git的家目录下:
$ su - git
a、克隆GitLab并切换分支到6-3-stable
# 克隆GitLab
$ git clone /gitlabhq/gitlabhq.git gitlab
# 进入gitlab目录
$ cd /home/git/gitlab
# 切换到6-3-stable分支
$ git checkout 6-3-stable
b、配置项目
# 复制配置文件
$ cp config/gitlab.yml.example config/gitlab.yml
# 修改配置文件中的访问域名
(your_domain_name为项目的访问域名)
$ sed -i 's|localhost|your_domain_name|g' config/gitlab.yml
# 设定log和tmp目录所有者和权限
$ chown -R git log/
$ chown -R git tmp/
$ chmod -R u+rwX log/
$ chmod -R u+rwX tmp/
# 创建gitlab-satellites目录
$ mkdir /home/git/gitlab-satellites
# 创建tmp/pids/和tmp/sockets/目录,确保gitlab有相应的权限
$ mkdir tmp/pids/
$ mkdir tmp/sockets/
$ chmod -R u+rwX tmp/pids/
$ chmod -R u+rwX tmp/sockets/
# 创建public/uploads目录
$ mkdir public/uploads
$ chmod -R u+rwX public/uploads
# 复制unicorn配置
$ cp config/unicorn.rb.example config/unicorn.rb
# 编辑unicorn配置
(笔者这里采用默认配置)
$ vim config/unicorn.rb
# 配置git的用户和邮件
$ git config --global user.name "GitLab"
$ git config --global user.email "gitlab@your_domain_name"
$ git config --global core.autocrlf input
这边的配置比较复杂,细心些就行了。
c、配置数据库访问文件
$ cp config/database.yml.mysql config/database.yml
编辑config/database.yml,设置其中连接数据库的账号密码,笔者的配置部分如下:
# PRODUCTION
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: gitlabhq_production
username: gitlab
password: "gitlab"
# host: localhost
# socket: /tmp/mysql.sock
修改其中username和password就可以了,其中密码就是上面数据库步骤中创建gitlab用户的密码。
确保该文件只有git账号有权限读取。
$ chmod o-rwx config/database.yml
d、安装Gems
$ gem install charlock_holmes --version '0.6.9.4'
安装mysql包
$ cd /home/git/gitlab/
$ bundle install --deployment --without development test postgres puma aws
e、初始化数据和激活高级功能
$ cd /home/git/gitlab
$ bundle exec rake gitlab:setup RAILS_ENV=production
这步完成后,会生一个默认的管理员账号:
admin@local.host
f、安装启动脚本
$ wget -O /etc/init.d/gitlab /gitlabhq/gitlab-recipes/master/init/sysvinit/centos/gitlab-unicorn
$ chmod +x /etc/init.d/gitlab
$ chkconfig --add gitlab
开机时启动
$ chkconfig gitlab on
g、检测应用程序状态
$ su - git
$ cd gitlab/
$ bundle exec rake gitlab:env:info RAILS_ENV=production
可以查看到系统、Ruby、GitLab和GitLab Shell的版本和其他信息。
启动GitLab实例
$ service gitlab start
h、查看应用更加详细的信息
$ su - git
$ cd gitlab/
$ bundle exec rake gitlab:check RAILS_ENV=production
这里会提示一个Init script up-to-date的错误,如下:
Init script up-to-date? ... no
Try fixing it:
Redownload the init script
For more information see:
doc/install/installation.md in section "Install Init Script"
Please fix the error above and rerun the checks.
原文说明不用介意这个问题。
7、安装web服务器
笔者选择的是nginx,关于apache方面的请参考原文档
$ yum -y install nginx
$ chkconfig nginx on
$ mkdir /etc/nginx/sites-available
$ mkdir /etc/nginx/sites-enabled
$ wget -O /etc/nginx/sites-available/gitlab /gitlabhq/gitlab-recipes/master/web-server/nginx/gitlab-ssl
$ ln -sf /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
编辑/etc/nginx/nginx.conf,将 include /etc/nginx/conf.d/*. 替换成 include /etc/nginx/sites-enabled/*;,就是修改额外加载的配置文件目录。
编辑/etc/nginx/sites-available/gitlab,将配置中server_name替换成实际访问的域名。
将nginx加入git用户组
$ usermod -a -G git nginx
$ chmod g+rx /home/git/
添加ssl证书或者自己生成一个
$ cd /etc/nginx
$ openssl req -new -x509 -nodes -days 3560 -out gitlab.crt -keyout gitlab.key
$ service nginx start
8、配置防火墙
配置iptables,使用户可以访问http、https和ssh的端口。
$ lokkit -s http -s https -s ssh
重新启动防火墙
$ service iptables restart
至此就算安装完成了。默认的账号密码:
admin@local.host
a、网站不能添加用户和创建项目问题?
查了下日志,发现是权限的问题:
Errno::EACCES (Permission denied &#8211; /home/git/gitlab/log/application.log):
修改用户和所属用户组为git就可以了。
b、无法push?
在上面安装GitLab shell步骤时,一开始笔者是将配置中的gitlab_url设置成/,结果在push的时候出错了,后来查看GitLab项目日志,才发现GitLab shell和GitLab通信的时候产生了一个301跳转。这点通过GitLab的nginx配置也能看的出来。后来将http替换成https,self_signed_cert设置成true就OK了。
安装的过程比较长,其中大部分时间花在了包的下载上。笔者以前没有接触过ruby,安装的过程中也了解了下Ruby、Gem、Bundle等软件,受益匪浅。一般来讲,照着上面的步骤安装,如果系统,软件等版本都一致的话,应该能成功安装。如果出现问题,可以多查查日志。GitLab项目的日志在该项目的log目录内。GitLab shell的日志在GitLab shell项目中的gitlab-shell.log
在安装的过程中多亏了朋友雷志伟的帮忙,少走了不少弯路。此外他现在正在汉化GitLab,英文不好的朋友有福了,有兴趣的朋友也可以参与进来,也可以直接使用已经汉化好的文件,地址:http://git.oschina.net/linxuix/Git-Lab-Zh。
转载请注明: &
与本文相关的文章Those of you who use
and Dynagen are familiar with the .net files that are necessary for the virtual routers to interoperate ().
also uses a file, named &#8220;NETMAP&#8221; to describe the virtual topology.
Here&#8217;s a simple NETMAP file:
101:18 102:2
There are two routers represented here, identified by &#8220;application ID&#8221; values 101 and 102 (which you pass to the IOU images when starting them up).
The first and last lines represent an interface which is connected to nothing. The second line shows that the interface on 101 identified by 18 is connected to the interface on 102 identified by 2. Where do these numbers come from you ask?
Unlike Dynamips/Dynagen, &#8220;NETMAP&#8221; does not use interface names but, rather, interface IDs. The IDs are not tied to a specific interface type (e.g. Serial or Ethernet). When launching an IOU instance, you can specify (via the command-line) which interfaces you want and how many. The ID used for Serial1/2 and Ethernet1/2 would be the same and, as such, it&#8217;s impossible to have both of those interfaces in an single instance.
To calculate the ID used by &#8220;interface x/y&#8221;, you would use the following formula:
id = x + (y * 16)
interface 0/0 = 0
interface 0/3 = 48
interface 1/2 = 33
interface 12/1 = 28
Based on this formula, we can see that in the second line of the example NETMAP file, 101&#8217;s interface 2/1 is connected to 102&#8217;s interface 2/0.
Using this formula (and the resulting values), it should be fairly easily to construct your own NETMAP files from scratch.
Note that you can&#8217;t, unfortunately, &#8220;bridge&#8221; an IOU instance to a physical network without the use of another piece of software named &#8220;IOUlive&#8221;.
Related posts:
Leave a Comment
Popular Articles}

我要回帖

更多关于 dynamips ios 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信