文档章节

centos6.4下编译安装LNMP环境

fighting-cluber
 fighting-cluber
发布于 2014/03/12 12:11
字数 1119
阅读 2759
收藏 15

自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持。 PHP-FPM以守护进程在后台运行,Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回。 Nginx和PHP-FPM的组合,是一种稳定、高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少。

//系统说明

1.centos6.4 IP:10.10.54.157

2.软件版本:nginx1.4.5+mysql5.5+php5.4

//编译安装nginx1.4.5

1.下载nginx1.4.5
shell> wget 

2.解压nginx.1.4.5
shell> tar xvf nginx-1.4.5.tar.gz

3.编译安装
shell> yum  -y install zlib-devel pcre-devel openssl-devel    #nginx依赖包
shell> ./configure --prefix=/usr/local/nginx --with-pcre --with-http_stub_status_module --user=apache --group=apache --with-http_ssl_module --with-http_gzip_static_module
shell> make && make install

4.启动nginx
shell> /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

5.打开浏览器测试是否可以访问

//编译安装mysql5.5

1.编译安装
shell> groupadd mysql && useradd -g mysql mysql -s /sbin/nologin
shell> mkdir -p /data/mysql
shell> cd /home/softs/mysql-5.5.30
shell> cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/dbdata -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_SSL=yes
shell> make && make install

#配置
shell> cp -f /home/softs/mysql-5.5.30/support-files/my-large.cnf /etc/my.cnf
shell> cp -f /home/softs/mysql-5.5.30/support-files/mysql.server /etc/init.d/mysqld

shell> chmod 755 /etc/init.d/mysqld
shell> vim /etc/my.cnf
---------------------------
[mysqld
datadir=/data/mysql
socket=/usr/local/mysql/tmp/mysql.sock
---------------------------

shell> chown mysql.mysql /usr/local/mysql -R
#初始化数据库
shell> /usr/local/mysql/scripts/mysql_install_db --user=root --datadir=/data/mysql --basedir=/usr/local/mysql
shell> chown mysql.mysql /data/mysql -R
shell> /etc/init.d/mysqld restart
#添加环境变量
shell> echo "export PATH=${PATH}:/usr/local/mysql/bin" >> /etc/profile

//编译安装php5.4

1.编译前说明
#yum安装运行环境
shell> yum –y install libxml2-devel curl-devel libpng-devel openldap-devel
#安装PHP前需要编译安装这两个源码包:libmcrypt mhash
#nginx使用fpm的方式条用php,php5.4以后版本中已经支持php-fpm,所以只需要在php编译参数里指定--enable-fpm即可

2.首先安装libmcrypt-2.5.8
wget http://pkgs.fedoraproject.org/repo/pkgs/libmcrypt/libmcrypt-2.5.7.tar.gz/b1be163143f8e8ed0474beeb642b3bad/libmcrypt-2.5.7.tar.gz
tar xvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make && make install

3.安装mhash-0.9.9.9
wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2/download
tar -jxvf mhash-0.9.9.9.tar.bz2
cd mhash-0.9.9.9
./configure
make && make install

4.建立软连接到/usr/lib
ln -s /usr/local/lib/libmcrypt* /usr/lib
ln -s /usr/local/lib/libmhash.* /usr/lib
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

5.安装php5.4
tar xvf php-5.4.25.tar.gz
cd php-5.4.25
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/tmp/mysql.sock --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --with-curlwrappers --enable-fpm --enable-fastcgi --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap
【error1】
configure: error: Cannot find ldap libraries in /usr/lib.
【solution1】
shell> ln -s /usr/lib64/libldap* /usr/lib/
shell> ldconfig
【error2】
Generating phar.php
/home/softs/php-5.4.25/sapi/cli/php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
make: *** [ext/phar/phar.php] Error 127
【solution2】
shell> ln -s /usr/local/mysql/lib/libmysqlclient* /usr/lib/
shell> ldconfig

shell> make && make install

//配置nginx支持php

1.首先为php创建配置文件:
cp php.ini-production /usr/local/php/php.ini
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
ln -s /usr/local/php/bin/php /usr/bin/

2.配置php-fpm.conf
vi /usr/local/php/etc/php-fpm.conf
--------------------------------
listen = /var/run/php-fpm.sock   # 使用unix socket
--------------------------------
#启动php-fpm
/usr/local/php/sbin/php-fpm
shell> ps aux | grep php-fpm   #查看php-fpm是否成功
root      3412  0.0  0.0 103236   892 pts/3    S+   13:56   0:00 grep php-fpm
root     29811  0.0  0.5 281608  5280 ?        Ss   Mar12   0:05 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
nobody   29812  0.0  1.5 290576 15832 ?        S    Mar12   0:00 php-fpm: pool www          
nobody   29813  0.0  1.8 293496 19064 ?        S    Mar12   0:01 php-fpm: pool www          
nobody   30839  0.0  1.1 286492 11300 ?        S    Mar12   0:00 php-fpm: pool www  

3.配置nginx,添加支持php
vi /usr/local/nginx/conf/nginx.conf
-------------------------------------------------------------
http {
 server {
            listen       80;
            server_name  localhost;
            charset uft-8;
            access_log  logs/host.access.log;
            location / {
            #默认网站根目录
            root  /var/www/bbs;    
            # 添加index.php的首页文件
            index  index.php index.html index.htm;   
            }
            #添加下面的内容,注意$document_root在默认配置文件中没有
            location ~ \.php$ {
            fastcgi_pass        unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index       index.php;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            include fastcg  i_params;
            include fastcgi.conf;
            }
       }
   }
------------------------------------------------------------
#修改完之后重启nginx

//支持ssl加密传输

--------------------------------------------------------------
user  apache apache;
worker_processes  2;
error_log  logs/error_nginx.log;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
}

http {
            include       mime.types;
            default_type  application/octet-stream;
            log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
            access_log  logs/access_nginx.log  main;
            sendfile        on;
            tcp_nopush     on;
            keepalive_timeout  65;
            gzip  on;
#虚拟主机配置文件
#           include virtual/www.zijian.com.conf;        
 
 server {
#https加密协议默认端口
            listen       443;  
                 
            server_name  bbs.zijian.com;
            charset uft-8;
            access_log logs/bbs.access.log main;
            
#网站根目录
            root /var/www/bbs;         
            index index.php index.html;
            location ~ \.php$ {
            fastcgi_pass        unix:/var/run/php-fpm.sock;
            fastcgi_index       index.php;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            include fastcgi_params;
            include fastcgi.conf;
            }
            
#配置ssl,证书用openssl工具生成,下面的路径是证书的存放目录,证书需要用系统自带的openssl工具生成
#访问这个server时候,用https://xxx.com格式
           ssl         on;
           ssl_certificate      /usr/local/nginx/conf/ssl/client.pem;
           ssl_certificate_key  /usr/local/nginx/conf/ssl/client.key;
        }
}
-------------------------------------------------------------------












© 著作权归作者所有

fighting-cluber
粉丝 29
博文 74
码字总数 78829
作品 0
抚州
私信 提问
CentOS6.4安装Bugzilla

一.环境 系统 CentOS6.4x64最小化安装(事先安装好LNMP环境) 二.安装基础软件包 [root@rsync ~]# yum install perl-CPAN -y[root@rsync ~]# yum install mod_perl -y[root@rsync ~]# yum ins......

ly36843
2015/09/18
0
0
centos6.4 nginx php mysql 编译安装一些补充事项

最近经济出问题,只好更好一下VPS。由快速的香港VPS(75元/月)更好为 米国VPS(39元/月). 趁着周末,决定抛弃军哥的LNMP一键包了,自己去编译安装LNMP,哈。平时在群里看一些朋友都在编译安...

lazyphp
2014/03/02
527
0
拓展版的LNMP安装包(适合批量部署)

最近的一个任务是写个一键安装LNMP的脚本,运行的平台是Ubuntu12.04,命令那些跟之前的RHEL和Centos 有一点点区别,这里做个记录。 #!/bin/bash Configuration Arguments workpath="/usr/loc...

10730
2018/06/29
0
0
CentOS6.x 下 LNMP环境搭建(三、安装 PHP)

CentOS6.x 下 LNMP环境搭建(准备篇) CentOS6.x 下 LNMP环境搭建(一、安装 MySQL) CentOS6.x 下 LNMP环境搭建(二、安装 Nginx) CentOS6.x 下 LNMP环境搭建(三、安装 PHP) 3.1. 检查 ...

whoru
2016/09/28
154
0
ansible自动化安装lnmp

今天尝试用ansible自动化编译安装了lnmp环境,是以把自己的见解和大家分享,不足之处还望大家指正。 lnmp的构成 lnmp = linux + nginx + mysql + php/python/perl 下面给大家介绍下我的安装步...

笨鸟晚
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你知道多少this,new,bind,call,apply?那我告诉你

那么什么是this,new,bind,call,apply呢?这些你都用过吗?掌握这些内容都是基础中的基础了。如果你不了解,那还不赶快去复习复习,上网查阅资料啥的! 通过call,apply,bind可以改变thi...

达达前端小酒馆
今天
6
0
设计模式之命令模式

命令模式的类图 其中的角色有: Client 客户端。只依赖于调用者Invoker、接收者Receiver、以及Command(网上找的图片这里没有画出来),不用关注接收者如何执行命令,只需要告诉调用者需要执行...

陈年之后是青葱
今天
8
0
2. 彤哥说netty系列之IO的五种模型

你好,我是彤哥,本篇是netty系列的第二篇。 欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。 简介 本文将介绍linux中的五种IO模型,同时也会介绍阻塞/非阻塞与同步/异步的区别。 何...

彤哥读源码
今天
6
0
OSChina 周四乱弹 —— 喵的波粒二象性

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @ 小小编辑推荐:《水墨兰亭》- 李志辉 《水墨兰亭》- 李志辉 手机党少年们想听歌,请使劲儿戳(这里) @巴拉迪维 :卧室里采光要足够好,这样...

小小编辑
今天
45
2
前后端分离接口规范

最近在开发,遇到前后端关于Boolean类型的参数传参和接收的问题: 场景:后台会根据用户是否出车/是否出司机(Boolean类型)来决定后端的业务逻辑(比如费用的计算),前端使用JSON字符串类型...

code-ortaerc
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部