學習筆記----編譯搭建lnmp環境

學習筆記----編譯搭建lnmp環境
一、首先搭建編譯環境
         安裝gcc       gcc-c++          libtermcap       libtermcap-devel     ncurese          ncurses-devel        zlib        zlib-devel     
 
二、編譯mysql
         #tar   -zxvf    mysql-........
         #cd    mysql-......
         #groupadd   mysql
         #useradd    -g   mysql    mysql
         #./configure    --prefix=/usr/local/lnmp/mysql    --with-client-ldflags=-all-static    --with-mysql-ldflags=-all-static    --enable-assmebler    --with-unix-socket-path=/tmp/myslq.sock    --with-extra-charsets=utf8,gbk,gb2312    --wtih-charset=utf8
         #cp support-files/my-medium.cn    /etc/my.cnf
         #cd /usr/local/lnmp/mysql
         #bin/mysql_install_db 
         #chown  -R   mysql   var
         #chgrp   -R   mysql   .
         #./bin/mysqld_safe  &
 
三、編譯nginx
          #tar -zxvf  pcre-...
          #cd pcre-...
          #./configure&&make&&make install
          編譯nginx前先安裝幾個工具:openssl   openssl-devel   zlib  zlib-devel    krb5-devel
          #tar -zxvf nginx-...
          #cd nginx
          #groupadd www
          #useradd -g www www
          #./configure --user=www  --group=www --prefix=/usr/local/lnmp/nginx
四、編譯php(fast-CGI)
         1、安裝PHP依賴組件
            libiconv        freetype    libpng    libjpeg   zlib    libxml2   gd    libmcrypt    mhash
            mcrypt
          2、編譯安裝PHP 5.2.14所需的支持庫:
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure --prefix=/usr/local
make
make install
cd ../

tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../

tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../
              編譯mcrypt時出錯:
ecking for libmcrypt-config... /usr/local/bin/libmcrypt-config
checking for libmcrypt - version >= 2.5.0... no
*** Could not run libmcrypt test program, checking why...
*** The test program compiled, but did not run. This usually means
*** that the run-time linker is not finding LIBMCRYPT or finding the wrong
*** version of LIBMCRYPT. If it is not finding LIBMCRYPT, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location  Also, make sure you have run ldconfig if that
*** is required on your system
***
*** If you have an old version installed, it is best to remove it, although
*** you may also be able to get things to work by modifying LD_LIBRARY_PATH
***
configure: error: *** libmcrypt was not found
                 按上面的操作可以解決以上出現的問題
爲PHP打補丁:php-fpm
           #gzip -d php-5.2.14-fpm-0.5.14.diff.gz
           #patch -d php-5.2.14 -p1 < php-5.2.14-fpm-0.5.14.diff.gz
 
編譯PHP
           #cd php-....
           #./configure --prefix=/usr/local/lnmp/php --with-fpm-conf=/ etc/fpm-php.conf  --with-confing-file-path=/usr/local/lnmp/php/etc  --with-iconv=/usr/local/libiconv  --with-freetype-dir --with-png-dir  --with-libxml-dir  --with-gd  --enable-gd-native-ttf  --enable-fastcgi  --enable-fpm  --enable-mbstring  --with-openssl  --with-mcrypt  --with-xml  --enable-inline-optimization
           #cp /etc/fpm-php.conf  /usr/local/lnmp/php/etc/fpm-php.conf (起備份作用)
           #cp php.ini-dist  /usr/local/lnmp/php/etc/php.ini
           #vi /usr/local/lnmp/php/etc/fpm-php.conf
           #cd /usr/local/lnmp/php/
           #vi /etc/fpm-php.conf
     Unix user of processes
    
  <value name="user">www</value>

      Unix group of processes
      <value name="group">www</value>

      Process manager settings
      <value name="pm">

        Sets style of controling worker process count.
        Valid values are 'static' and 'apache-like'
        <value name="style">static</value>

        Sets the limit on the number of simultaneous requests that will be served.
        Equivalent to Apache MaxClients directive.
        Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
        Used with any pm_style.
        <value name="max_children">128</value>
 
                #./sbin/php-fpm start
          配置nginx.conf 來發布PHP
                #cd /usr/local/lnmp/nginx/conf/
                #vi  nginx.conf
            ...................
           location ~ .*\.(php|php5)?$
    {      
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      默認這裏有一段配置,把它刪了
      include fastcgi_params;
    }
              .........................激活這段配置
               #vi  fastcgi_params
          
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
#加入下面一段配置
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

五、安裝Zend Optimization3.3.3
             #tar -zxvf Zend Optimization
             #cd Zend Optimization
             #./install.sh
可是啓動時就會報錯
[root@localhost php]# ./sbin/php-fpm restart
Shutting down php_fpm . done
Starting php_fpm PHP Warning:  Zend Optimizer for PHP 5.2.x cannot be found (expected at '/usr/local/Zend/lib/Optimizer-3.0.0/php-5.2.x/ZendOptimizer.so') - try reinstalling the Zend Optimizer in Unknown on line 0
. done
在測試PHP中Zend會出現以下的情況
有可能是Zend的版本問題,但是我搞Zend Optimizer3.3.9還沒有搞定。搞了一天終於搞出來了。
          #cd /usr/local/Zend/lib/
          #ls 發現沒有Optimizer-3.0.0這個目錄,發現有Optimizer-3.3.3,試着將Optimizer-3.0.0重命名爲Optimizer-3.3.3
           #mv  Optimizer-3.3.3  Optimizer-3.0.0
      刷新一下網頁終於搞定了。。
-------------------------------------------------------------------------
網上說直接用ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz來安裝
                 #tar  -zxvf  ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
                 #mkdir  -p  /usr/local/Zend/lib
                 #cd  ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp
                 #cp   ZendOptimizer.so  /usr/local/Zend/lib/ZendOptimizer.so 
                 #cd  /usr/local/lnmp/php/etc
                 #vi php.ini
                        .....................  在最後加上以下配置就OK
                         zend_optimizer.optimization_level=15
                         zend_extension=/usr/locaZendOptimizer.sol/Zend/lib/    
------------------------可惜的是我沒有成功
 
六、測試LNMP環境,發佈DISCUZ論壇。
                下載UC1.5.1_UCH2.0_DZ7.2_SC_UTF8.zip和Discuz_7.2_SC_UTF8.zip
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章