`
sillycat
  • 浏览: 2542517 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Linux Deploy Rails3 with Ruby1.9.2(4)Configure the rails in Apache2

阅读更多
Linux Deploy Rails3 with Ruby1.9.2(4)Configure the rails in Apache2

Change the configuration of apache2
>vi httpd.conf
LoadModule passenger_module /home/luohua/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9/gems/passenger-3.0.8/ext/apache2/mod_passenger.so
PassengerRoot /home/luohua/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9/gems/passenger-3.0.8
PassengerRuby /home/luohua/.rvm/rubies/ruby-1.9.2-p290

try to restart the apache server
>bin/apachel restart

error messages:
httpd: Syntax error on line 423 of /opt/tools/httpd/conf/httpd.conf: API module structure 'passenger_module' in file /home/luohua/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9/gems/passenger-3.0.8/ext/apache2/mod_passenger.so is garbled - expected signature 41503232 but saw 41503230 - perhaps this is not an Apache module DSO, or was compiled for a different Apache version?

solutions:
That is because I have 2 version of apache2 on my server. I will use the one who compiled passenger.
The compile passenger information:
* Apache 2... found at /usr/bin/httpd
* Apache 2 development headers... found at /usr/sbin/apxs
* Apache Portable Runtime (APR) development headers... found at /usr/bin/apr-config
* Apache Portable Runtime Utility (APU) development headers... found at /usr/bin/apu-config

>sudo mv /usr/sbin/httpd /usr/sbin/httpd.bak
>sudo ln -s /opt/tools/httpd/bin/httpd /usr/bin/httpd
>sudo mv /usr/sbin/apxs /usr/sbin/apxs.bak
>sudo ln -s /opt/tools/httpd/bin/apxs /usr/sbin/apxs

find the version of apache
>bin/apachectl -V | grep SERVER_CONFIG_FILE

located the APXS2
>export APXS2=/opt/tools/httpd/bin/apxs

try to restart the apache again
>bin/apachel restart

error message:
[Wed Aug 31 14:47:23 2011] [notice] SIGHUP received.  Attempting to restart
*** Passenger ERROR (ext/common/ApplicationPool/../SpawnManager.h:220):
Could not start the spawn server: /home/luohua/.rvm/rubies/ruby-1.9.2-p290: Permission denied (13)
[ pid=14425 thr=3086257024 file=ext/apache2/HelperAgent.cpp:354 time=2011-08-31 14:47:23.906 ]: Could not start the spawn server: write() failed: Broken pipe (32)
     in 'Passenger::SpawnManager::SpawnManager(const std::string&, const boost::shared_ptr<Passenger::ServerInstanceDir::Generation>&, const Passenger::AccountsDatabasePtr&, const std::string&, const Passenger::AnalyticsLoggerPtr&, int, const std::string&)' (SpawnManager.h:540)
     in 'Passenger::ApplicationPool::Pool::Pool(const std::string&, const boost::shared_ptr<Passenger::ServerInstanceDir::Generation>&, const Passenger::AccountsDatabasePtr&, const std::string&, const Passenger::AnalyticsLoggerPtr&, int, const std::string&)' (Pool.h:1078)
     in 'Server::Server(Passenger::FileDescriptor, pid_t, const std::string&, bool, const std::string&, const std::string&, const std::string&, const std::string&, unsigned int, unsigned int, unsigned int, unsigned int, const Passenger::VariantMap&)' (HelperAgent.cpp:241)
     in 'int main(int, char**)' (HelperAgent.cpp:344)
[Wed Aug 31 14:47:23 2011] [error] *** Passenger could not be initialized because of this error: Unable to start the Phusion Passenger watchdog because it encountered the following error during startup: Unable to start the Phusion Passenger helper agent: it seems to have crashed during startup for an unknown reason, with exit code 1
[Wed Aug 31 14:47:23 2011] [notice] Apache/2.2.19 (Unix) Phusion_Passenger/3.0.8 configured -- resuming normal operations

solutions:
>sudo chmod a+x -R  /home/luohua/.rvm/rubies/ruby-1.9.2-p290
or
>sudo chmod 777 -R  /home/luohua/.rvm/rubies/ruby-1.9.2-p290

add this to my httpd.conf
PassengerRuby /usr/bin/ruby
PassengerDefaultUser root

link the ruby to /usr/bin
>sudo ln -s ~/.rvm/rubies/ruby-1.9.2-p290/bin/ruby /usr/bin/ruby

Add one more Virtual host and visit our rails application
<VirtualHost *:80>
    ServerName www.sillycat.com
    DocumentRoot /opt/work/projectname/public
    <Directory /opt/work/projectname/public>
        Allow from all
        Options -MultiViews
    </Directory>
</VirtualHost>

I comments the following lines in httpd.conf:
#<Directory />
#    Options FollowSymLinks
#    AllowOverride None
#    Order deny,allow
#    Deny from all
#</Directory>

After all these done, I can visit http://www.sillycat.com and get the pages.

That is not good way for rails, because I have some other applications on apache, and I do not want this application take the ROOT
content path.

So I will make all the static things in htdoc directory /opt/tools/httpd/htdocs
<VirtualHost *:80>
    ServerName ud1129.chinaw3.com
    DocumentRoot /opt/tools/httpd/htdocs
    <Directory /opt/tools/httpd/htdocs>
        Allow from all
    </Directory>
</VirtualHost>

link my project to the htdocs directory
>sudo ln -s /opt/work/projectname/public /opt/tools/httpd/htdocs/projectname

<VirtualHost *:80>
    ServerName ud1129.chinaw3.com
    DocumentRoot /opt/tools/httpd/htdocs
    <Directory /opt/tools/httpd/htdocs>
        Allow from all
    </Directory>

    RailsBaseURI /projectname                 
    <Directory /opt/tools/httpd/htdocs/projectname> 
        Options -MultiViews              
    </Directory>
</VirtualHost>

Tips: In this way, wa can make multi rails applications.
<VirtualHost *:80>
    ....
    RailsBaseURI /app1
    RailsBaseURI /app2
    RailsBaseURI /app3
</VirtualHost>

copy all the static things to htdocs/asset directory
>sudo cp /opt/work/projectname/app/assets/images  /opt/tools/httpd/htdocs/assets
>sudo cp /opt/work/projectname/app/assets/javascripts /opt/tools/httpd/htdocs/assets
>sudo cp /opt/work/projectname/app/assets/stylesheets /opt/tools/httpd/htdocs/assets

Ok, done, visit http://www.sillycat.com/projectname

references:
http://serdaryildirim.net/ruby-on-rails/installing-passenger.html
http://stackoverflow.com/questions/4946426/getting-rails-3-and-passenger-to-work-on-centos-5-4-apache-error
http://www.modrails.com/documentation/Users%20guide%20Apache.html

分享到:
评论

相关推荐

    linuxdeploy-2.6.0-259.apk

    安卓平台虚拟机,最新版下载地址:...linuxdeploy-2.6.0-259.apk 为目前最新版(2020-02-01更新),最低支持Android 5.0。Android 4.4 支持版本:https://download.csdn.net/download/zhyjie100/12254490。

    Linux Deploy.zip

    Linux Deploy是一款专为Android设备设计的应用程序,它允许用户在Android设备上部署并运行Linux发行版,无需root权限。这个工具对于开发者、系统管理员或对Linux感兴趣的用户来说,是一个非常实用的工具,因为它使得...

    linuxdeploy

    linuxdeploy

    Agile Web Development with Rails Final

    Ruby on Rails (often shortened as Rails) is a server-side web application framework written in Ruby under the MIT License. It uses Model-View-Controller (MVC) architecture and emphasizes convention ...

    linuxdeploy-2.1.0-237.apk

    Applications of the new system are run in a chroot environment and working together with the Android platform. All changes made on the device are reversible, i.e. the application and components can ...

    linuxdeploy-2.5.1-257.apk和linuxdeploy-2.6.0-259 .apk

    Linuxdeploy是Linux系统中用于构建AppImage的工具,它能够帮助开发者将应用程序及其依赖打包成一个可执行的文件,使得用户无需安装即可运行。这里提到的`linuxdeploy-2.5.1-257.apk`和`linuxdeploy-2.6.0-259.apk`...

    linuxdeploy-x86_64.AppImage

    linux下的程序,打包为.AppImage

    Linux Deploy安装包 2.6版本

    可用于手机安装Linux环境 供无法使用Play商店小伙伴下载

    Linux deploy 32位系统 怎么安装宝塔怎么安装linux系统安装宝塔后搭建网站

    【Linux Deploy 安装与使用详解】 Linux Deploy是一款在Android设备上部署Linux系统的应用程序,它允许用户在手机或平板电脑上运行Linux发行版,如CentOS7。在32位的Linux系统上安装宝塔面板,可以实现轻量级的...

    linuxdeploy,在android上安装并运行gnu/linux.zip

    2. **安装依赖**:在Android设备上运行Linuxdeploy可能需要一些额外的工具,如Termux——一个Android上的终端模拟器和Linux环境。Termux提供了包管理器,用于安装像bash、wget、curl等命令行工具,这些都是安装Linux...

    Android-linuxdeploy.zip

    Android-linuxdeploy.zip,在android上安装并运行gnu/linux,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    Deploy Rails Application

    Rails 经典开发参考书, Ruby on rails 系近年来在西方日渐盛行的一套网页开发工具,其高度集成化时开发时间大大缩短.

    High Performance in-memory computing with Apache Ignite.pdf

    based guide, where each chapter focuses on the complete implementation of a real-world scenario, the commonly occurring challenges in each scenario has also discussed, along with tips and tricks and ...

    install-linuxdeploy-action:github运行linuxdeploy的动作

    install-linuxdeploy-action 在Github Actions工作流程上安装LinuxDeploy的操作。 请参阅LinuxDeploy主页上的linuxdeploy实用程序详细信息。 该操作可以处理LinuxDeploy的插件。 您可以指定插件和要安装的目标目录...

    rails web server deploy guide

    标题 "rails web server deploy guide" 暗示了本文将关注如何部署Rails应用程序到Web服务器。Rails是Ruby on Rails的简称,是一个流行的开源Web开发框架,用于构建动态、数据驱动的网站。部署Rails应用通常涉及将...

    kali-armhf-rootfs-linuxdeploy2.02-223.tar.gz rootfs 离线镜像安装包

    1.2020年6月4日09:27:41 积分调整1 ...linuxdeploy2.02-223.备份的离线镜像。可直接导入 kali-armhf aarch64 这个好像是32位的 如果需要安装jdk,直达https://download.csdn.net/download/zl20110000/11173517

    Beginning.Ruby.From.Novice.to.Professional.3rd.Edition.1484212797

    This book is for beginning programmers, programmers new to Ruby, and web developers interested in learning and knowing the foundations of the Ruby programming language. Table of Contents Part 1: ...

    jdk-8u211-linux-arm64-vfp-hflt.tar.gz aarch64 chroot linuxdeploy 64位linux

    描述中提到,这个JDK可以用于"linuxdeploy"工具,这是一个用于构建和部署Linux应用程序容器的工具,特别适合于在aarch64架构的ARM设备上,比如手机。"已验证centos7 aarch64可用"意味着这个JDK已经在CentOS 7的64位...

Global site tag (gtag.js) - Google Analytics