Confach 发表于 September 26, 2007 3:26 pm
版权信息 :可以任意转载, 转载时请务必以超链接形式标明文章 原始出处和作者信息.
网址:http://www.36sign.com/blog/working/how-to-deploy-rails-with-apache-and-cgi.html
Rails+Apache2+fcgid安装
安装Ruby
tar xzvf ruby-1.8.6.tar.gz
cd ruby-1.8.6
./configure
make
make install
检查一下ruby是否安装,输入:
ruby -v
安装zlib
tar xvzf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
make install
安装rubygem
tar xzvf rubygems-0.9.4.tgz
cd rubygems-0.9.4
ruby setup.rb
为了看是否安装上,输入:
gem -v
Rails
gem install rails -y
有的时候可能因为网速问题装不上,请耐心多试记下.
测试
rails testRails
cd testRails
ruby script/server
会有如下显示:
=> Booting WEBrick…
=> Rails application started on http://0.0.0.0:3000=> Ctrl-C to shutdown server; call with –help for options
[2007-08-15 08:02:04] INFO WEBrick 1.3.1
[2007-08-15 08:02:04] INFO ruby 1.8.6 (2007-03-13) [i686-linux]
[2007-08-15 08:02:04] INFO WEBrick::HTTPServer#start: pid=16306 port=3000
ImageMagick
tar xzvf ImageMagick-6.3.5-6.tar.gz
cd ImageMagick-6.3.5
./configure
make
make install
看是否安装成功,输入:
usr/local/bin/convert logo: logo.gif
安装RMagick
tar xvzf RMagick-1.15.10.tar.gz
cd RMagick-1.15.10
./configure
make
make install
安装fcgi
由于ruby的fcgi支持库需要在编译的时候联接FCGI的系统库,因此我们需要先安装FCGI库,下载FCGI源代码发行包:
http://www.fastcgi.com/dist/
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure –prefix=/usr/local/fcgi
make && make install
安装fcgid
apt-get install libapache2-mod-fcgid
/etc/init.d/apache2 force-reload
安装fcgi for ruby
gem install fcgi
配置apache
可以如下
NameVirtualHost *
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
SocketPath /var/lib/apache2/fcgid/sock
DefaultInitEnv RAILS_ENV production
IdleTimeout 600
ProcessLifeTime 3600
MaxProcessCount 8
DefaultMinClassProcessCount 3
DefaultMaxClassProcessCount 3
IPCConnectTimeout 8
IPCCommTimeout 48
</IfModule>
<VirtualHost *>
ServerAdmin webmaster@localhost
#ServerName localhost
DocumentRoot /path/to/app/public/
ErrorLog /xxx/log/httpd-error_log
CustomLog /xxx/log/httpd-access_log common
<Directory /path/to/app/public/>
Options ExecCGI FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
配置应用程序
编辑.htaccess文件
注释 AddHandler cgi-script .cgi以及AddHandler fastcgi-script .fcgi,增加AddHandler fcgid-script .fcgi.
将RewriteRule ^(.*)$ dispatch.cgi [QSA,L]改为RewriteRule ^(.*)$ dispatch.fcgi [QSA,L].
可以如下:
# General Apache options
AddHandler fcgid-script .fcgi
Options +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
编辑dispatch.fcgi
加入
require ‘fcgi_handler’
require ‘rubygems’
require_gem ‘fcgi’
需要注意的是,我们一般都是在windows平台开发,然后部署到linux上去,如果您属于这种情况,请注意文件的第一行编译器的设置.windows上可能是:
#! C:\ruby\bin\ruby
需要改成
#! /usr/local/bin/ruby
问题解答
Q:如果C编译器没有安装,应该如何安装呢?
A:在debian上使用如下命令:
apt-get install build-essential
Q:如果出现以下错误:
<— lib
/usr/local/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:4:in `require’: no such file to load — zlib (LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:4
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:8:in `require’
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:8
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:504:in `require’
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:504
from /home/confach/pkgs/rubygems-0.9.4/./post-install.rb:81:in `require’
from /home/confach/pkgs/rubygems-0.9.4/./post-install.rb:81:in `install_sources’
from /home/confach/pkgs/rubygems-0.9.4/./post-install.rb:116:in `run_hook’
from setup.rb:1526:in `exec_task_traverse’
from setup.rb:1342:in `exec_install’
from setup.rb:1000:in `exec_install’
from setup.rb:814:in `invoke’
from setup.rb:773:in `invoke’
from setup.rb:1578
我该怎么办?
A:说明zlib无法加载.解决方案:
cd ruby-1.8.6/ext/zlib/
ruby extconf.rb –with-zlib-include=/usr/include –with-zlib-lib=/usr/lib
make
make install
Q:如果利用查看fcgi for ruby是否已经装上?
A:请调用gem list,看是否fcgi在其中
Q:如果我利用gem install fcgi 安装不上怎么办?
A:很简单,下载其源代码然后进行安装:
然后就可以安装ruby的fcgi支持库了,下载ruby-fcgi-0.8.7.tar.gz:
http://rubyforge.org/projects/fcgi/
tar xzvf ruby-fcgi-0.8.7.tar.gz
cd ruby-fcgi-0.8.7
ruby install.rb config — –with-fcgi-include=/usr/local/include –with-fcgi-lib=/usr/local/lib
ruby install.rb setup
ruby install.rb install
需要注意的是,还是安装上fastcgi.
Q:如我我遇到如下错误怎么办?
mod_fcgid: can’t apply process slot for "xxx/xxx/public/dispatch.fcgi"
A:这个比较简单,修改一下Apache的日志目录权限,例如chmod 755 /var/log/apache2
Q:如果遇见如下错误怎么办?
Premature end of script headers: dispatch.fcgi
A:请先检查一下该文件的配置以及.htaccess.如果问题依旧,请修改一下dispatch.fcgi的权限,至少是755更多详情,参考我的另一文章:
"Premature end of script headers: dispatch.fcgi"终极解决方案
.
Q:如果提示RewriteEngine拼写错误,或者没有启用该功能怎么处理?
A:非常简单,那是因为apache的rewrite模块没有加载.请先检查rewrite模块是否已经安装.然后执行下面的命令:
cd /etc/apache3/mods-available
nano -e rewrite.load
输入
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
Ctrl+X保存
cd ..
ln -s mods-available/rewrite.load mods-enabled
然后重启apache
/etc/init.d/apache2 restart
Q: 如何选择fastcgi和fcgid呢?
A:很简单,如果是apache1.x,选用fastcgi,如果是apache2.x,请选用fcgid
Q:对系统有什么要求?
A:建议采用2.6版本的内核
Q:怎么使用ImageMagick无法显示图片?
A:请先调用
/usr/local/bin/convert logo: logo.gif
如果没法生成或者生成的gif文件无效,请重新安装ImageMagick.在安装之前请安装jpeg,freetype,png,tiff等库.
Q:如果访问网站显示的是dispatch.fcgi的源内容,怎么办?
A:一般来说,有2个理由导致:
1. 没有安装fcgi module。因为没有安装,访问时没法解析。关于安装的问题,参见上面安装fcgi这一节。
2. 或者是apache不同版本造成的。
问题一,在安装fcgi是时出错.
checking for fcgiapp.h... no
就执行apt-get install libfcgi-dev
分享到:
相关推荐
包括Debian下的Apache+php/jsp+Mysql、Apache+php/jsp+psotgreSQL安装配置方法,Windows下的Apache+php/jsp+Mysql、Apache+php/jsp+psotgreSQL、Apache+php/jsp+SqlLite安装配置方法,是各公司架设部署Web系统相关...
- 使用包管理器安装Apache,例如在CentOS中使用命令`sudo yum install httpd`。 - 配置Apache的主配置文件`httpd.conf`,根据需要调整虚拟主机设置、文档根目录等参数。 ##### 3. 安装MySQL - 通过包管理器安装...
本篇教程旨在指导初学者在 Debian 服务器上配置各种服务,包括 Samba、FTP、Mail、NFS、Exim、DNS 和 Apache 等。作者从准备工作开始,指导读者安装 Debian 3.0(Woody)基本系统, update 包列表,并建议保留计算机...
7. **配置Tomcat**:在后端的每个Tomcat服务器上,你可能需要调整`server.xml`文件中的`Connector`配置,以允许来自Apache的代理请求。通常,这意味着将`Connector`的`protocol`属性设置为`AJP/1.3`或`HTTP/1.1`,并...
- 首先,你需要在服务器上分别安装Apache HTTP服务器和Tomcat。确保它们都是最新稳定版,以获得最佳兼容性和安全性。 - Apache通常通过apt-get(Ubuntu/Debian)或yum(CentOS/RHEL)等包管理器进行安装。Tomcat...
这个“linux+apache+tomcat+java配置文件.rar”压缩包很可能是为了帮助用户搭建和配置这样一个环境而准备的。下面,我们将详细探讨这些组件以及它们之间的配置要点。 1. Linux:作为开源的操作系统,Linux是许多...
在Debian或Ubuntu系统中,可以使用以下命令安装Apache: ```bash sudo apt-get install apache2 ``` 安装完成后,可以通过访问`http://localhost`来测试Apache是否已正确运行。 **MySQL 安装** MySQL是一个关系型...
以下是对【标题】"Linux+Apache+PHP+MySQL配置攻略"的详细解释: 1. **Linux**:作为基础操作系统,这里提到的是REDHAT7.2,但大多数现代Linux发行版(如Ubuntu、CentOS或Debian)也支持类似的配置步骤。 2. **...
文件列表中的"Ubutu+Linux+Apache +php+Socket 编程"可能是一个包含教程、配置文件、示例代码的压缩包,帮助初学者或开发者快速搭建和理解这个环境。解压并探索这些文件,可以更深入地了解每部分的工作原理和它们...
在Ubuntu/Debian系统中,命令是`sudo apt-get install apache2`;在CentOS/RHEL中,命令是`sudo yum install httpd`。 3. **启动Apache**:安装完成后,启动Apache服务,Ubuntu/Debian使用`sudo systemctl start ...
在本案例中,我们将使用它作为平台来部署Apache和Subversion。 Apache是全球最广泛使用的Web服务器,它支持多种功能,如HTTP、HTTPS协议,以及各种模块扩展,使得我们可以方便地添加对Subversion的支持。安装Apache...
此外,它强调了容器技术的支持,例如Docker和Kubernetes,这使得在Debian上部署和管理容器化应用变得更加容易。在安全方面,buster也提供了强大的安全更新机制,确保系统安全。 最后,`debian_buster`之前的版本,...
Armbian_5.67_Aml-s805_Debian_stretch_default+EMMC直刷
在这个场景中,可能是Ubuntu、CentOS或Debian等Linux发行版,它们都是服务器部署的常见选择。 2. **APACHE**:Apache HTTP Server是最流行的Web服务器软件,用于托管静态和动态网站。它支持多种编程语言和模块,如...
这个教程详细介绍了如何在Debian系统上手动安装LiteSpeed、PHP和MySQL。每个步骤都包含具体的命令行操作,确保了在没有使用一键安装包的情况下也能顺利完成整个流程。这种手动安装方式虽然需要更多的时间和精力,但...
首先,我们需要在服务器上安装Apache和Tomcat。在Linux环境下,通常使用包管理器如`apt-get`(Ubuntu/Debian)或`yum`(CentOS/RHEL)来安装;在Windows环境下,可以从官方网站下载对应版本的安装包。 1. **Apache...
你可以在这个平台上部署PHP应用,如WordPress、Drupal等,或者进行Web开发和测试。记得定期更新软件以保持安全。 在提供的压缩包文件“linux下的Apache2 + mysql5 + php5 安装详解”中,可能包含了更详细的步骤、...
通过使用LANMP套件,用户可以在Linux系统上快速建立一个适合开发和部署PHP应用的服务器环境,而无需深入理解每个组件的底层细节。这对于初学者和开发者来说,无疑提高了工作效率,也降低了维护成本。在实际操作中,...
在Ubuntu或Debian系统中,可以使用以下命令安装Apache: ```bash sudo apt-get update sudo apt-get install apache2 ``` 安装完成后,Apache会自动启动。你可以通过访问`http://localhost/`来检查服务器是否...
- **配置Apache**:启用PHP模块,如在Ubuntu/Debian中使用`sudo a2enmod php7.x`(根据你的PHP版本替换x),然后重启Apache服务:`sudo systemctl restart apache2`。 - **测试安装**:在Web浏览器中访问`...