发布时间:2014-09-05 17:00:39作者:知识屋
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
作者“马扬鞭须努力!”
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能