源码部署LNMP

来源:互联网 发布:开淘宝初期卖什么好呢 编辑:程序博客网 时间:2024/06/05 23:59
LNMP
 
需要安装的包有:
development libraries、Development tools、X Software Development、gcc、openssl-devel
pcre-devel、zlib-devel、nginx、cmake、ncurses-devel、mysql、mhash、libmcrypt
libiconv、libxml2*、ncurses-decel
php要最后安装
 
一、安装源码ngnix
#yum -y groupinstall "Development libraries" "Development tools" "X Software Development"
#yum -y install gcc openssl-devel pcre-devel zlib-devel
# netstat -anptu | grep :80    (查看80端口是否被apache占用,如果占用先关闭)
# grep nginx /etc/passwd       (进程所有者名)
# useradd -g nginx -s /sbin/nologin -M nginx  (-M:不建立家目录)
# tar -zxf nginx-1.11.5.tar.gz
# cd nginx-1.11.5
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --without-http_rewrite_module
 
# make && make install  
# /usr/local/nginx/sbin/nginx   (启动nginx)
# /usr/local/nginx/sbin/nginx -s stop  停止nginx
# /usr/local/nginx/sbin/nginx -s reload 重启nginx
# elinks --dump http://localhost
                               Welcome to nginx!
# echo 123 > /usr/local/nginx/html/a.html
# elinks --dump http://localhost/a.html
   123

----------------------------------------------------------------------------- 
源码安装apache2.4.23
卸载apr:
# rpm -qa | grep apr
apr-1.3.9-5.el6_2.x86_64
apr-util-1.3.9-3.el6_0.1.x86_64
apr-util-ldap-1.3.9-3.el6_0.1.x86_64
# rpm -e --nodeps apr-1.3.9-5.el6_2.x86_64
# rpm -e --nodeps apr-util-1.3.9-3.el6_0.1.x86_64
# rpm -e --nodeps apr-util-ldap-1.3.9-3.el6_0.1.x86_64
下载最新源码包 apr-1.4.8.tar.gz apr-util-1.5.2.tar.gz,解压并简单安装。
# ./configure --prefix=/opt/apr  && make && make insall
# ./configure --prefix=/opt/apr-util --with-apr=/opt/apr && make && make insall
注意:这两个包必须安装在/opt下,否则apache找不到apr。

下载pcre pcre-8.33.zip  解压并简单的安装
 ./configure --prefix=/usr/local/pcre make && make install

卸载apache:
# rpm -qa | grep httpd
httpd-2.2.15-54.el6.centos.x86_64
httpd-tools-2.2.15-54.el6.centos.x86_64
# rpm -e --nodeps httpd-2.2.15-54.el6.centos.x86_64
# rpm -e --nodeps httpd-tools-2.2.15-54.el6.centos.x86_64
解压后进入目录进行编译:
./configure --prefix=/usr/local/apache --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate --with-apr=/opt/apr --with-apr-util=/opt/apr-util --with-pcre=/usr/local/pcre/bin/pcre-config

--prefix=/usr/local/apache表示指定apache的安装路径。
--enable-rewrite提供URL规则的重写更嫩那个,即根据已知的URL地址,转换为其它想要的URL地址
--enable-so激活apache服务的DSO(Dynamic Shared Objects动态共享目标),即在以后可以以DSO的方式编译安装共享模块,这个模块本身不能以DSO方式编译。
--enable-headers提供允许对HTTP请求头的控制。
--enable-expires激活荀彧通过配置文件控制HTTP的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css等内容,提供客户端浏览器缓存的设置。这个是apache调优的一个重要选项之一。
--with-mpm=worker选择apache mpm的模式为worker模式。为worker模式原理是更多的使用线程来处理请求,所以可以处理更多的并发请求。而系统 资源的开销小玉基于进程的MPM prefork。如果不指定此参数,默认的模式是prefork进程模式。这个是apache调优的一个重要选项之一。
--enable-deflate提供对内容的压缩传输编码支持,一般是html、js、css等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是apache调优的一个重要选项之一。
 
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
# echo "/usr/local/apache/bin/apachectl start">>/etc/rc.local
 
# vim /etc/init.d/httpd   添加如下两行并保存:
#chkconfig: 2345 70 60
#description: apache
# chkconfig --add httpd   加入系统服务
# chkconfig httpd on     开机启动
# /etc/init.d/httpd start  或者 /usr/local/apache2/bin/httpd –k start
 
说明:
其实apache的启动是调用/usr/local/apache2/bin/httpd这个命令,查看/etc/init.d/httpd脚本便可知道。
chkconfig --add httpd 实际是把/etc/init.d/httpd加入到/etc/rc.d/rc0.d和/etc/rc.d/rc6.d目录下。
chkconfig: 2345 70 60中的2345是指脚本的运行级别,即在2345这4种模式下都可以运行,234都是文本界面,5是图形界面X。
70是指脚本将来的启动顺序号,如果别的程序的启动顺序号比70小(比如44、45),则脚本需要等这些程序都启动以后才启动。60是指系统关闭时,脚本的停止顺序号。
 ---------------------------------------------------------------------------------------------------------------------------
 
 
 
二.安装源码mysql   (mysql-5.5.13 该版本需要cmake安装)
# tar -zxf cmake-3.7.0.tar.gz
# cd cmake-3.7.0
# ./bootstrap --prefix=/usr/local/cmake   (./bootstrap 和./configure一样)
# make &&make install
# /usr/local/cmake/bin/cmake --version (查看版本号)
cmake version 3.7.0-rc2

rpm -qa | grep mysql
卸载查询出来的版本
# rm -rf CMakeCache.txt
# yum -y install ncurses-devel
# tar -zxf mysql-5.6.31.tar.gz

# useradd mysql
# cd mysql-5.6.31
/usr/local/cmake/bin/cmake   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql    -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/usr/local/mysql/data  -DMYSQL_TCP_PORT=3306   -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock   -DMYSQL_USER=mysql   -DEXTRA_CHARSETS=all   -DWITH_READLINE=1   -DWITH_SSL=system   -DWITH_EMBEDDED_SERVER=1   -DENABLED_LOCAL_INFILE=1   -DWITH_INNOBASE_STORAGE_ENGINE=1
 
[root@clone1 mysql-5.5.13]# make && make install
 
初始化授权库(MySQL 源码包安装需要手动初始化授权库 )
# cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql (初始化数据库,用相对路径安装,勿cd /scripts)

# cp support-files/my-default.cnf  /etc/my.cnf
# /usr/local/mysql/bin/mysqld_safe --user=mysql &  (启动数据库服务)
# netstat -anptu | grep :3306
# /usr/local/mysql/bin/mysql -hlocalhost -uroot -p  直接回车(数据库管理员从数据库服务器本机登录默认没有密码)
# pkill -9 mysql
  
# vim /etc/profile   (把命令的路径添加到PATH)
export  PATH=/usr/local/mysql/bin:$PATH
:wq
# Source /etc/profile
# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# chkconfig  --add mysqld
# chkconfig  --list mysqld
mysqld         0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
# service mysqld start
Starting MySQL                                             [确定]
# netstat -anptu | grep :3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      36969/mysqld     
 
 
设置数据库管理员从本机登录的密码
# mysqladmin  -hlocalhost -uroot password "123"
# service  mysqld stop
Shutting down MySQL.                                       [确定]
# service  mysqld start
Starting MySQL..                                           [确定]
 
#vim /etc/ld.so.conf  加入如下内容:
    include ld.so.conf.d/*.conf
/usr/local/mysql/lib
#ldconfig  -v //刷新
 
 
 ---------------------------------------------------------------------------------------------------------------------------
备注:在windows中所有的动态链接库(dll文件)存放在c:\windows\system32
Linux的库文件(so文件),一般会存放在/lib/,/usr/lib/,
 
提示:默认我们安装的mhash,libmcrypt,libiconv,生产的库文件存放在/usr/local/lib,因此为了让系统识别这些库,可以将/usr/local/lib/相关相关的库文件,做链接放到系统的库文件目录
#ln -sv /usr/local/lib/libmcrypt* /usr/lib/
# ln -sv /usr/local/lib/libmhash.* /usr/lib/
 
让系统识别到库文件的方法二:修改ldconfig配置文件
将库文件目录加入到/etc/ld.so.conf文件,添加完成后输入如下命令刷新:
ldconfig -v //刷新
 -------------------------------------------------------------------------------------------------------------------------- 
 
三.安装源码php (不是服务,是用来解释php页面的程序)
安装拓展功能包
mhash-0.9.9.9.tar.gz     hash算法
libmcrypt-2.5.8.tar.gz  加密
libiconv-1.13.tar.gz  字符编码转换
 
 
# tar -zxf mhash-0.9.9.9.tar.gz
# cd mhash-0.9.9.9
# ./configure
# make &&make install
 
# tar -zxf libmcrypt-2.5.8.tar.gz
# cd libmcrypt-2.5.8
# ./configure
# make && make install
 
# cd libltdl/
# ldconfig -v
# ./configure --with-gmetad --enable-gexec --enable-ltdl-install
 
# tar -zxf libiconv-1.13.tar.gz
# cd libiconv-1.13
# ./configure
# make && make install
 
 
# ln -sv /usr/local/lib/libmhash.* /usr/lib/     
# ln -sv /usr/local/lib/libmcrypt*  /usr/lib/
# ln -sv /usr/local/lib/libiconv.*  /usr/lib/
#ln -sv /usr/local/lib/preloadable_libiconv.so /usr/lib/
# tar -zxf php-5.5.3.tar.gz
# cd php-5.4.9
-v显示链接内容
yum -y install libxml2*
# ./configure (一行一行的粘贴复制到命令行,或者写成脚本)
--prefix=/usr/local/php5
--with-mysql=/usr/local/mysql
--enable-fpm --enable-mbstring 
--with-mcrypt  --with-mhash
--with-config-file-path=/usr/local/php5/etc 
--with-mysqli=/usr/local/mysql/bin/mysql_config 
 
#make ZEND_EXTRA_LIBS='-liconv' (必须是大写)
# make install
# cp php.ini-production   /usr/local/php5/etc/php.ini
 
四.配置nginx
 1. 修改 fpm 配置文件(FastCGI)
#cd /usr/local/php5/etc
#cp php-fpm.conf.default php-fpm.conf
#vim /usr/local/php5/etc/php-fpm.conf
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 32      //最大值
pm.start_servers = 15       //初始化开几个进程
pm.min_spare_servers = 5   //最少空闲进程
pm.max_spare_servers = 32  //最大空闲进程
 
[root@clone1 /]# cd /root/桌面/lnmp+memcached/php-5.4.9/sapi/fpm/
[root@clone1 fpm]# cp init.d.php-fpm   /etc/init.d/php-fpm
[root@clone1 fpm]# chmod +x   /etc/init.d/php-fpm
[root@svr5 fpm]# /etc/init.d/php-fpm start
Starting php-fpm  done
[root@svr5 fpm]# netstat -untlap | grep :9000
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      40342/php-fpm
 
 
 
   Nginx+FastCGI
 
1. 修改Nginx(调用FastCGI(php-fpm)
#cd /usr/local/nginx/conf/
[root@clone1 conf]# vim  nginx.conf
将以下内容的注释符#去掉
location ~ \.php$ {
           root           html;
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_index  index.php;
           fastcgi_paramSCRIPT_FILENAME $docoument_root$fastcgi_script_name;
            include        fastcgi_params;
        }
:wq
重新启动Nginx
 
[root@clone1 conf]# vim fastcgi_params
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
 
[root@clone1 conf]# vim /usr/local/nginx/html/test.php
<?php
  phpinfo();
?>
[root@clone1 conf]# vim /usr/local/nginx/html/index.php
<?php
$links=mysql_connect("localhost","root","");
if($links){
echo "link db ok!!!";
}
else{
echo "link db no!!!";
}
?>
 
 
 
[root@clone1 html]# elinks  --dumphttp://localhost/linkdb.php
link db ok!!!
 
 
 
原创粉丝点击