最近在公司搭建环境过程中收到各种的折磨,在这里整理了下,贴出来希望对大家有所帮助。文章有不足的地方请大家提醒我更正。

始终是超级小白鼠就来尝试下最新的包的安装,测试了好多次之后,终于安装成功的了,现在安装在本地的虚拟机上,安装通过,现在拿的是linode的虚拟机做测试。安装完成后记录步骤如下,大家如果不是用Lnmp之类的自动安装脚本,如果对于安装细节不是很明白,可以建议自己动手操作一边,明白现在所需要的相关的组件的安装过程,也能更深入的了解系统的各个部分。

操作系统版本:Ubuntu 12.04 64bit

使用root账号登陆系统,建立相关的目录

下载存放路径

/home/ubuntu/down

安装目录

/usr/local/php  #install php-5.4.3

/usr/local/mysql #install mysql5.5.25

/usr/local/openresty #ngx_openresty-1.0.15.9

/usr/local/redis #2.4.14

存储

/storage/redis

配置文件路径:

php配置

/usr/local/php/etc/php/php.ini

/usr/local/php/etc/php/php-fpm.ini

nginx配置

/usr/local/openresty/nginx/conf

项目部署的代码路径,分项目在整个目录下,这里其实有很多的混合的代码,咋个组织比较好呢?

/source/

/source/restybuddy

安装完系统之后,设置root权限

设置root账户

sudo passwd root #设置root的密码

su – root #切换到root正好

替换服务器最近的源

cp /etc/apt/sources.list /etc/apt/sources.list.bak

vim /etc/apt/sources.list

看属于哪个国家,替换最快的源,这样更新会更快些

更新服务器时间(这里有不同的时区可以自己更改)

rm -rf /etc/localtime

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改系统时间

apt-get install -y ntpdate

ntpdate -u pool.ntp.org

date

升级系统组件

apt-get update

apt-get autoremove -y

apt-get -fy install

apt-get install -y build-essential gcc g++ make

for packages in build-essential gcc g++ make automake autoconf re2c wget cron bzip2 libzip-dev libc6-dev file rcconf flex vim nano bison m4 gawk less make cpp binutils diffutils unzip tar bzip2 libbz2-dev unrar p7zip libncurses5-dev libncurses5 libncurses5-dev libncurses5-dev libtool libevent-dev libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlibc openssl libsasl2-dev libxml2 libxml2-dev libltdl3-dev libltdl-dev libmcrypt-dev libmysqlclient15-dev zlib1g zlib1g-dev libbz2-1.0 libbz2-dev libglib2.0-0 libglib2.0-dev libpng3 libfreetype6 libfreetype6-dev libjpeg62 libjpeg62-dev libjpeg-dev libpng-dev libpng12-0 libpng12-dev curl libcurl3 libmhash2 libmhash-dev libpq-dev libpq5 gettext libncurses5-dev libcurl4-gnutls-dev libjpeg-dev libpng12-dev libxml2-dev zlib1g-dev libfreetype6 libfreetype6-dev libssl-dev libcurl3 libcurl4-openssl-dev libcurl4-gnutls-dev mcrypt libcap-dev;

do apt-get install -y $packages –force-yes;apt-get -fy install;apt-get -y autoremove; done

安装语言包

apt-get install language-pack-zh-hans language-pack-zh-hant

服务器支持中文,如果代码里面有中文,可以设置下,也可以不设置

export LC_ALL=”zh_CN.UTF-8″

如果是虚拟机上安装vitualbox tools

现在我们还要到客户机操作系统下,我的是ubuntu下,运行一个命令行控制 台,通过命令将虚拟光驱挂载进来。

mkdir /mnt/cdrom //创建cdrom目录

mount /dev/cdrom /mnt/cdrom //挂载cdrom

下面进入cdrom,运行虚拟光盘上 VBoxLinuxAdditions.run(注意:如果客户机是windows,则需要运行VBoxLinuxAdditions.exe):

cd /mnt/cdrom

sh ./VBoxLinuxAdditions.run

 

虚拟机上设置网卡

1.配置成nat根据本机来上网

2.设置成host-only然后mac下virtual box有问题,先在偏好设置里面添加一个host之后就好了,添加了host 192.168.56.1 这里启用了dhcp但是虚机获取不到还是有问题的。

配置后了之后,需要设置虚机里面的ip,192.168.56.2 之后设置完成就可以通过主机和虚机都可以访问了

3.至此就可以长期的开着的了。

配置多个网卡ip

vim /etc/network/interfaces

添加

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

 

# The loopback network interface

auto lo

iface lo inet loopback

 

# The primary network interface

auto eth0

iface eth0 inet dhcp

 

auto eth1

iface eth1 inet static

address 192.168.56.3

netmask 255.255.255.0

network 192.168.56.0

broadcast 192.168.56.255

gatway 192.168.56.1

重起网卡

/etc/init.d/networking restart

安装JRE

sudo apt-get install openjdk-7-jre-headless

配置开机启动

支持securecrt上传用的(我这里没有在WIN下所以没有安装)

sudo apt-get install chkconfig

sudo apt-get install cmake

sudo apt-get install libncurses5-dev

sudo apt-get install bison

安装git

apt-get install -y git

安装svn

apt-get install -y subversion

 设置默认语言及LC

vim ~/.bashrc 添加

export LANG=en_US:zh_CN.UTF-8

export LC_ALL=C

source ~/.bashrc

配置 ssh自动登陆ubuntu

生成rsa_pub

ssh-keygen -t rsa

如果用户名和目标机器用户名不一样,请修改一下文件

vim ~/.ssh/config

添加,多个多行:

Host 192.168.56.3

user ubuntu

复制authorized的key,可以复制多次:

cat ~/.ssh/id_rsa.pub | ssh ubuntu@192.168.56.3 “cat >> ~/.ssh/authorized_keys”

接下来就可以之间

ssh ubuntu@192.168.56.3 自动登陆

安装MySQL 5.5.25

apt-get install bar

apt-get install libncurses5-dev

groupadd mysql

useradd -s /sbin/nologin -g mysql mysql

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.25.tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/

tar zxvf myql-5.5.25.tar.gz

mv mysql-5.5.25 mysql

cd mysql-5.5.25

cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql/ -DSYSCONFDIR=/usr/local/mysql/etc/ -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DWITH_SSL=bundled -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -LH

make

make install

cd /usr/local/mysql

chown -R mysql .

chgrp -R mysql .

sudo install -m644 /usr/local/mysql/support-files/my-medium.cnf ./etc/my.cnf

sudo /usr/local/mysql/scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data

sudo install -m755 /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/

sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/

sudo ln -s /usr/local/mysql/bin/mysqld_safe /usr/bin/

sudo ln -s /usr/local/mysql/bin/mysql_conf /usr/bin/

sudo ln -s /usr/local/mysql/share/mysql/mysql.server /usr/bin/

vim ./etc/my.cnf

在[mysqld] 下添加

datadir = /usr/local/mysql/data

language= /usr/local/mysql/share/english #此处为language配置项

/etc/init.d/mysqld start

给mysql设置root命令

mysqladmin -h 127.0.0.1 -u root password 123456

/etc/init.d/mysqld status

尝试登陆看看

./mysql -u root -p

use mysql;

update user set Host=”%” where User=”root” and Host=”localhost”;

需要修改my.cnf配置中添加bind_address

设置开机自动启动

update-rc.d mysqld defaults

查看是否设置成功 chkconfig -list mysqld

安装MySQL 5.1.63

groupadd mysql

useradd -g mysql mysql

mkdir -p /usr/local/mysql5001

mkdir -p /usr/local/mysql5001/data

mkdir -p /usr/local/mysql5001/etc

./configure –prefix=/usr/local/mysql5001/ –localstatedir=/usr/local/mysql5001/data/ –sysconfdir=/usr/local/mysql5001/etc/ –with-charset=utf8

make

make install

chown -R root:mysql /usr/local/mysql5001

chown -R mysql:mysql /storage/mysql5001

chown -R mysql:mysql /usr/local/mysql5001/lib

cd /usr/local/mysql5001/bin

cp /usr/local/mysql5001/share/mysql/mysql.server /etc/init.d/mysqld5001

cp /usr/local/mysql5001/share/mysql/my-medium.cnf /usr/local/mysql5001/etc/my.cnf

./mysql_install_db –user=mysql

./mysql -u root -P 5001 -p

use mysql;

update user set Host=”%” where User=”root” and Host=”localhost”;

flush privileges;

php 5.4.3 install

安装PHP 5.4.3

apt-get install php5-gd

apt-get install libxpm-dev

apt-get build-dep t1lib

apt-get install libxslt-dev

apt-get install libt1-dev

apt-get install libmysql++-dev

./configure –prefix=/usr/local/php \

–with-config-file-path=/usr/local/php/etc \

–with-curl \

–with-pear \

–with-gd \

–with-jpeg-dir –with-png-dir –with-zlib \

–with-freetype-dir –with-t1lib \

–with-mcrypt \

–with-mhash \

–with-mysql –with-mysqli \

–with-pdo-mysql –with-openssl \

–with-xmlrpc \

–with-xsl \

–with-bz2 \

–with-gettext \

–with-fpm-user=www-data –with-fpm-group=www-data –enable-fpm \

–enable-exif \

–enable-wddx \

–enable-zip \

–enable-bcmath \

–enable-calendar \

–enable-ftp \

–enable-mbstring \

–enable-soap \

–enable-sockets \

–enable-shmop \

–enable-dba \

–enable-sysvmsg \

–enable-sysvsem \

–enable-sysvshm

 

make && make install

添加PHP的路径到path

vim ~/.bashrc

export PATH=”$PATH:/usr/local/php/bin:/usr/local/php/sbin”

source /etc/profile

准备PHP5的日志文件目录:

mkdir -p /usr/local/php/logs/php-fpm

chown -R www-data:www-data /usr/local/php/logs/php-fpm

准备PHP的配置文件:

cp -f php.ini-production /usr/local/php/etc/php.ini

chmod 644 /usr/local/php/etc/php.ini

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

注意: PHP5的配置文件在/usr/local/php/etc/php.ini, php-fpm的配置文件在/usr/local/php/etc/php-fpm.conf.

设置php-fpm启动管理文件,并让PHP在ubuntu启动时自动运行(下面地sapi是PHP5.4.0安装包中的):

cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod 755 /etc/init.d/php-fpm

设置开机启动

update-rc.d -f php-fpm defaults

vim /usr/local/php/etc/php.ini

添加php.ini中的error_log

error_log = /usr/local/php/logs/

安装PHP5.3

./configure –prefix=/usr/local/php –enable-fpm –with-fpm-user=www-data –with-fpm-group=www-data –with-curl –with-mcrypt –enable-mbstring –enable-pdo –with-pdo-mysql=mysqlnd –with-mysqli=mysqlnd –with-mysql=mysqlnd –with-openssl –with-imap-ssl –with-gd –with-jpeg-dir=/usr/lib/ –with-png-dir=/usr/lib/ –enable-exif –enable-zip

make

make install

自己编译nginx

查看nginx的版本及配置信息

Nginx -V

配置Nginx

apt-get install schedutils

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz

aptitude install geoip-database

groupadd www

useradd -g www www

apt-get install libpcre3 libpcre3-dev openssl libssl-dev gcc automake make

wget http://luajit.org/download/LuaJIT-2.0.0-beta9.tar.gz

make && make install

配置文件

./configure –prefix=/usr/local/nginx –conf-path=/etc/nginx/nginx.conf –error-log-path=/Logs/nginx/error.log \

–http-client-body-temp-path=/Temps/nginx/body –http-fastcgi-temp-path=/Temps/nginx/fastcgi \

–http-log-path=/Logs/nginx/access.log –http-proxy-temp-path=/Temps/nginx/proxy \

–http-scgi-temp-path=/Temps/nginx/scgi –http-uwsgi-temp-path=/Temps/nginx/uwsgi –lock-path=/Locks/nginx.lock \

–pid-path=/Pids/nginx.pid –with-debug –with-http_addition_module –with-http_dav_module \

–with-http_gzip_static_module –with-http_realip_module –with-http_stub_status_module \

–with-http_ssl_module –with-http_sub_module –with-http_xslt_module –with-ipv6 –with-sha1=/usr/include/openssl \

–with-md5=/usr/include/openssl –with-mail –with-mail_ssl_module \

–add-module=/Packages/nginx_modules/ngx_devel_kit \

–add-module=/Packages/nginx_modules/lua-nginx-module \

–add-module=/Packages/nginx_modules/lua-resty-memcached \

–add-module=/Packages/nginx_modules/lua-resty-mysql \

–add-module=/Packages/nginx_modules/lua-resty-redis

–with-http_image_filter_module \

–with-http_geoip_module

make make install

安装Nginx扩展模块

1. 使用参数重新配置:

./configure –prefix=/app/nginx -user=nobody -group=nobody –with-http_stub_status_module \

–with-http_ssl_module –with-http_realip_module \

–add-module=../nginx_upstream_hash-0.3.1/ \

–add-module=../gnosek-nginx-upstream-fair-2131c73/

2. 编译:

make

#不要make install,否则就是覆盖安装

3. 替换nginx二进制文件:

cp /app/nginx/sbin/nginx /app/nginx/sbin/nginx.bak

cp ./objs/nginx /app/nginx/sbin/

nginx的第三方的插件

http://wiki.nginx.org/3rdPartyModules

日志处理

http://www.xmydlinux.org/201105/493.html 启动配置

http://addcn.blogbus.com/logs/107131815.html 脚本

http://longzhiyi.blog.51cto.com/350171/822159 nginx处理cookie

http://linuxcommand.org/man_pages/logrotate8.html log轮询

http://www.5ilinux.com/2011/12/nginx-logrotate.html 详细log轮询配置

咋个安装nginx的模块的内容

http://www.dewen.org/q/655/%E5%A6%82%E4%BD%95%E5%8D%95%E7%8B%AC%E6%B7%BB%E5%8A%A0nginx%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E5%9D%97

LUA语言

http://blog.csdn.net/hong201/article/category/531338

安装OpenResty套件,本次选择agentzh大侠做的,省去上面配置的麻烦

apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl

./configure –with-luajit

make

make install

默认安装到/usr/local/openresty/目录下

nginx.conf中有配置文件错误的时候也会出错的。导致无法route

安装全文检索coreseek/sphinx

wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz

tar zxvf coreseek-4.1-beta.tar.gz

cd mmseg-3.2.14

./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决

./configure –prefix=/usr/local/mmseg3

make && make install

cd ..

##安装coreseek

cd csft-4.1

sh buildconf.sh #输出的warning信息可以忽略,如果出现error则需要解决

./configure –prefix=/usr/local/coreseek –without-unixodbc –with-mmseg –with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ –with-mmseg-libs=/usr/local/mmseg3/lib/ –with-mysql ##如果提示mysql问题,可以查看MySQL数据源安装说明

make && make install

cd ..

编译安装mysql 5.1-*的sphinxse引擎:

1. 在MySQL源码目录中建立storage/sphinx目录,并将Sphinx源码目录中的mysqlse目录下的全部文件拷贝到这个目录。示例:

mkdir -p /home/yangxinqi/down/mysql-5.1.57/storage/sphinx

cp -R /home/yangxinqi/down/coreseek-4.1-beta/csft-4.1/mysqlse/* /home/yangxinqi/down/mysql-5.1.57/storage/sphinx

2. 在MySQL源码目录运行

sh BUILD/autorun.sh

3. 配置(configure)MySQL,启用Sphinx引擎,prefix指定安装到所在的目录

./configure –with-plugins=sphinx –prefix=/usr/local/mysql5004

4. 构建(build)并安装MySQL

make

make install

编译安装mysql 5.5系列的sphinx引擎

cd mysql-5.5.25

mkdir ./storage/sphinx

cp -r /home/ubuntu/down/coreseek-4.1-beta/csft-4.1/mysqlse/* ./storage/sphinx

cmake . -DCMAKE_BUILD_TYPE=Release -DWITH_SPHINX_STORAGE_ENGINE=1

make

cp storage/sphinx/ha_sphinx.so /usr/local/mysql/lib/plugin

mysql -uroot -p

mysql>install plugin sphinx soname “ha_sphinx.so”;

mysql>show engines;

安装redis

1、下载安装Redis:cd /tmp

wget http://redis.googlecode.com/files/redis-2.4.6.tar.gz

tar -zxf redis-2.4.6.tar.gz

cd redis-2.4.6

make

make PREFIX=/usr/local/redis install

ln -s /usr/local/redis/bin/* /usr/bin

2. 配置init脚本:wget https://github.com/ijonas/dotfiles/raw/master/etc/init.d/redis-server

wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf

sudo mv redis-server /etc/init.d/redis-server

sudo chmod +x /etc/init.d/redis-server

sudo mv redis.conf /etc/redis.conf

3. 初始化用户和日志路径第一次启动Redis前,建议为Redis单独建立一个用户,并新建data和日志文件夹

sudo useradd redis

sudo mkdir -p /var/lib/redis

sudo mkdir -p /var/log/redis

sudo chown redis.redis /var/lib/redis

sudo chown redis.redis /var/log/redis

4、设置开机自动启动,关机自动关闭update-rc.d redis-server defaults

5、启动Redis:

/etc/init.d/redis-server start

安装scws分词组件

wget http://www.ftphp.com/scws/down/scws-1.2.0.tar.bz2

tar xvf scws-1.2.0.tar.bz2

./configure –prefix=/usr/local/scws

make

make install

安装scws的php扩展

cd phpext

phpize

./configure –with-php-config=/usr/local/php/bin/php-config

make

make install

vim /usr/local/php/etc/php.ini

extensiton=scws.so

安装phpredis

wget https://github.com/nicolasff/phpredis/zipball/master

unzip master

cd nicolasff-phpredis-f1231c9

phpize

./configure -with-php-config=/usr/local/php/bin/php-config

make && make install

vim /usr/local/php/etc/php.ini

extension=redis.so

安装phpunit

cd /usr/local/php/bin #如果不是root,请使用sudo ./pear ….

pear channel-discover pear.phpunit.de

pear channel-discover components.ez.no

pear channel-discover pear.symfony-project.com

pear install phpunit/PHPUnit

安装vim ide (喜欢的可以安装,个人感觉还不错)

http://code.google.com/p/vimide/wiki/GuideCn

sudo apt-get install exuberant-ctags wget unzip

svn checkout http://vimide.googlecode.com/svn/trunk/linux vimide

cd vimide/

sh install.sh

vim /root/.vimrc

map <silent><F3> <ESC>:NERDTreeToggle<CR

FastDFS配置

编译错误的时候需要找到libpthread.a的位置

/usr/lib/x86_64-linux-gnu/libpthread.a

http://blog.csdn.net/chen861201/article/details/7341637

find / -name ‘libpthread.so’

/usr/lib/x86_64-linux-gnu/libpthread.so

按照后配置

1. extension = fastdfs_client.so

2. fastdfs_client.tracker_group_count = 1

3. fastdfs_client.tracker_group0 = /etc/fdfs/client.conf

然后修改client.conf 中的traceserver的地址就好了

http://code.google.com/p/fastdfs/

这里是支持的地方

http://bbs.chinaunix.net/forum.php?mod=forumdisplay&fid=240&page=1

可以直接部署nginx+fastdfs进行存储,还是很方便的

安装memcached

wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz

./configure –prefix=/usr/local/memcached

/usr/local/memcached/bin/memcached -m 64 -p 11211 -u ubuntu -l 127.0.0.1 &

telnet 127.0.0.1 11211

 

安装php memcachd扩展

wget https://launchpad.net/libmemcached/1.0/1.0.6/+download/libmemcached-1.0.6.tar.gz

sudo apt-get install libcloog-ppl0

make && make install

wget http://pecl.php.net/get/memcached-2.0.1.tgz

tar zxvf memcached-2.0.1.tgz

cd memcached-2.0.1

phpize

./configure –with-php-config=/usr/local/php/bin/php-config

make

make install

vim /usr/local/php/etc/php.ini

extension=memcached.so

/etc/init.d/php-fpm restart

memcat –servers=127.0.0.1:11211

输出的为 memcached 服务器的一些统计数据等。

 一些维护工具的文章

安装ClusterShell服务器运维工具

sudo apt-get install clustershell

http://huoding.com/2011/11/12/133

MYSQL高可用性方案

http://code.google.com/p/mysql-master-ha/

需要系统开机启动的则可以加入到chkconfig 或者 加入到 /etc/init.d/rc.local中开机自动启动

禁用ROOT,这样会更安全

将ubuntu加入到root

chmod u+w /etc/sudoers

vim /etc/sudoers
添加
loginusername ALL=(ALL) ALL
chmod u-w /etc/sudoers
完成后禁用roo

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐