lnmp和lamp业务上的不同

由于二者仅仅是区别在于web的选择,nginx更高效,占用资源更少,详情区别查看LNMP环境应用实践

lnmp和lamp安装上的不同

生产环境中,可能会遇到lamp架构与lnmp架构都在同一台物理服务器的环境,此时
若php版本高于5.4,则直接编译php支持mod方式和php-cgi方式,也就是我们在LNMP中编译安装的过程
若php版本不高于5.4,就应该剔除enable-fpm模式,也就是我们在LAMP中编译的过程

,apapche是通过模块方式与php互通,而nginx是通过fastcgi互通,所以在php的编译安装上也是因为这层关系,编译参数上有些不同,apache的编译参数相比nginx编译参数缩减了

--enable-fpm
--with-fpm-user=www 
--with-fpm-group=www

增加了

--with-apxs2=/application/apache/bin/apxs

LNMP环境应用实践 :https://www.cnblogs.com/jokerbj/p/9168573.html (包含mysql安装)

LAMP环境应用实践 :https://www.cnblogs.com/jokerbj/p/9178156.html

php编译参数参考

./configure # 编译参数
--prefix=/application/php5.3.27
# 指定php的安装路径为/application/php5.3.27
--with-apxs2=/aaplication/apache/bin/apxs
# 提供将module_php.so嵌入到apache的http.conf中,供静态与动态的沟通,nginx是通过fastcgi
--with-mysql=/application/mysql/
# 需要指定mysql的安装路径,安装PHP需要的My# QL相关内容。当然如果没有My# QL软件包,也可以不单独安装,这样的情况可使用--with-mysql=mysqlnd替代--with-mysql=/application/mysql,因为PHP软件里面已经自带连接My# QL的客户端工具。
--with-iconv-dir=/application/libiconv # libiconv库,各种字符集间的转换,如果没有安装请参考前面
--with-freetype-dir # 打开对freetype字体库支持
--with-jpeg-dir # 打开对jpeg图片的支持
--with-png-dir # 打开对png图片的支持
--with-zlib # 打开zlib库的支持,用于http压缩传输
--with-libxml-dir=/usr # 打开libxml2库的支持
--enable-xml
--disable-rpath # 关闭额外的运行库文件
--enable-safe-mode # 打开安全模式
--enable-bcmath # 打开图片大小调整,用zabbix监控时会用到该模块
--enable-shmop
--enable-sysvsem # 使用sysv信号机制,则打开此选项
--enable-inline-optimization # 优化线程
--with-curl # 打开curl浏览工具的支持
--with-curlwrappers # 运维curl工具打开url流
--enable-mbregex
--enable-mbstring # 支持mbstring
--with-mcrypt # 编码函数库
--with-gd # 打开gd库的支持
--enable-gd-native-ttf # 支持TrueType字符串函数库
--with-openssl # openssl的支持,加密传输时用到
--with-mhash # mhash算法的扩展
--enable-pcntl # freeTD# 需要用到,可能是链接mssql
--enable-sockets # 打开sockets支持
--with-xmlrpc # 打开xml-rpc的c语言
--enable-zip # 打开对zip的支持
--enable-soap # soap模块的扩展
--enable-short-tags # 开始和标记函数
--enable-zend-multibyte # 支持zend的多字节
--enable-static # 生成静态链接库
--with-xsl # 打开X# LT文件支持,扩展libXML2库,需要libxslt软件
--enable-ftp # 打开ftp的支持
--enable-fpm # 表示激活PHP-FPM方式服务,即FactCGI方式运行PHP服务。
--with-fpm-user=www # 指定PHP-FPM进程管理的用户为www,此处最好和Nginx服务用户统一。
--with-fpm-group=www # 指定PHP-FPM进程管理用户组为www,此处最好和Nginx服务用户组统一。

PHP安装错误指南,红色是遇到过的

安装 PHP 5.4.3 报 configure error xml2-config not found. please check your libxml2 installation 错误
检查是否安装了libxm包
[root@rh-linux software]# rpm -qa |grep libxml2
libxml2-2.6.26-2.1.12
libxml2-python-2.6.26-2.1.12
重新安装libxml2和libxml2-devel包, yum安装的时候发现新版本会提示更新,需要更新的可以更新,不要跳过就行了。
[root@rh-linux /]# yum install libxml2
[root@rh-linux /]# yum install libxml2-devel -y
安装完之后查找xml2-config文件是否存在
[root@rh-linux /] # find / -name "xml2-config"
/usr/bin/xml2-config 如果存在的话重新安装php
[root@rh-linux php-5.4.3]# ./configure
[root@rh-linux php-5.4.3]# make
[root@rh-linux php-5.4.3]# make install
安装好php后别忘了配置下php.ini 文件,
[root@rh-linux php-5.4.3]# cp php.ini-production /usr/local/lib/php.ini
也可以直接在 make install 后面加一个编译参数 --with-config-file-path=/usr/local/php/etc 指定自己的php.ini路径 然后从源码里面 cp过去php.ini 源码里面有个php.ini-development和php.ini-production 如果不是本地调试模式的 选择后者 [libiconv_open]collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] 错误 1 编译php时出现错误 xmlrpc/libxmlrpc/encodings.c:73: undefined reference to `libiconv_open'
xmlrpc/libxmlrpc/encodings.c:81: undefined reference to `libiconv'
xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close'
collect2: ld returned 1 exit status
make: *** [sapi/cgi/php-cgi] 错误 1 是由于没有安装 libiconv包,又没有yum源,无法通过yum直接安装,还需要自己手动来。
先安装libiconv:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar-zxvf libiconv-1.14.tar.gz
cdlibiconv-1.14
./configure--prefix=/usr/local
make
sudomakeinstall
然后重新configure php,再make就ok.. Example
1
2
3
./configure--with-iconv=/usr/local
makeclean
make
配置如果“configure:error: libpng.(a|so) not found.”错误。 解决方法: 根据报错发现是因为libpng.so和libpng.a找不到,检查libpng的相关软件是否已经安装,如果已安装,需要将“/usr/lib64/libpng*”库文件拷贝到“/usr/lib”下。执行如下命令: 1
[root@web /]#cp -frp /usr/lib64/libpng* /usr/libyuanyi
原因:因为configure一般的搜索编译路径为/usr/lib/下,而x64位的系统默认在“/usr/lib64”下,因此需要拷贝到“/usr/lib”目录下。 如果报configure: error: libjpeg.(a|so) not found错误解决方法和上面的解决方法类似 安装PHP出现make: *** [sapi/cli/php] Error 1 解决办法 ext/iconv/.libs/iconv.o: In function `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
[root@test php-5.2.13]# vi Makefile 在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open’」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。 解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ….. -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ….. -lcrypt -liconv 然后重新再次 make 即可。 或者用另一种办法 make ZEND_EXTRA_LIBS=’-liconv’ ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/ 注:加上 -liconv,需要确认已安装libiconv libiconv安装 http://www.gnu.org/software/libiconv/ # tar -zxvf libiconv-1.9.2.tar.gz
# cd libiconv-1.9.2
# ./configure –prefix=/usr/local # make
# make install
# make clean 再次安装 PHP时又报错
ext/standard/info.o: In function `php_info_print_request_uri’:
/root/php-5.4.16/ext/standard/info.c:97: undefined reference to `sapi_globals’
ext/standard/info.o: In function `php_print_gpcse_array’:
/root/php-5.4.16/ext/standard/info.c:209: undefined reference to `executor_globals’
ext/standard/info.o: In function `php_print_info’:
/root/php-5.4.16/ext/standard/info.c:874: undefined reference to `executor_globals’
/root/php-5.4.16/ext/standard/info.c:877: undefined reference to `executor_globals’
/root/php-5.4.16/ext/standard/info.c:880: undefined reference to `executor_globals’
/root/php-5.4.16/ext/standard/info.c:883: undefined reference to `executor_globals’
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] 错误 1 出现这样的错误信息可能是以前用不同的参数编译过PHP。 解决方法:执行make clean删除上次的编译结果,然后再重新编译就OK了。 make ZEND_EXTRA_LIBS=’-liconv’  /libxmlrpc/encoding.c:101:undefined reference to 'libiconv_close'
  collect2: ld returned 1 exit status
  make:*** [sapi/fpm/php-fpm] Error 1
  解决方法:
  #make ZEND_EXTRA_LIBS='-liconv'
  错误一、编译php出错
  /php-5.3.2/ext/fileinfo/libmagic/apprentice.c:147:internal compiler error:Segmentation fault
  Please submit a full bug report,
  with preprocessed source if appropriate.
  See <URL:http://bugzilla.redhat.com/bugzilla> for instructions.
  The bug is not reproducible,so it is likely a hardware or OS problem.
  make:*** [ext/fileinfo/libmagic/apprentice.lo] Error 1
  解决方法:内存大于1G即可,这是php5.3.2的一个bug
  --------------------------------------------------------------------
  错误二、重新构造configure文件出错
  ./buildconf --force
  Forcing buildconf
  buildconf:checking installation…
  buildconf:autoconf version 2.59 (ok)
  buildconf:Your version of autoconf likely contains buggy cache code.
  Running vcsclean for you.
  To avoid this,install autoconf-2.13.
  Can't figure out your VCS, not cleaning.
  解决方法:编译安装autoconf-2.13
  再将autoconf-2.13的auotconf文件至/usr/local/autoconf
  --------------------------------------------------------------------
  错误三、编译时缺少库
  configure: error: libXpm.(a|so) not found.
  解决方法:yum install libXpm-devel
  --------------------------------------------------------------------
  错误四、编译时缺少gmp.h文件
  configure: error: Unable to locate gmp.h
  解决方法:yum install gmp-devel
  --------------------------------------------------------------------
  错误五
  Configure: error: xml2-config not found. Please check your libxml2 installation.
  解决方法:
  #yum install libxml2 libxml2-devel (For Redhat & Fedora)
  # aptitude install libxml2-dev (For ubuntu)
  --------------------------------------------------------------------
  错误六
  Checking for pkg-config… /usr/bin/pkg-config
  configure: error: Cannot find OpenSSL’s <evp.h>
  解决方法:
  #yum install openssl openssl-devel
  --------------------------------------------------------------------
  错误七
  Configure: error: Please reinstall the BZip2 distribution
  解决方法:
  # yum install bzip2 bzip2-devel
  --------------------------------------------------------------------
  错误八
  Configure: error: Please reinstall the libcurl distribution -
  easy.h should be in <curl-dir>/include/curl/
  解决方法:
  # yum install curl curl-devel (For Redhat & Fedora)
  # install libcurl4-gnutls-dev (For Ubuntu)
  --------------------------------------------------------------------
  错误九:
  Configure: error: libjpeg.(also) not found.
  解决方法:
  # yum install libjpeg libjpeg-devel
  --------------------------------------------------------------------
  错误十
  Configure: error: libpng.(also) not found.
  --------------------------------------------------------------------
  解决方法:
  # yum install libpng libpng-devel
  --------------------------------------------------------------------
  错误十一
  Configure: error: freetype.h not found.
  解决方法:
  #yum install freetype-devel
  --------------------------------------------------------------------
  错误十二
  Configure: error: Unable to locate gmp.h
  解决方法:
  # yum install gmp-devel
  --------------------------------------------------------------------
  错误十三
  Configure: error: Cannot find MySQL header files under /usr.
  Note that the MySQL client library is not bundled anymore!
  解决方法:
  # yum install mysql-devel (For Redhat & Fedora)
  # apt-get install libmysql++-dev (For Ubuntu)
  --------------------------------------------------------------------
  错误十四
  Configure: error: Please reinstall the ncurses distribution
  解决方法:
  # yum install ncurses ncurses-devel
  --------------------------------------------------------------------
  错误十五
  Checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h’ not found!
  解决方法:
  # yum install unixODBC-devel
  --------------------------------------------------------------------
  错误十六
  Configure: error: Cannot find pspell
  解决方法:
  # yum install pspell-devel
  --------------------------------------------------------------------
  错误十七
  configure: error: mcrypt.h not found. Please reinstall libmcrypt.
  解决方法:
  # yum install libmcrypt libmcrypt-devel (For Redhat & Fedora)
  # apt-get install libmcrypt-dev
  --------------------------------------------------------------------
  错误十八
  Configure: error: snmp.h not found. Check your SNMP installation.
  解决方法:
  # yum install net-snmp net-snmp-devel
  --------------------------------------------------------------------
  错误十九
  configure:error:Cannot find ldap.h
  解决方法:
  #yum install openldap-devel openldap
  错误二十
  configure:error:xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
  解决方法:
  #yum install libxslt libxslt-devel
  错误二十一
  checking for libevent >=1.4.11 install prefix… configure: error: Could not find libevent >=1.4.11 in /usr/local/php
  解决方法:
  安装libevent-1.4.11以上版本至/usr/local
  tar xzvf libevent-1.4.14-stable.tar.gz
  cd libevent-1.4.14-stable
  ./configure --prefix=/usr/local
  make&&make install
  在编译。/configure时添加--with-libevent-dir=/usr/local即可
  错误二十二
  cc1: out of memory allocating 2036 bytes after a total of 81846272 bytes
  make: *** [ext/date/lib/parse_date.lo] Error 1
  报错:
  /usr/bin/ld: cannot find -lltdl
  collect2: ld returned 1 exit status
  make:*** [sapi/fpm/php-fpm] Error 1
  解决方法:
  安装ltdl
  #cd /libmcrypt-2.5.7/libltdl/ # 可以通过 yum install libtool-ltdl-devel 解决
  #./configure --enable-ltdl-install
  #ldconfig
  #cd php-5.3.6
  #make ZEND_EXTRA_LIBS='-liconv'

lamp与lnmp的选择的更多相关文章

  1. LAMP与LNMP架构的区别及其具体的选择说明

    LAMP==Linux+Apache+Mysql+PHP LNMP==Linux+Nginx+Mysql+PHP 以上两只架构是目前网站的主流架构 LAMP和LNMP最主要的区别在于: 一个使用的是A ...

  2. CentOS 7 yum安装LAMP,LNMP并搭建WordPress个人博客网站

    本次实验要进行的是在CentOS7.2,内核版本3.10.0-327.el7.x86_64的环境下搭建LAMP和LNMP,并在此之上做一个WordPress博客网站. [root@Shining ~] ...

  3. “LAMP“或“LNMP”组合

    Linux作为操作系统,Apache和 Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器. 由于这四个软件都是免费或开放源码软件(FLOSS ...

  4. 关于yum与源码安装的LAMP或LNMP网页直接显示空白页的问题?

    学习LAMP.LNMP时,遇到很奇怪的问题就是:搭建完LAMP或LNMP环境后安装PHPweb程序时,Discuz和Wordpress打不开安装向导,直接显示空白页(PHPWind9.0除外),没有任 ...

  5. centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课

    centos shell编程5  LANMP一键安装脚本 lamp  sed  lnmp  变量和字符串比较不能用-eq  cat > /usr/local/apache2/htdocs/ind ...

  6. centos下yum安装lamp和lnmp轻松搞定

    centos下yum安装lamp和lnmp轻松搞定.究竟多轻松你看就知道了.妈妈再也不操心不会装lamp了. 非常辛苦整理的安装方法,会持续更新下去.凡无法安装的在评论里贴出问题来,会尽快解决.共同维 ...

  7. 轻松获取LAMP,LNMP环境编译参数配置

    轻松获取LAMP,LNMP环境编译参数配置 作者:Mr.Xiong /分类:系统管理  字号:L M S     大家是否遇到过去了新公司,公司内的LAMP,LNMP等所有的环境都是配置好的(已经在提 ...

  8. 四十、LAMP与LNMP加速与缓存优化进阶实战上部

    实例: 一. 所有服务器配置定时时间同步,必须通过web server上网. 有两种方式: 1.服务器A能进行上网,作为web server ,通过指定为ntp服务器,所有服务器访问这个服务器 2.服 ...

  9. LAMP和LNMP,你更愿意选择谁,为什么?

    https://www.zhihu.com/question/19697826 http://www.simongong.net lamp 的全称是linux + apache + mysql +ph ...

随机推荐

  1. Html5的Web存储和WebSql

    HTML5 Web 存储 使用HTML5可以在本地存储用户的浏览数据. 早些时候,本地存储使用的是cookies.但是Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,但是这些数据只用 ...

  2. c# 处理js序列化时 datetime返回UTC格式的问题

    using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using Syst ...

  3. .NET 方法回调

    使用 AsyncCallback 委托在一个单独的线程中处理异步操作的结果. AsyncCallback 委托表示在异步操作完成时调用的回调方法. 回调方法采用 IAsyncResult 参数,该参数 ...

  4. VSS虚拟交换系统

    下面介绍一下如何在CISCO交换机上配置VSS,具体配置如下: //在CISCO1 上配置vss域,两台设备都要在同一个域中 Cisco-(confgi)#switch virtual domain ...

  5. 我为什么想并且要学习Scala

    为什么学习函数式编程 在阅读DDD巨著<Patterns, Principles, and Practices of Domain-Driven Design>的过程中,Scott在第5章 ...

  6. I.MX6 AD7606-4 device driver registe hacking

    /********************************************************************** * I.MX6 AD7606-4 device driv ...

  7. AX内部公司

    <object width="450" height="500" align="middle" id="reader&quo ...

  8. 线性回归 Linear regression(1)线性回归的基本算法与求解

    本系列内容大部分来自Standford公开课machine learning中Andrew老师的讲解,附加自己的一些理解,编程实现和学习笔记. 第一章 Linear regression 1.线性回归 ...

  9. BZOJ4837:[Lydsy1704月赛]LRU算法(双指针&模拟)

    Description 小Q同学在学习操作系统中内存管理的一种页面置换算法,LRU(LeastRecentlyUsed)算法. 为了帮助小Q同学理解这种算法,你需要在这道题中实现这种算法,接下来简要地 ...

  10. 每天一个linux命令(权限):【转载】chgrp命令

    在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理.可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以.Chgrp命令就是change group的 ...