lnmp源码编译

安装编译前的工作

1 安装yum

在这基础上安装gcc*  为编译做准备

2 下载所需软件

 cmake-2.8.0   //用于编译mysql使用

 mysql-5.5.28-linux2.6-i686.tar.gz

 php-5.4.13.tar.gz

 nginx-1.5.3.tar.gz

下列是个软件的所需软件

1 mysql

 cmake    //用于mysql5.5以上的编译工具,如果是二进制代码就不需要了

  ncurses ncurses-devel

2  nginx  

      libevent  libevent-devel  (事件触发的网络库)

      gzip 模块需要 zlib

      rewrite 模块需要 pcre

      ssl 功能需要 openssl


3 php

因为php用于网页解析工作,所以网页所带的功能,php在编译时都要添加上!

perl  pcreperl扩展正则表达式的库) pcre-developenssl openssl-devel  libxml2   libxml2-  devel  curl  curl-devel

libjpeg   libjpeg-devel    libpng libpng-devel  freetype   freetype-devel  

还有 libmcrypt libmcrypt-devel  (加密)  mhash   mhash-devel 等视情况而定


安装

 1 安装数据库

下载cmake ,最好下载源码包,源码包就是只有版本号,没其他的

cmake-3.0.0.tar.gz

如这个

1        ./bootstraps

2        Make

3        Make instal

编译通用参数就是这些,可以根据实际情况添加

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 

-DMYSQL_DATADIR=/mydata \ 

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ 

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all \ 

-DDEFAULT_CHARSET=utf8 \ 

-DDEFAULT_COLLATION=utf8_general_ci \ 

-DWITH_DEBUG=0

-DMYSQL_USER=mysql


data目录最好做lvm,方便扩充。

 groupadd  mysql

 useradd -r -g mysql   mysql  

 cd  mysql

 chown -R mysql.mysql  .

./scripts/mysq_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data  //初始化mysql

cp /usr/local/mysql/support-files/mysql-medium.cnf  /usr/local/mysql/my.cnf  //mysql 配置文件

cp /usr/local/mysql/support-fiels/mysql.server    /etc/init.d/mysql    //mysql启动脚本


vim /etc/profile    添加mysqlpath

PATH=$PATH:/usr/local/mysql/bin  

. /etc/profile

指定pid文件

pid_file       = /var/run/mysql/mysql.pid

user = mysql

注:这里记得给pid创建好文件和目录


2 安装nginx

tar xf   nginx-1.5.6.tar.gz

groupadd nginx

useradd  -g  nginx  -s /bin/false -M nginx  

编译


./configure--prefix=/usr/local/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock  --user=nginx --group=nginx--with-http_ssl_module --with-http_dav_module --with-http_flv_module--with-http_realip_module --with-http_gzip_static_module--with-http_stub_status_module --with-mail --with-mail_ssl_module --with-debug--http-client-body-temp-path=/var/tmp/nginx/client--http-proxy-temp-path=/var/tmp/nginx/proxy--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi--http-scgi-temp-path=/var/tmp/nginx/scgi


make&& make install

mkdir  -p /var/tmp/nginx/client     //创建缓存目录

启动脚本写在单独的txt文本中

测试访问

231203713.jpg

3 安装php

tar  xf php-5.4.19.tar.gz

cdphp-5.4.19

./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-openssl\

--enable-sockets\                            

--with-libevent-dir=/usr/lib\

--enable-mbstring\

--enable-debug\                            

--with-freetype-dir=/usr/lib\

--with-jpeg-dir=/usr/lib\

--with-png-dir=/usr/lib\

--with--gd=/usr/lib\

--with-zlib\

--with-zlib-dir=/usr/lib\

--with-libxml-dir=/usr\

--enable-xml\

--with-iconv-dir=/usr/local/\

--enable-fpm\

--enable-fastcgi

--with-curl=/usr/lib\

--enable-zip

make&& make install

cpsapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm //fpm启动脚本

chmod  a+x /etc/init.d/php-fpm

cp  php.ini-production   /usr/loca/php5/etc/php.ini

启动php-fpm

/usr/local/php5/sbin/php-fpm  

关闭

pkill  php-fpm

查看

lsof   -i:9000

[root@dqzphp5]# lsof -i:9000

COMMAND  PID USER   FD  TYPE DEVICE SIZE NODE NAME

php-fpm3111  root    7u IPv4 286652       TCPdqz.com:cslistener (LISTEN)

php-fpm3112 nginx    0u  IPv4 286652       TCP dqz.com:cslistener (LISTEN)

php-fpm3114 nginx    0u  IPv4 286652       TCP dqz.com:cslistener (LISTEN)

[root@dqzphp5]#

[root@dqzphp5]# netstat -tunlp | grep php-fpm

tcp        0     0 127.0.0.1:9000             0.0.0.0:*                   LISTEN      3111/php-fpm.conf)  

[root@dqzphp5]#


4 整合phpnginx

修改nginx.conf


       location / {

           root   /usr/local/nginx/html;

           index  index.php index.htm index.html ;  //索引支持php

       }


       error_page  404              /404.html;


error_page   500 502 503 504  /50x.html;

       location = /50x.html {

           root   html;

       }


       location ~ \.php$ {

           root           /usr/local/nginx/html;   //网站目录

           fastcgi_pass   127.0.0.1:9000;    //php-fpm 接口

           fastcgi_index  index.php;

           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;    

// 传递的参数

           include        fastcgi_params;

       }

  nginx_params  

添加测试网页

vim  /usr/local/nginx/html/index.php  

<?php

  phpinfo();

?>

错误日志:

nginx /usr/local/nginx/logs

php-fpm:   /usr/local/php5/var/log

测试一下

231240203.jpg

在编译php时出现以下错误

php_iconv_stream_filter_ctor':

/home/king/php-5.2.13/ext/iconv/iconv.c:2491:undefined reference to `libiconv_open'

collect2:ld returned 1 exit status

make:*** [sapi/cli/php] Error 1


在安�b PHP 到系统中时要是发生「undefinedreference to libiconv_open'」之类的错误信息,那表示在「./configure」�]抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没�o到要 link iconv 函式库参数。解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS =..... -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可。如下图

231641686.jpg



你可能感兴趣的:(源码编译,LNMP)