国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

lnmp編譯安裝教程(非常詳解)

2024-08-27 23:59:54
字體:
供稿:網(wǎng)友

lnmp環(huán)境是我們大型WEB服務(wù)器常用的一個環(huán)境了,在這里我來給各位整理了一篇非常詳細的lnmp環(huán)境編譯安裝步驟,希望下文可以幫助到各位.

linux采用的是centos,軟件包統(tǒng)一放在/usr/local/src目錄下.由于 centos源比較老,而且更新起來也比較慢,此處建議你換成163源,提示:如果你真打算采用這種編譯安裝php的話,請至少安排半天時間來完成,如果是在虛擬機里測試的話,建議調(diào)大內(nèi)存以讓時間更短,我本機給了虛擬機2G內(nèi)存,在安裝完成后可以再設(shè)置小點內(nèi)存跑.安裝的時候請按順序安裝.

更改yum源:

  1. #更換到163源 
  2. cd /etc/yum.repos.d/ 
  3. wget http://mirrors.163.com/.help/CentOS6-Base-163.repo 
  4. mv CentOS-Base.repo CentOS-Base.repo.bak 
  5. mv CentOS6-Base-163.repo CentOS-Base.repo 
  6.  
  7. #先更新一下 
  8. yum clean all 
  9. yum makecache 
  10. yum update(這步比較慢,建議先不要運行) 

準備lnmp安裝環(huán)境:先采用yum包安裝一些依賴的東西:

  1. yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make cmake libtool* git tree 

下載一些軟件都放在/usr/local/src下,安裝libiconv:

  1. cd /usr/local/src 
  2. wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz 
  3. tar zxvf libiconv-1.14.tar.gz  
  4. cd libiconv-1.14/  
  5. ./configure --prefix=/usr/local  
  6. make && make install 

在我make && make install的時候出現(xiàn)錯誤了error:‘gets’ undeclared here(not in a function),如果你不要遇到遇到,如果遇到請做如下修改:(國外的這文章記錄了http://www.itkb.ro/kb/linux/patch-libiconv-pentru-glibc-216).

cd libiconv-1.14/srclib

編輯stdio.in.h文件,搜索這句話:

_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

把這句刪除換成如下幾句:

  1. #if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16) 
  2.  _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); 
  3. #endif 
  4. //然后 
  5. cd .. 
  6. make && make install 

下載并安裝libmcrypt:

  1. cd /usr/local/src 
  2. wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz 
  3. tar -zxvf libmcrypt-2.5.7.tar.gz 
  4. cd libmcrypt-2.5.7 
  5. ./configure 
  6. make  
  7. make install  
  8. cd libltdl/  
  9. ./configure --enable-ltdl-install  
  10. make  
  11. make install 

下載并安裝mbash 網(wǎng)址:http://mhash.sourceforge.net/,下載下來之后用winscp這種工具傳到linux的/usr/local/src目錄下:

  1. cd /usr/local/src 
  2. tar -jxvf mhash-0.9.9.9.tar.bz2 
  3. cd mhash-0.9.9.9 
  4. ./configure 
  5. make  
  6. make install 

下載并安裝mcript:

  1. cd /usr/local/src 
  2. tar zxvf mcrypt-2.6.8.tar.gz  
  3. cd mcrypt-2.6.8/  
  4.  
  5. #注意一下這步運行下,不然下面可能報錯 
  6. export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 
  7.  
  8. ./configure  
  9. make  
  10. make install 
  11.  
  12. ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la  
  13. ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so  
  14. ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4  
  15. ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8  
  16. ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a  
  17. ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la  
  18. ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so  
  19. ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2  
  20. ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1  
  21. ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config 

安裝mysql(mysql5.6.13),先檢查一下mysql是否已經(jīng)存在了,如果存在就刪除mysql:

  1. rpm -qa | grep mysql 
  2. #我的顯示如下(如果沒有任何顯示就表示沒有mysql呢) 
  3. mysql-libs-5.1.73-3.el6_5.i686 
  4. #如果存在就卸載mysql 
  5. rpm -e mysql-libs-5.1.73-3.el6_5.i686 --nodeps 
  6. #此時再運行 
  7. rpm -qa | grep mysql 
  8. #發(fā)現(xiàn)沒有任何顯示 

添加一個mysql用戶(nologin用戶并且沒有家目錄):

useradd -M -s /sbin/nologin mysql

初次編譯mysql的時候時間比較長,請耐心等待吧.

  1. cd /usr/local/src 
  2. tar -zxf mysql-5.6.13.tar.gz 
  3. cd mysql-5.6.13 
  4. #注意下面是cmake .注意點 
  5. cmake . 
  6. make && make install 
  7. #復制mysql配置文件 
  8. cp support-files/my-default.cnf /etc/my.cnf 
  9. #創(chuàng)建系統(tǒng)數(shù)據(jù)庫表 
  10. cd /usr/local/mysql 
  11. scripts/mysql_install_db --user=mysql 
  12. #更改權(quán)限 
  13. cd /usr/local/mysql 
  14. chown -R root:mysql . 
  15. chown -R mysql:mysql data 
  16.  
  17. #把mysql添加到系統(tǒng)服務(wù)中去 
  18. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 
  19. #啟動mysql啟動的時候,一直不動的話按下enter.,就行了 
  20. /usr/local/mysql/bin/mysqld_safe --user=mysql & 
  21. #查看mysql是否啟動 
  22. netstat -tunpl | grep 3306 
  23. #或者pstree,看到有mysqld進程也行 
  24. #修改mysql密碼 
  25. /usr/local/mysql/bin/mysqladmin -u root password "xxxxx" 
  26. #進入mysql中刪除空密碼和匿名用戶 
  27. /usr/local/mysql/bin/mysql -u root -p 
  28. select host,user,password from mysql.user; 
  29. delete from mysql.user where password="" or user=""
  30. flush privileges; 
  31. #也可以在mysql修改用戶密碼(只是說明一下) 
  32. set password form 'root'@'localhost' = password('123456'); 
  33. #關(guān)閉mysql的時候可以使用 
  34. /usr/local/mysql/bin/mysqladmin -u root -p shutdown 
  35. //Vevb.com 
  36. #把mysql添加到開機啟動 
  37. vim /etc/rc.local 
  38. #在最后再加一行 
  39. /usr/local/mysql/bin/mysqld_safe --user=mysql & 
  40.  
  41. #最后做一個軟鏈接方便使用mysql 
  42.  
  43. ln -s /usr/local/mysql/bin/mysql /usr/bin/ 

nginx安裝(此處我本人安裝了基于nginx改版的tengine,nginx的安裝跟這基本完全一樣,你完全可以參照并完整安裝).

nginx安裝前編譯安裝pcre zlib openssl[openssl安裝用./config]

pcre安裝:

  1. cd /usr/local/src 
  2. tar -jxf pcre-8.31.tar.bz2 
  3. cd pcre-8.31 
  4. ./configure 
  5. make && make install 

zlib安裝:

  1. cd /usr/local/src 
  2. tar -zxf zlib-1.2.8.tar.gz 
  3. cd zlib-1.2.8 
  4. ./configure 
  5. make && make install 

openssl安裝:

  1. cd /usr/local/src 
  2. tar -zxf openssl-1.0.1c.tar.gz 
  3. cd openssl-1.0.1c 
  4. ./config 
  5. make && make install 
  6. //注意這時我安裝tengine了,如果你用nginx,完全參照安裝就行 
  7.  
  8. cd /usr/local/src 
  9. useradd -M -s /sbin/nologin nginx 
  10. #如果是nginx,請把這里換成nginx 
  11. tar -zxf tengine-2.0.1.tar.gz 
  12. cd tengine-2.0.1 
  13. #注意的是with-pcre這些都指向/usr/local/src這種目錄,這非常奇怪 
  14. ./configure --with-pcre=/usr/local/src/pcre-8.31 --with-http_ssl_module --with-zlib=/usr/local/src/zlib-1.2.8 --with-openssl=/usr/local/src/openssl-1.0.1c --with-http_concat_module=shared(注:如果是nginx的話不需要 --with-http_concat_module=shared) 
  15.  
  16. make && make install 
  17. #做軟鏈接方便nginx啟動 
  18. ln -s /usr/local/nginx/sbin/nginx /usr/bin/ 
  19. #修改nginx配置文件 
  20. vim /usr/local/nginx/conf/nginx.conf 

把#user nobody 改成 user nginx;

  1. #測試一下nginx配置文件 
  2. nginx -t 
  3. #啟動nginx 
  4. nginx 
  5.  
  6. #說一下nginx啟動的一些事情 
  7. #一般來說在nginx的配置文件修改后進行如下操作,nginx -t檢測一下配置文件是否正確,如果正確的話 
  8. #再使用nginx -s reload 使nginx平滑啟動 
  9.  
  10. #把nginx添加到開機啟動 
  11. vim /etc/rc.local 
  12. #在最后新加一行 
  13. /usr/local/nginx/sbin/nginx 
  14. #查看nginx是否啟動 
  15. netstat -tunpl | grep 80 
  16. pstree 看下有沒有nginx就行了 

安裝php:

  1. cd /usr/local/src 
  2. useradd -M -s /sbin/nologin php 
  3. tar -jxf php-5.5.12.tar.bz2 
  4. cd php-5.5.12 
  5.  
  6. ./configure --enable-opcache --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 --enable-mbstring=all --with-pdo-mysql --enable-sockets --enable-mbstring --enable-fpm --with-curl --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-gd --with-mcrypt --with-libxml-dir=/usr --enable-xml --with-openssl --with-iconv=/usr/local/iconv 
  7.  
  8. make ZEND_EXTRA_LIBS='-liconv' 
  9. make install 
  10.  
  11. cp php.ini-development /usr/local/php/etc/php.ini 
  12.  
  13. #配置php-fpm 
  14. cd /usr/local/php/etc 
  15. cp php-fpm.conf.default php-fpm.conf 
  16. vim php-fpm.conf 
  17. 將 
  18. user = nobody 
  19. group = nobody 
  20. 改為 
  21. user = php 
  22. group = php 
  23. #啟動php-fpm 
  24. /usr/local/php/sbin/php-fpm 
  25. #把php-fpm添加到開機啟動 
  26. vim /etc/rc.local 
  27. #最后一行加上 
  28. /usr/local/php/sbin/php-fpm 
  29.  
  30. #修改nginx配置文件使之支持php 
  31. vim /usr/local/nginx/conf/nginx.conf 
  32. #location ~ /.php$ { 
  33. #    root           html; 
  34. #    fastcgi_pass   127.0.0.1:9000; 
  35. #    fastcgi_index  index.php; 
  36. #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name; 
  37. #    include        fastcgi_params; 
  38. #} 
  39. 修改為 
  40. location ~ /.php$ { 
  41.     fastcgi_pass   127.0.0.1:9000; 
  42.     fastcgi_index  index.php; 
  43.     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
  44.     include        fastcgi_params; 
  45.  
  46. #也順便把gzip給開啟下吧 

gzip on前面的#去掉

修改完配置之后:nginx -s reload

ok,現(xiàn)在來測試一下環(huán)境.

  1. cd /usr/local/nginx 
  2. cd html 
  3. vim test.php 

寫上:<?php  phpinfo();?>

然后訪問一下localhost/test.php,正常的話,就一切正常了,如果出問題的話,請看nginx有沒有啟動,php-fpm有沒有啟動,注明幾個問題如果修改php配置文件的時候,需要重啟php-fpm就可以了.

  1. #先關(guān)閉php-fpm 
  2.  
  3. pkill php-fpm  
  4.  
  5. #然后運行 
  6.  
  7. /usr/local/php/sbin/php-fpm 
  8.  
  9. #就可以了可以看到php-fpm就啟動了pstree可以看到這個進程 
  10. pstree 

為了更方便的使用php和php-fpm,我做了兩個鏈鏈接.

  1. ln -s /usr/local/php/sbin/php-fpm /usr/bin/ 
  2. ln -s /usr/local/php/bin/php /usr/bin/ 

lnmp安裝就徹底完成了,有什么問題可以聯(lián)系我,這里沒沒講到如何優(yōu)化一些配置的問題,以后可以會寫文章分析.

在這里也特別說明一下nginx如何支持path_info這種形式,配置文件中可以這樣寫,當然可能對你不需要.

  1. location ~ ^(.+/.php)(.*)$ { 
  2.         fastcgi_pass   127.0.0.1:9000; 
  3.         fastcgi_index  index.php; 
  4.         fastcgi_split_path_info ^(.+/.php)(.*)$; 
  5.  
  6.         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
  7.         fastcgi_param        PATH_INFO                $fastcgi_path_info; 
  8.         fastcgi_param        PATH_TRANSLATED        $document_root$fastcgi_path_info; 
  9.         include        fastcgi_params; 
  10.     }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南宫市| 昆山市| 眉山市| 集安市| 都江堰市| 镇康县| 佛山市| 阳谷县| 德惠市| 五指山市| 陈巴尔虎旗| 应用必备| 平顶山市| 陕西省| 平谷区| 乡城县| 从江县| 扶风县| 牡丹江市| 荣昌县| 江西省| 肥西县| 邢台市| 东海县| 贵德县| 利津县| 临潭县| 东乌珠穆沁旗| 邵武市| 思茅市| 绩溪县| 佳木斯市| 齐齐哈尔市| 蕉岭县| 南投市| 宣武区| 百色市| 津南区| 永清县| 贞丰县| 双鸭山市|