function create_yum #此函数是搭建sohu的yum仓库
function download #此函数是下载全部所需的软件包
function install_apache #此函数是安装apache软件包
function config_apache #此函数是修改apache的服务脚本和开启
apache服务
function install_nginx #此函数是安装nginx软件包
function install_mysql #此函数是安装mysql软件包
function config_mysql #此函数是初始化mysql和开启mysql的服务
function install_php #此函数是安装php软件包
function config_php #此函数提供php的配置文件
function install_php_fpm #此函数是安装php-fpm软件包提供fastcgi服务
function config_php_fpm #此函数是修改php-fpm的配置文件盒开启
php-fpm的服务
function install_xcache #此函数是安装为php代码加速的软件包
function install_memcache #此函数是安装连接memcached的软件包
function install_memcached #此函数是安装memcached软件包
function install_lamp #此函数里面只包含了apache,mysql,php的函数
function config_lamp
function install_lammp #此函数里面只包含了apache,mysql,
memcached,php的函数
function config_lammp
function install_lnmp #此函数里面只包含了nginx,mysql,php的函数
function config_lnmp
function install_lnmmp #此函数里面只包含了nginx,mysql,
memcached,php的函数
function config_lnmmp如果各位博友觉得配置文件的路径存放数据的路径与各位博友所要求的结果不一样,那请各位博友只需小小的自行修改一下#!/bin/bash
#discripte:frist,you linux server must be surf Internet because we use http://mirrors.sohu.com/ yum source and epel source
function create_yum {
dir=/etc/yum.repos.d/
mv $dir/*.repo /tmp
cat >> $dir/sohu.repo <<EOF
[centos]
name=sohu-centos
baseurl=http://mirrors.sohu.com/centos/\$releasever/os/\$basearch
gpgcheck=1
enable=0
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-6
[epel]
name=sohu-epel
baseurl=http://mirrors.sohu.com/fedora-epel/\$releasever/\$basearch/
enable=1
gpgcheck=0
EOF
yum clean all &>/dev/null
}
function download {
yum -y install wget
cd /root
echo -e "\033[32m=========download about web server source package==========\033[0m"
wget http://mirror.esocc.com/apache/apr/apr-1.4.6.tar.bz2
wget http://mirror.esocc.com/apache/apr/apr-util-1.5.2.tar.bz2
wget http://mirror.esocc.com/apache/httpd/httpd-2.4.6.tar.bz2
wget http://nginx.org/download/nginx-1.4.2.tar.gz
echo -e "\033[32m=========download about php or php-fpm soure package========\033[0m"
wget http://xcache.lighttpd.net/pub/Releases/3.0.3/xcache-3.0.3.tar.bz2
wget http://pecl.php.net/get/memcache-2.2.7.tgz
wget http://downloads.php.net/stas/php-5.4.19.tar.bz2
echo -e "\033[32m======download about memcached source package========\033[0m"
wget http://nchc.dl.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.21-stable.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
echo -e "\033[32m======download about mysql source package=========\033[0m"
wget http://mysql.llarian.net/Downloads/MySQL-5.5/mysql-5.5.33.tar.gz
}
function install_apache {
cd /root
yum -y install pcre-devel
tar xf apr-1.4.6.tar.bz2
tar xf apr-util-1.5.2.tar.bz2
tar xf httpd-2.4.6.tar.bz2
cd /root/apr-1.4.6
./configure --prefix=/usr/local/apr && make && make install
echo -e "\033[32m=========apr is ok========\033[0m"
cd /root/apr-util-1.5.2
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
echo -e "\033[32m=========apr-util is ok========\033[0m"
cd /root/httpd-2.4.6
./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib \
--with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most \
--enable-mpms-shared=all --with-mpm=event && make && make install
echo -e "\033[32m=========httpd is ok========\033[0m"
}
function config_apache {
echo -e "\033[32m frist,Associated system path \033[0m"
echo "PATH=/usr/local/apache/bin/:$PATH" >/etc/profile.d/httpd.sh
source /etc/profile.d/httpd.sh
ln -sv /usr/local/apache/include/ /usr/include/httpd
echo -e "\033[32m second,Modify configuration files and provided systemV scripts \033[0m"
IP=`ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk -F: '{print $2}' | cut -d' ' -f1`
cp /root/httpd-2.4.6/build/rpm/httpd.init /etc/rc.d/init.d/httpd
sed -i '/httpd/s/usr\/sbin\/httpd/usr\/local\/apache\/bin\/httpd/g' /etc/rc.d/init.d/httpd
sed -i '/^httpd/a\prog=httpd' /etc/rc.d/init.d/httpd
sed -i '/^pidfile/s/var\/run/usr\/local\/apache\/logs/g' /etc/rc.d/init.d/httpd
sed -i 's/etc\/httpd\/conf\/httpd.conf/usr\/local\/apache\/conf\/httpd.conf/g' /etc/rc.d/init.d/httpd
sed -i '$a ServerName '$IP':80' /usr/local/apache/conf/httpd.conf
chkconfig --add httpd
chkconfig --level 35 httpd on
service httpd start
}
function install_nginx {
cd /root
yum -y install pcre-devel
tar xf nginx-1.4.2.tar.gz
groupadd nginx
useradd -r -g nginx nginx
cd /root/nginx-1.4.2
./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre && make && make install
echo -e "\033[32m=========nginx is ok========\033[0m"
}
function install_mysql {
cd /root
yum -y install cmake bison
useradd -r mysql
tar xf mysql-5.5.33.tar.gz
cd /root/mysql-5.5.33
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make && make install
echo -e "\033[32m=========mysqld is ok========\033[0m"
}
function config_mysql {
echo -e "\033[32m frist,Associated system path,and Initialization database \033[0m"
cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chown -R root.mysql /usr/local/mysql/
mkdir -pv /mydata/data
chown -R mysql:mysql /mydata/data/
sed -i '/thread_concurrency/a\ datadir = /mydata/data' /etc/my.cnf
sed -i '/datadir/a\ innodb_file_per_table = 1' /etc/my.cnf
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ --basedir=/usr/local/mysql
service mysqld start
echo "PATH=/usr/local/mysql/bin:$PATH" >/etc/profile.d/mysqld.sh
source /etc/profile.d/mysqld.sh
echo "/usr/local/mysql/lib" >/etc/ld.so.conf.d/mysqld.conf
ldconfig -v | grep mysql
ln -sv /usr/local/mysql/include/ /usr/include/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
}
function install_php {
yum -y install libxml2-devel bzip2-devel curl-devel libmcrypt-devel mhash-devel
tar xf php-5.4.19.tar.bz2
cd /root/php-5.4.19
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr \
--enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-curl \
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
make && make install
echo -e "\033[32m=========php is ok========\033[0m"
}
function config_php {
cp /root/php-5.4.19/php.ini-production /etc/php.ini
}
function install_php_fpm {
yum -y install libxml2-devel bzip2-devel curl-devel libmcrypt-devel mhash-devel
tar xf php-5.4.19.tar.bz2
cd /root/php-5.4.19
./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd \
--with-openssl --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir \
--with-zlib-dir --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt --with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d --with-bz2 --with-curl --enable-maintainer-zts --enable-fpm && make && make install
echo -e "\033[32m=========php-fpm is ok========\033[0m"
}
function config_php_fpm {
echo -e "\033[32m frist,Associated system path \033[0m"
IP2=`ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk -F: '{print $2}' | cut -d' ' -f1`
cp /root/php-5.4.19/php.ini-production /etc/php.ini
echo "PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH" >/etc/profile.d/php-fpm.sh
source /etc/profile.d/php-fpm.sh
echo -e "\033[32m second,Modify configuration files and provided systemV scripts \033[0m"
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sed -i 's/127\.0\.0\.1/'$IP2'/g' /usr/local/php/etc/php-fpm.conf
cp /root/php-5.4.19/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
service php-fpm start
chkconfig --add php-fpm
chkconfig --level 35 php-fpm on
}
function install_xcache {
cd /root
tar xf xcache-3.0.3.tar.bz2
if [ -d /usr/local/php ];then
cd /root/xcache-3.0.3
/usr/local/php/bin/phpize
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make && make install
else
install_php_fpm
cd /root/xcache-3.0.3
/usr/local/php/bin/phpize
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make && make install
echo -e "\033[32m=========xcache is ok========\033[0m"
fi
}
function install_memcache {
cd /root
tar xf memcache-2.2.7.tgz
if [ -d /usr/local/php ];then
cd /root/memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache && make && make install
else
install_php_fpm
cd /root/memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache && make && make install
echo -e "\033[32m=========memcache is ok========\033[0m"
fi
}
function install_memcached {
cd /root
tar xf libevent-2.0.21-stable.tar.gz
tar xf memcached-1.4.15.tar.gz
cd /root/libevent-2.0.21-stable
./configure --prefix=/usr/local/libevent && make && make install
echo -e "\033[32m=========libevent is ok========\033[0m"
cd /usr/local/libevent/
echo "/usr/local/libevent/lib" >/etc/ld.so.conf.d/libevent.conf
ldconfig -v | grep libevent
ln -sv /usr/local/libevent/ /usr/include/libevent
cd /root/memcached-1.4.15
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
make && make install
echo -e "\033[32m=========memcached is ok========\033[0m"
}
function install_lamp {
install_apache
install_mysql
install_php
install_xcache
}
function config_lamp {
config_apache
config_mysql
config_php
}
function install_lnmp {
install_nginx
install_mysql
install_php
install_xcache
}
function config_lnmp {
config_mysql
config_php
}
function install_lammp {
install_apache
install_mysql
install_php
install_xcache
install_memcache
install_memcached
}
function config_lammp {
config_apache
config_mysql
config_php
config_php_fpm
}
function install_lnmmp {
install_nginx
install_mysql
install_php
install_xcache
install_memcache
install_memcached
}
function config_lnmmp {
config_mysql
config_php
config_php_fpm
}
echo -e "\033[32m====make sure yum is ok=========\033[0m"
#create_yum
echo -e "\033[32m====now,download all package====\033[0m"
#download
echo -e "\033[32m====install development packages====\033[0m"
#yum -y groupinstall "Development tools" "Server Platform Development"
echo -e "\033[32m=========you can choice you need install package==========\033[0m"
cat <<EOF
apache|A) install apache source package.
nginx|N) install nginx source package.
mysql|M) install mysql source package.
php|P) install php source package.
php-fpm|PF) install php-fpm source package.
xcache|X) install xcahe source package.
memcache|ME) install memcache source package.
memcached|MD) install memcached source package.
lamp) install lamp source package.
lammp) install lammp source package.
lnmp) install lnmp source package.
lnmmp) install lnmmp source package.
q|Q) quit
EOF
read -p "Please choose to install: " Choice
echo -e "\033[32m=====start install $Choice====\033[0m"
until [ $Choice == q -o $Choice == Q ];do
case $Choice in
apache|A)
install_apache
config_apache ;;
nginx|N)
install_nginx ;;
mysql|M)
install_mysql
config_mysql ;;
php|P)
install_php
config_php ;;
php-fpm|PF)
install_php_fpm
config_php_fpm ;;
xcache|X)
install_xcache ;;
memcache|ME)
install_memcache ;;
memcached|MD)
install_memcached ;;
lamp)
install_lamp
config_lamp ;;
lammp)
install_lammp
config_lammp ;;
lnmp)
install_lnmp
config_lnmp ;;
lnmmp)
install_lnmmp
config_lnmmp ;;
q|Q)
break
esac
read -p "Have any choice agin, if you no,q|Q is quit: " Choice
done 这个脚本和nginx systemV,memcached system V的脚本以附件的形式上传了很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121