Ubuntu12.04 64bit最新環境安裝教程


首發於:我是買家博客

作者:楊鑫奇

最近在公司搭建環境過程中收到各種的折磨,在這里整理了下,貼出來希望對大家有所幫助。文章有不足的地方請大家提醒我更正。

始終是超級小白鼠就來嘗試下最新的包的安裝,測試了好多次之后,終於安裝成功的了,現在安裝在本地的虛擬機上,安裝通過,現在拿的是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
完成后禁用root

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM