|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!前段工夫换VPS,在选择体系的时分,丢弃失落了UbuntuServer而选择最新的CentOS6.064bit。选择以后天然就触及到装置情况的成绩了。本人有点不想用LAMP情况了,因而勇敢的选择了LNMP。
但是yum源里默许是没有nginx的,要装置LNMP就只要两个选择:要末增加第三方源来完成,要末本人编译。
关于Linux情况下的编译感乐趣的我,决意利用最新的LNMP情况,因而就选择了后者——本人编译。
经由几回实验以后,把发明的各种成绩和总结都基础归结好了,因而写了这么一篇总结性的文章,以便从此参考。
必要注重的是:64位内里有些软链接的操纵是32位体系不必要大概不不异的,因而这里请注重文章里的形貌,以避免呈现成绩。
(一)筹办需要的组件
这一步将装置体系里缺掉的组件,以便前面的编译历程顺遂。VPS因为都是精简过的体系,因而年夜局部的组件都出缺掉,因而这一步是相称主要的。
这步操纵能够经由过程yum源来完成,复杂便利。在把持台里敲进上面的下令:yuminstallgccgcc-c++autoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-develglib2glib2-develbzip2bzip2-develncursesncurses-develcurlcurl-devele2fsprogse2fsprogs-develkrb5krb5-devellibidnlibidn-developensslopenssl-devellibtoollibtool-libslibevent-devellibeventopenldapopenldap-develnss_ldapopenldap-clientsopenldap-serverslibtool-ltdllibtool-ltdl-develbison 然后让体系本人装置就行了。
(二)筹办需要的软件源码包
接上去我们要筹办各个软件的源码包,以便编译装置。
起首我们创立下载目次:mkdir-p/data0/software
cd/data0/software 接上去利用wget顺次将以下软件包下载好:wgethttp://nginx.org/download/nginx-1.0.6.tar.gz
wgethttp://au2.php.net/get/php-5.3.8.tar.gz/from/de.php.net/mirror
wgethttp://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz/from/http://mysql.easynet.be/
wgethttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
wget“http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0″
wget“http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0″
wgethttp://pecl.php.net/get/memcache-2.2.6.tgz
wget“http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0″
wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz
wgethttp://acelnmp.谷歌code.com/files/eaccelerator-0.9.6.1.tar.bz2
wgethttp://www.ckuyun.com/files/v2.8/cmake-2.8.5.tar.gz 如许源码包的筹办事情就停止了。
(三)装置CMake
因为最新的MySQL利用CMake编译,因而我们起首要把CMake编译装置好:tarzxvfcmake-2.8.5.tar.gz
cdcmake-2.8.5
./configure–prefix=/usr
make
makeinstall
cd.. (四)装置MySQL
起首我们创建mysql用户组和用户:groupaddmysql
useradd-gmysqlmysql 然后解包并编译装置MySQL:tarxvfmysql-5.5.15.tar.gz
cdmysql-5.5.15
cmake.-DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/-DMYSQL_DATADIR=/data0/mysql/data-DMYSQL_UNIX_ADDR=/data0/mysql/mysqld.sock-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_MYISAM_STORAGE_ENGINE=1-DENABLED_LOCAL_INFILE=1-DMYSQL_TCP_PORT=3306-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DMYSQL_UNIX_ADDR=/data0/mysql/mysql.sock-DWITH_DEBUG=0-DWITH_READLINE=1-DWITH_SSL=yes-DSYSCONFDIR=/data0/mysql
make
makeinstall 接上去给MySQL的目次付与权限:chmod+w/usr/local/webserver/mysql
chown-Rmysql:mysql/usr/local/webserver/mysql 创立一系列的MySQL必要用到的目次:mkdir-p/data0/mysql/data/
mkdir-p/data0/mysql/binlog/
mkdir-p/data0/mysql/relaylog/
chown-Rmysql:mysql/data0/mysql/ 接着我们以mysql帐号身份创建数据库:/usr/local/webserver/mysql/scripts/mysql_install_db–basedir=/usr/local/webserver/mysql–datadir=/data0/mysql/data–user=mysql 然后我们复制mysql的启动剧本到/etc/init.d/目次便利启动:cdsupport-files
cpmysql.server/etc/init.d/mysqld
chmod+x/etc/init.d/mysqld 然后我们将my.cnf复制到准确的中央:cpmy-medium.cnf/data0/mysql/my.cnf
cd../../ 注重这里依据本人办事器的使用必要,选择support-files下对应的预设设置文件交换失落下面下令中蓝色的局部。我这里选择的是中等压力的设置文件my-medium.cnf。
接上去我们编纂下MySQL的设置文件,做些设置:然后在“[mysqld]”这一节的最初增加上面的内容:basedir=/usr/local/webserver/mysql
datadir=/data0/mysql/data
log-error=/data0/mysql/mysql_error.log
pid-file=/data0/mysql/mysql.pid
relay-log-index=/data0/mysql/relaylog/relaylog
relay-log-info-file=/data0/mysql/relaylog/relaylog
relay-log=/data0/mysql/relaylog/relaylog
log-slow-queries=/data0/mysql/slow.log 然后我们启动MySQL办事:假如无成绩的话应当显现SUCCESS的提醒。
然后我们设置下root的暗码,装置后默许root是空暗码,如许很不宁静:/usr/local/webserver/mysql/bin/mysql-uroot
GRANTALLPRIVILEGESON*.*TO‘root’@localhost’IDENTIFIEDBY‘000000‘;
GRANTALLPRIVILEGESON*.*TO‘root’@’127.0.0.1′IDENTIFIEDBY‘000000‘; 注重把蓝色局部交换为你要设置的暗码。
接上去我们创立libmysqlclient的软链接,以避免编译别的依附Mysql软件时呈现libmysqlclient.so.18:cannotopensharedobjectfile的毛病:ln-s/usr/local/webserver/mysql/lib/libmysqlclient.so.18/usr/lib64/libmysqlclient.so.18(64位体系利用)
ln-s/usr/local/webserver/mysql/lib/libmysqlclient.so.18/usr/lib/libmysqlclient.so.18(32位体系利用) 就此MySQL编译装置事情停止。
(五)装置PHP所必要的一些库
接上去为了前面编译PHP的顺遂举行,先必要将一些需要的库编译装置好。
起首是libiconv库的编译装置:tarzxvflibiconv-1.13.1.tar.gz
cdlibiconv-1.13.1/
./configure–prefix=/usr/local
make
makeinstall
cd.. 然后是libmcrypt库的编译装置:tarzxvflibmcrypt-2.5.8.tar.gz
cdlibmcrypt-2.5.8
./configure
make
makeinstall
/sbin/ldconfig
cdlibltdl/
./configure–enable-ltdl-install
make
makeinstall
cd../../ 接上去我们要创建libmcrypt库的软链接:#64位体系利用
ln-sf/usr/local/lib/libmcrypt.la/usr/lib64/libmcrypt.la
ln-sf/usr/local/lib/libmcrypt.so/usr/lib64/libmcrypt.so
ln-sf/usr/local/lib/libmcrypt.so.4/usr/lib64/libmcrypt.so.4
ln-sf/usr/local/lib/libmcrypt.so.4.4.8/usr/lib64/libmcrypt.so.4.4.8
ln-sf/usr/local/bin/libmcrypt-config/usr/bin/libmcrypt-config
ln-sf/usr/local/lib/libiconv.so.2/usr/lib64/libiconv.so.2
ldconfig
#32位体系利用
ln-sf/usr/local/lib/libmcrypt.la/usr/lib/libmcrypt.la
ln-sf/usr/local/lib/libmcrypt.so/usr/lib/libmcrypt.so
ln-sf/usr/local/lib/libmcrypt.so.4/usr/lib/libmcrypt.so.4
ln-sf/usr/local/lib/libmcrypt.so.4.4.8/usr/lib/libmcrypt.so.4.4.8
ln-sf/usr/local/bin/libmcrypt-config/usr/bin/libmcrypt-config
ln-sf/usr/local/lib/libiconv.so.2/usr/lib/libiconv.so.2
ldconfig 接上去编译装置mhash:tarzxvfmhash-0.9.9.9.tar.gz
cdmhash-0.9.9.9
./configure
make
makeinstall
cd.. 创建libmhash相干的软链接:#64位体系利用
ln-sf/usr/local/lib/libmhash.a/usr/lib64/libmhash.a
ln-sf/usr/local/lib/libmhash.la/usr/lib64/libmhash.la
ln-sf/usr/local/lib/libmhash.so/usr/lib64/libmhash.so
ln-sf/usr/local/lib/libmhash.so.2/usr/lib64/libmhash.so.2
ln-sf/usr/local/lib/libmhash.so.2.0.1/usr/lib64/libmhash.so.2.0.1
ldconfig
#32位体系利用
ln-sf/usr/local/lib/libmhash.a/usr/lib/libmhash.a
ln-sf/usr/local/lib/libmhash.la/usr/lib/libmhash.la
ln-sf/usr/local/lib/libmhash.so/usr/lib/libmhash.so
ln-sf/usr/local/lib/libmhash.so.2/usr/lib/libmhash.so.2
ln-sf/usr/local/lib/libmhash.so.2.0.1/usr/lib/libmhash.so.2.0.1
ldconfig 接上去编译装置mcrypt:tarzxvfmcrypt-2.6.8.tar.gz
cdmcrypt-2.6.8/
/sbin/ldconfig
./configure
make
makeinstall
cd.. 如许PHP编译所依附的一些库就筹办好了。
(六)装置PHP
起首我们再做几个软链接,这些软链接只是64位体系必要,32位体系不必要做:ln-s/usr/lib64/libjpeg.so/usr/lib/libjpeg.so
ln-s/usr/lib64/libldap.so/usr/lib/libldap.so
ln-s/usr/lib64/libpng.so/usr/lib/libpng.so 然后我们入手下手解包PHP并以FastCGI形式(PHP-FPM)编译装置:tarxvfphp-5.3.8.tar.gz
cdphp-5.3.8
./configure–prefix=/usr/local/webserver/php–with-config-file-path=/usr/local/webserver/php/etc–with-mysql=/usr/local/webserver/mysql–with-mysqli=/usr/local/webserver/mysql/bin/mysql_config–with-iconv-dir=/usr/local–with-freetype-dir–with-jpeg-dir–with-png-dir–with-zlib–with-libxml-dir=/usr–enable-xml–disable-rpath–enable-safe-mode–enable-bcmath–enable-shmop–enable-sysvsem–enable-inline-optimization–with-curl–with-curlwrappers–enable-mbregex–enable-fpm–enable-mbstring–with-mcrypt–with-gd–enable-gd-native-ttf–with-openssl–with-mhash–enable-pcntl–enable-sockets–with-ldap–with-ldap-sasl–with-xmlrpc–enable-zip–enable-soap–without-pear
makeZEND_EXTRA_LIBS=’-liconv’
makeinstall 创立PHP的设置文件:cp-fphp.ini-production/usr/local/webserver/php/etc/php.ini
cd.. 因为方才装置的时分试用了without-pear参数没有装置PEAR(由于间接装置会报错),如今我们再来补上:wgethttp://pear.php.net/go-pear.phar
/usr/local/webserver/php/bin/phpgo-pear.phar 至此PHP的编译装置终了。
(七)装置PHP的扩大模块及设置PHP
接上去我们装置一些PHP经常使用的模块来优化体系:
起首是memcache的编译装置:tarxvfmemcache-2.2.6.tgz
cdmemcache-2.2.6
/usr/local/webserver/php/bin/phpize
./configure–with-php-config=/usr/local/webserver/php/bin/php-config
make
makeinstall
cd.. 然后我们编译装置eAccelerator减速器:tarjxvfeaccelerator-0.9.6.1.tar.bz2
cdeaccelerator-0.9.6.1/
/usr/local/webserver/php/bin/phpize
./configure–enable-eaccelerator=shared–with-php-config=/usr/local/webserver/php/bin/php-config
make
makeinstall
cd.. 然后我们将编译好的这两个扩大模块增加到PHP设置文件中:sed-i‘s#;extension_dir=“./”#extension_dir=“/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/”
extension=“memcache.so”
#’/usr/local/webserver/php/etc/php.ini
sed-i“s#;always_populate_raw_post_data=On#always_populate_raw_post_data=On#g”/usr/local/webserver/php/etc/php.ini
sed-i“s#;cgi.fix_pathinfo=1#cgi.fix_pathinfo=0#g”/usr/local/webserver/php/etc/php.ini 创立eAccelerator所需的缓存目次:mkdir-p/usr/local/webserver/eaccelerator_cache 然后我们到php.ini中设置eaccelerator减速器:vim/usr/local/webserver/php/etc/php.ini 然后到文件的最初增加上面的内容:[eaccelerator]
zend_extension=”/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so”
eaccelerator.shm_size=”32″
eaccelerator.cache_dir=”/usr/local/webserver/eaccelerator_cache”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”3600″
eaccelerator.shm_prune_period=”3600″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″ 然后我们创建PHP寄存日记的目次:mkdir-p/usr/local/webserver/php/logs 然后我们创建php-fpm的设置文件:vim/usr/local/webserver/php/etc/php-fpm.conf 然后在内里写进上面的内容:[global]
pid=/usr/local/webserver/php/logs/php-fpm.pid
error_log=/usr/local/webserver/php/logs/php-fpm.log
log_level=notice
emergency_restart_threshold=10
emergency_restart_interval=1m
process_control_timeout=5s
daemonize=yes
[www]
listen=127.0.0.1:9000
listen.backlog=-1
listen.allowed_clients=127.0.0.1
user=www
group=www
listen.mode=0666
pm=static
pm.max_children=64
pm.start_servers=20
pm.min_spare_servers=5
pm.max_spare_servers=35
pm.max_requests=1024
request_terminate_timeout=0s
request_slowlog_timeout=0s
slowlog=logs/slow.log
rlimit_files=65535
rlimit_core=0
chroot=
chdir=
catch_workers_output=yes
env[HOSTNAME]=$HOSTNAME
env[PATH]=/usr/local/bin:/usr/bin:/bin
env[TMP]=/tmp
env[TMPDIR]=/tmp
env[TEMP]=/tmp
php_flag[display_errors]=off 然后我们增加www用户组和帐号信息,以便前面的php-fpm和nginx可以一般事情:groupaddwww
useradd-gwwwwww 接上去,让我们测试下php-fpm设置文件是不是准确:/usr/local/webserver/php/sbin/php-fpm-t 假如呈现“NOTICE:configurationfile/usr/local/webserver/php/etc/php-fpm.conftestissuccessful”字样则暗示设置准确。不然必要反省设置文件。
(八)装置Nginx
起首我们创立网页寄存的根目次:这里能够依据必要创建你本人喜好的Web根目次地点,不外注重前面的设置文件响应中央必要做修正。第一次举行编译操纵大概初学者倡议坚持这里的设置不修改,以便顺遂完成编译装置事情。
然后创立Nginx所需的日记目次并分派权限:mkdir-p/var/log/nginx
chmod+w/var/log/nginx
chown-Rwww:www/var/log/nginx 然后编译装置Nginx所需的pcre库:tarzxvfpcre-8.12.tar.gz
cdpcre-8.12/
./configure
make
makeinstall
cd.. 接上去,编译装置Nginx:tarxvfnginx-1.0.6.tar.gz
cdnginx-1.0.6/
./configure–user=www–group=www–prefix=/usr/local/webserver/nginx–with-http_stub_status_module–with-http_ssl_module
make
makeinstall
cd.. 然后编纂Nginx的设置文件:vim/usr/local/webserver/nginx/conf/nginx.conf 将对应的内容改成以下:userwwwwww;
worker_processes2;
error_log/var/log/nginx/error.log; 注重蓝色笔墨局部依据办事器的设置选择分歧的值。512M以下内存为1~2;1G内存4;2G内存8;4G内存16,以此类推。
然后在设置文件的“http{”这节内里增添上面的内容以便优化:fastcgi_connect_timeout300;
fastcgi_send_timeout300;
fastcgi_read_timeout300;
fastcgi_buffer_size64k;
fastcgi_buffers464k;
fastcgi_busy_buffers_size128k;
fastcgi_temp_file_write_size128k; 接上去我们运转上面的下令测试Nginx的设置文件是不是准确:/usr/local/webserver/nginx/sbin/nginx-t 假如呈现上面提醒的一种则暗示设置文件无误,不然必要做进一步修正:nginx:theconfigurationfile/usr/local/webserver/nginx/conf/nginx.confsyntaxisok
nginx:configurationfile/usr/local/webserver/nginx/conf/nginx.conftestissuccessf 如许Nginx的装置与设置也就完成。
(九)设置开机启动
我们编译好了的软件默许是不会开机主动启动的,我们必要处置下以便完成开机自启动。
起首是MySQL:chkconfig–addmysqld
chkconfig–level345mysqldon 然后php-fpm和Nginx的启动我们放到/etc/rc.local启动文件中:在文件的开端增添上面的内容:ulimit-SHn65535
/usr/local/webserver/php/sbin/php-fpm
/usr/local/webserver/nginx/sbin/nginx 保留加入后便可。
至此,一切的编译装置事情都停止。让我们启动php-fpm和Nginx来做测试吧!(MySQL在下面已启动了)在把持台内里输出上面下令: |
|