centos6.2 64位LNMP(linux+nginx+mysql+php)实现

    现在nginx运用越来越广泛。这是因为NGINX在某些方面优于apache。并且NGINX在web服务当中占有一定的比例,我们有必要了解和学习。下面步入正题,看LNMP架构怎么搭建。
    首先,分析下LAMP架构的安装。在LAMP架构中mysql,apache是可以单独安装不需要关联其他两个,而PHP即要关联MYSQL,又要关联apache,所以,装PHP是关键。那么,在LNMP架构中,也一样。关键的地方是让NGINX来支持PHP。那怎么让NGINX来支持PHP呢?这就用到了,PHP中的fastcgi跟fpm这两个东东,在正常情况下Nginx和PHP他俩之间是一点感觉没有的。在之前,很多朋友都搭建过Apache+PHP,Apache+PHP编译后生成的是模块文件,而Nginx+PHP需要PHP生成可执行文件才可以,所以要利用fastcgi技术来实现Nginx与PHP的整合,这个只要我们安装是启用FastCGI即可。此次我们安装PHP不仅使用了FastCGI,而且还使用了PHP-FPM这么一个东东,PHP-FPM说白了是一个管理FastCGI的一个管理器。
    好了,现在明白了。那么,就动手吧。首先,安装MYSQL和NGINX,

  
  
  
  
  1. [root@localhost mysql-5.5.22]# useradd mysql -s /sbin/nologin 
  2. [root@localhost mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 
  3. [root@localhost mysql-5.5.22]# gmake && make install 
  4. [root@localhost mysql-5.5.22]# chown mysql. -R /usr/local/mysql 
  5. [root@localhost mysql-5.5.22]# cd support-files/ 
  6. [root@localhost support-files]# cp my-huge.cnf /etc/my.cnf 
  7. [root@localhost mysql-5.5.22]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ 
  8. [root@localhost mysql-5.5.22]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld 
  9. [root@localhost mysql-5.5.22]# chkconfig --add mysqld 
  10. [root@localhost mysql-5.5.22]# service mysqld start 

 最后添加环境变量到系统

  
  
  
  
  1. vim /etc/profile 
  2. PATH=$PATH:/usr/local/mysql/bin/ 
  3.                                                                                                                  export PATH 

然后安装nginx,安装nginx比较简单了,直接运行

  
  
  
  
  1. [root@shiyan1 nginx-1.2.6]#./configure --prefix=/usr/local/nginx 
  2. [root@shiyan1 nginx-1.2.6]# make && make install 

nginx完了,就装PHP,这个是关键

  
  
  
  
  1. [root@localhost libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt   
  2. [root@localhost libmcrypt-2.5.7]# make && make install 
  3. [root@localhost php-5.3.10]# ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-curl --with-libxml-dir --with-config-file-path=/usr/local/php5/etc --enable-ftp --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-zip  --with-mcrypt=/usr/local/libmcrypt  --with-gd --enable-soap --enable-fpm --enable-fastcgi 

 运行完会提示,找不到参数enable-fastcgi.这个不用理会。直接make && make install

  
  
  
  
  1.     [root@localhost php-5.3.10]# cp php.ini-production /usr/local/php5/etc/php.ini  
  2.     [root@localhost php-5.3.10]# cd /usr/local/php5/etc/  
  3.     [root@localhost etc]# cp php-fpm.conf.default php-fpm.conf  
  4.     [root@localhost etc]# vim php-fpm.conf  
  5.     [global]  
  6.     ; Pid file  
  7.     ; Note: the default prefix is /usr/local/php5/var  
  8.     ; Default Value: none  
  9.     pid = run/php-fpm.pid  
  10.     ; Error log file  
  11.     ; If it's set to "syslog", log is sent to syslogd instead of being written  
  12.     ; in a local file.  
  13.     ; Note: the default prefix is /usr/local/php5/var  
  14.     ; Default Value: log/php-fpm.log  
  15.     ;error_log = log/php-fpm.log  
  16.     [root@localhost etc]# cd /usr/local/src/php-5.3.10/sapi/fpm/  
  17.     [root@localhost fpm]# cp init.d.php /etc/rc.d/init.d/php-fpm  
  18.     [root@localhost fpm]# service php-fpm start  
  19.     [root@localhost fpm]# cd /usr/local/nginx/conf/nginx.conf  
  20.             # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  
  21.              
  22.             location ~ \.php$ {  
  23.                 root           html;  
  24.                 fastcgi_pass   127.0.0.1:9000;  
  25.                 fastcgi_index  index.php;  
  26.                 fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;  
  27.                 include        fastcgi_params;  
  28.             }  
  29.       
  30.             # deny access to .htaccess files, if Apache's document root  
  31.             # concurs with nginx's one  
  32. [root@localhost fpm]# /usr/local/nginx/sbin/nginx 

   把fpm跟nginx配置文件修改好启动,lnmp就完成了。值得注意的是:php-fpm.conf这个配置文件修改的时候,只需修改一处就是,把pid = run/php-fpm.pid这个前面的分号去掉就可以了,而nginx配置文件把支持PHP打开就OK!

你可能感兴趣的:(LNMP)