作者:yuliying
转自:http://blog.youkuaiyun.com/yuliying/article/details/11770189
有些软件包可能电脑上有了就不用重新装了,我因为是ubuntu server版,啥都没有所以一个个装下去了。也可以选择直接apt-get 安装。
以下是我安装lamp以及memcache , redis 等的记录。有些创建文件夹,进入文件夹的命令就不写了。
mkdir /data/www
chmod 0777 /data/www
mkdir /data/logs
chmod 0777 /data/logs
mkdir /data/temp
chmod 0777 /data/temp
cd /data/temp
################# build-essential
apt-get install build-essential
(build-essential 可以一键安装编译所必须的N多软件包)
################# APR
tar -zxvf apr-1.4.6.tar.gz
./configure --prefix=/usr/local/apr
make
make install
################# APR-UTIL
tar -zxvf apr-util-1.5.2.tar.gz
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make
make install
################# PCRE
tar -xvf pcre-8.31.tar.bz2
./configure --prefix=/usr/local/pcre
make
make install
################# zlib
tar -zxvf zlib-1.2.3.tar.gz
./configuremake
make install
################# apache
tar -xzvf httpd-2.4.3.tar.gz
./configure --prefix=/usr/local/services/apache --enable-deflate --enable-expires --enable-headers --enable-rewrite --enable-mods-shared=all --with-enable=so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
make
在64位机器上make遇到问题: zlib/lib/libz.a: could not read symbols: Bad value
解决办法:
在zlib的MakeFile里面加上-fPIC参数
CFLAGS=-O3 -DUSE_MMAP -fPIC
就是要在编译libz.a的时候加上-fPIC参数,所以,就去修改相应的MakeFile了
重新编译下zlib就可以了
make install
cd /usr/local/services/apache
vim conf/httpd.conf
################# apache 配置开始 ####################
DocumentRoot "/data/www"
ServerName localhost
<Directory />
</Directory>
<Directory "/data/www">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
<IfModule mpm_prefork_module>
ServerLimit 1000
StartServers 100
MinSpareServers 50
MaxSpareServers 100
MaxClients 1000
MaxRequestsPerChild 4000
</IfModule>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
AddOutputFilterByType DEFLATE application/rss+xml
</IfModule>
ErrorLog "/data/logs/apache_error_log.txt"
LogLevel warn
LoadModule php5_module modules/libphp5.so (安装PHP后如过没有加上)
AddType application/x-httpd-php .php (安装PHP后如过没有加上)
################# apache 配置结束 (暂无)####################
################# libxml2
tar xzvf libxml2-2.6.30.tar.gz
cd libxml2-2.6.30/
./configure
make "CFLAGS=-U_FORTIFY_SOURCE"
make install
tar xzvf curl-7.31.0.tar.gz
cd curl-7.31.0/
./configure
make
make install
################# jpeg
tar xzvf jpegsrc.v8d.tar.gz
cd jpegsrc.v8d/
./configure
make
make install
################# png
tar xzvf libpng-1.2.31.tar.gz
cd libpng-1.2.31/
./configure
make
make install
################# openssl
################# mcrypt
tar -zxvf libmcrypt-2.5.7.tar.gz
./configure
make
make install
################# cmake (编译mysql需要用到)
cd /data/temp
tar -xzvf cmake-2.8.9.tar.gz
cd cmake-2.8.9
./configure
make
make install
################# ncurses
apt-get install libncurses5-dev
################# m4
tar -zxvf m4-1.4.17.tar.gz
./configure
make
make install
################# bison
tar -zxvf bison-3.0.tar.gz
./configure
make
make install
################# MYSQL
mysql最好安装最新版本的,之前安装5.5.28版本会有一些问题导致make失败
在我的512M内存的云服务器上手动编译的mysql会因为内存不足在启动的时候被kill掉。
可采用apt-get的方式一键安装apt-get install mysql-server , 然后去修改相应的配置文件 /etc/mysql/my.cnf,减少内存分配。
一键安装的服务名称为mysql,可以使用service mysql start/stop/status来控制。
以下为手动编译安装:
groupadd mysql
useradd -g mysql mysql -s /bin/false
mkdir -p /data/mysql
mkdir -p /usr/local/mysql
chown -R mysql:mysql /data/mysql
chown -R mysql:mysql /usr/local/mysql/
cd /data/temp
tar -xzvf mysql-5.6.15.tar.gz
cd mysql-5.6.15
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc
make
make install
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
datadir = /data/mysql
port = 3306
socket =/tmp/mysql.sock
log-error=/data/logs/mysql_error.log
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig mysqld on 这里启动设置有点问题,先不管了,先手动启动mysql吧
service mysqld start
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source/etc/profile
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
mysql_secure_installation 按照提示一步步设置,我相信大家的英文水平 :-)
service mysqld restart #重启
################# php
tar xzvf php-5.4.19.tar.gz
cd php-5.4.19/
./configure --prefix=/usr/local/services/php --with-apxs2=/usr/local/services/apache/bin/apxs --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-libxml-dir=/usr/local/lib/ --disable-short-tags --with-curl --enable-mbstring --without-pear --with-gd --with-jpeg-dir=/usr/local/lib/ --with-png-dir=/usr/local/lib/ --enable-sockets --with-zlib --enable-pcntl --enable-shmop --enable-sysvsem --enable-sysvmsg --with-openssl --enable-bcmath --with-mcrypt
make
make install
vim /usr/local/services/apache/conf/httpd.conf
AddType application/x-httpd-php .php
cp /data/temp/php-5.4.19/php.ini-production /usr/local/services/php/lib/php.ini
vim /usr/local/services/php/lib/php.ini
extension_dir = "/usr/local/services/php/extensions"
一些扩展按照自己的需要打开吧,好像默认已经打开了很多扩展。
display_errors = On
log_errors = On
error_reporting = E_ALL
error_log = /data/logs/php_errors.log
/usr/local/services/apache/bin/apachectl restart
################# libevent
tar -zxvf libevent-2.0.21-stable.tar.gz
./configure
make
make install
################# memcached
memcached-1.4.15.tar.gz
cd memcached-1.4.15/
./configure --prefix=/usr/local/services/memcached --with-libevent=/usr/local/lib
make
make install
/usr/local/services/memcached/bin/memcached -d -u root -m 500 -c 10000 -p 11211 -l localhost
################# autoconf
tar -zxvf autoconf-2.68b.tar.gz
./configure
make
make install
################# memcache 扩展
tar xzvf memcache-2.2.7.tgz
cd memcache-2.2.7/
/usr/local/services/php/bin/phpize
./configure --with-php-config=/usr/local/services/php/bin/php-config
make
make install
mkdir /usr/local/services/php/extensions
mv /usr/local/services/php/lib/php/extensions/no-debug-zts-20100525/memcache.so /usr/local/services/php/extensions
vim /usr/local/services/php/lib/php.ini
extension_dir = "/usr/local/services/php/extensions"
extension=memcache.so
################# sqlite
cd /data/temp
tar -zxvf sqlite-autoconf-3080200.tar.gz
cdsqlite-autoconf-3080200
./configure --prefix=/usr/local/sqlite
make
make install
################# SVN版本控制
tar -zxvf subversion-1.8.5.tar.gz
cd subversion-1.8.5
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/services/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-sqlite=/usr/local/sqlite --enable-maintainer-mode --with-zlib=/usr/local/zlib
make
make install
vim /etc/profile
export PATH=$PATH:/usr/local/subversion/bin/
source /etc/profile
//创建svn数据目录
mkdir /data/svn
//创建版本库目录
mkdir /data/svn/test
//创建版本库
svnadmin create /data/svn/test/
chmod -R 0777 /data/svn/test/
(访问方式1: 通过svn协议访问)
cd /data/svn/test/conf/
vim /data/svn/test/conf/svnserve.conf
[general]
anon-access = none //匿名用户禁止读写
auth-access = write //验证用户有读写权限
password-db = passwd
authz-db = authz
vim /data/svn/test/conf/passwd
[users]
yuliying = 123456 //用户-密码
vim /data/svn/test/conf/authz
[groups]
admin=yuliying //用户组设置
[/]
@admin = rw //用户组权限
svnserve -d -r /data/svn
此时可以用乌龟通过 svn://192.168.0.116/test 来checkout
(访问方式2,通过apache访问)
vim /usr/local/services/apache/conf/httpd.conf
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module /usr/local/subversion/libexec/mod_dav_svn.so
LoadModule authz_svn_module /usr/local/subversion/libexec/mod_authz_svn.so
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /data/svn/
AuthType Basic
AuthName "Hello welcome to here"
AuthUserFile /data/svn/passwd
AuthzSVNAccessFile /data/svn/authz
Require valid-user
</Location>
/usr/local/services/apache/bin/htpasswd -c /data/svn/passwd yuliying 第二次不用加c参数,c是创建文件
vim /data/svn/authz
[test:/]
yuliying = rw
/usr/local/services/apache/bin/apachectl restart
此时可以通过 http://192.168.0.116/svn/test/来checkout.
在本地服务器上checkout使用 svn checkout file:///data/svn/test/
################# APC
/usr/local/services/php/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/services/php/bin/php-config --enable-apc-spinlocks --disable-apc-pthreadmutex
make
make install
编辑php.ini
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64M
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl = 0
apc.gc_ttl = 3600
apc.cache_by_default = on
################# Redis
cd /data/temp
tar xzvf redis-2.4.14.tar.gz
mv redis-2.4.14 /usr/local/services/redis
cd /usr/local/services/redis
make
make install
mkdir /data/logs/redis/
chmod 0777 /data/logs/redis/
mkdir /data/redis/
################# Redis 扩展
cd /data/temp
tar xzvf owlient-phpredis-2.1.1-1-g90ecd17.tar.gz
cd owlient-phpredis-90ecd17/
/usr/local/services/php/bin/phpize
./configure --with-php-config=/usr/local/services/php/bin/php-config
make
make install
mv /usr/local/services/php/lib/php/extensions/no-debug-non-zts-20090626/redis.so/usr/local/services/php/extensions
################# PHPmyAdmin
cd /data/temp
tar -zxvf phpMyAdmin-3.4.10.2-all-languages.tar.gz
mkdir /data/www/phpmyadmin/
cp -r phpMyAdmin-3.4.10.2-all-languages/* /data/www/phpmyadmin/
cd /data/www/phpmyadmin/
cp config.sample.inc.php config.inc.php
vim config.inc.php
$cfg['blowfish_secret'] = '任意字符串';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = '127.0.0.1';