Lammp安裝過程

Lammp安裝過程

 
-1     建設環境
  • 建立mysql數據庫的lvm環境
               建立lv邏輯卷
               新安裝一個硬盤25G sdb
               #fdisk /dev/sdb
               #pvcreate /dev/sdb1
               #vgcreate vgmysql /dev/sdb1
               #lvcreate -L 20G -n lvmysql vgmysql
               #vim /etc/fstab
                    /dev/mapper/vgmysql-lvmysql     /mydata/data     ext4     defaults     0 0
               #mkdir /mydata
               #mount -a 
               #mkdir /mydata/data
               #cd /mydata && chown -R mysql:mysql data && chmod -R 770 data
  • 安裝repo環境
               #vim /etc/yum.repos.d/fedora.repo
                    [fedora_epel]
                    name=fedora_epel
                    baseurl=http://mirror.sohu.com/fedora-epel/6Server/x86_64/
                    gpcheck=0
               #yum repolist
  • 安裝開發環境包
               #yum groupinstall "Server Platform Development"
               #yum groupinstall "Desktop Platform Development"
-2     編譯httpd
  • 開始編譯:
          #tar xf httpd-***.tar.gz 
          #cd httpd-***
          #./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
          主目錄位置:/usr/local/apache
          配置文件位置:若已經安裝過httpd的話,則--sysconfdir=/etc/httpd+版本號
          apr-util位置:/usr/local/apr-util     
          apr位置:/usr/local/apr
  •  編譯過程當中,可能會出現的問題:apr-util/apr/pcre沒有安裝,則安裝對應的軟件便可
  • apr軟件安裝
    • ./configure --prefix=/usr/local/apr && make && make install
  • apr-util軟件安裝
    • ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
  • pcre直接經過yum install pcre-devel安裝

  • httpd啓動和配置文件
    環境變量修改          
            #vim /etc/profile.d/httpd.sh
          export PATH=/usr/local/apache/bin:$PATH
            #. /etc/profile.d/httpd.sh
    啓動腳本,這裏借用rpm包的啓動腳本(也能夠直接經過/usr/local/apache/bin/apachectl控制)
            #vim /etc/rc.d/init.d/httpd
          apachectl=/usr/local/apache/bin/apachectl
                httpd=${HTTPD-/usr/local/apache/bin/httpd}
            #chkconfig --add httpd
            #chkconfig httpd on
    修改配置文件,啓用最基本的httpd,並測試
            #vim /etc/httpd/httpd.conf
                ServerName  www.example.com:80    //Servername和/etc/hosts名字最好相同
          Directoryindex index.html
  • 關於php-fcgi的修改(若沒有啓用php-fcgi,則不需此步)[須要配合php編譯中的php-fcgi參數]
    • 修改httpd配置文件,啓動httpd代理模塊和fcgi模塊
                              LoadModule proxy_module modules/mod_proxy.so
                              LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
    • 添加文件格式
                              AddType     application/x-httpd-php .php
                              AddType     application/x-httpd-php-sources .phps
    • 添加php支持頁
                              DirectoryIndex     index.php
    • 修改虛擬主機
                                ProxyRequests Off          關閉正向代理
                                ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1      
                                這裏的/path/to/document_root是網站根路徑
                                2.4版本中,vhost啓用前,先開啓主配置文檔中的Include /etc/httpd/extra/httpd-vhosts.conf
      • 示例:
                              <VirtualHost *:80>
                                  DocumentRoot "/www/magedu.com"
                                  ServerName magedu.com
                                  ServerAlias www.magedu.com

                                  ProxyRequests Off
                                  ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/magedu.com/$1

                                  <Directory "/www/magedu.com">
                                      Options none
                                      AllowOverride none
                                      Require all granted
                                  </Directory>
                              </VirtualHost>
 
-4     mysql編譯(這裏採用二進制包)
  • 解壓,賦予權限:
          #tar xf mysql-***.tar.gz
          #ln -sv /usr/local/mysql-*** /usr/local/mysql
          #useradd -r mysql
          #cd /usr/local/mysql
          #chown -R root:mysql .
          權限很是重要
  • 複製、修改配置文件
          #cd support-files
          #mv /etc/my.cnf /etc/my.cnf.bak
          #cp my.large.cnf /etc/my.cnf
          #vim /etc/my.cnf
               在[mysql]標籤下添加數據庫目錄路徑,默認mysql的socket文件在/tmp/mysql.sock
               datadir  =  /mydata /data
               basedir  =  /usr /local /mysql
                #修改線程(修改成物理cpu核心的2倍)
               thread_concurrency  =  2
  • 複製腳本文件
          #cp mysql.server /etc/rc.d/init.d/mysqld
          #chkconfig --add mysqld
          #chkconfig mysqld on
  • 庫/頭/環境變量設置
               #ln -sv /usr/local/mysql/include /usr/include     有時候不能夠,則用下面命令
                ln  -sv  /usr /local /mysql /include / *  /usr /local /include  [加載php的pdo -mysql的時候須要此步驟]
               #vim /etc/ld.so.conf.d/mysql.conf
                    /usr /local /mysql /lib
               #ldconfig -v | grep mysql
               #vim /etc/profile.d/mysql.sh
                   export PATH = /usr /local /mysql /bin :$PATH
               #. /etc/profile.d/mysql.sh

  • 初始化msyql數據庫
           #cd /usr/local/mysql/scripts
           #./mysql_install_db --user=mysql --datadir=/mydata/data --basedir=/usr/local/mysql
          報錯: /usr /local /mysql /bin /mysqld : error  while loading shared libraries : libaio.so. 1 : cannot open shared object file : No such file  or directory
                解決:安裝libaio -devel和libaio包
           #chown -R mysql:mysql /mydata/data
           #chmod -R 700 /mydata/data
  • 受權httpd能夠遠程登陸mysql(mysql單獨分離則需此步驟)[遠程受權,還須要配合php中的PDO-mysql模塊]
           #mkdir /mydata/data/dbname
           #chown -R mysql:mysql /mydata/data/dbname
           #chmod -R 700 /mydata/data/dbname
           #mysqladmin -uroot password 123456
           #mysql -uroot -p123456
                >GRANT ALL PRIVILEGES ON dbname. * TO  'admin'@ 'http_ip' IDENTIFIED BY  'password' [with grant option];
                >FLUSH PRIVILEGES;
          將http_ip和password和http_ip替換成對應的數據
          受權admin帳戶在http_ip端登陸mysql,並受權能夠在dbname數據庫操做的權限
 
-5     memcached緩存安裝[須要配合php的memcache模塊]
  • 安裝libevent
          memcached依賴於libevent API,所以要事先安裝之,項目主頁:http://libevent.org/,讀者可自行選擇須要的版本下載。本文采用的是目前最新版本的源碼包libevent-2.0.21-stable.tar.gz。安裝過程:

           # tar xf libevent-2.0.21-stable.tar.gz
           # cd libevent-2.0.21
           # ./configure --prefix=/usr/local/libevent
           # make && make install

           # echo "/usr/local/libevent/lib" > /etc/ld.so.conf.d/libevent.conf
           # ldconfig -v | grep libevent

  • 安裝配置memcached
           # tar xf memcached-1.4.15.tar.gz
           # cd memcached-1.4.15
           # ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
           # make && make install
          啓動腳本建立及修改 
           #vim /etc/profile.d/memcached.sh     建立環境變量
               export PATH = /usr /local /memcached /bin :$PATH
           #cp scripts/memcached.sysv /etc/rc.d/init.d/memcached
           #chmod +x /etc/rc.d/init.d/memcached
           #vim /etc/rc.d/init.d/memcached     內含啓動時所用帳戶/內存大小
               添加.  /etc /profile.d /memcached.sh     添加環境變量     --默認啓動腳本會去 /bin下找memcached,故需在啓動腳本中加入
               修改USER =root     修改啓動帳戶                    
           #mkdir /var/run/memcached     建立pid路徑
  • 啓動memcached
          #service memcached start
  • 測試
          # telnet 127.0.0.1 11211
          add命令格式(添加一個緩存):add keyname flag  timeout  datasize    --flag標示號    timeout存儲時間s    datasize字段長度
          get命令格式(獲取一個緩存):get keyname
 
          如:添加
          add mykey 0 10 12     --add添加
          Hello world!     --輸入12字節的存儲信息
          如:獲取
          get mykey     --get獲取
          VALUE mykey 0 12
          Hello world!
          END
          退出telnet
          ctrl+]
          \q
-6     php編譯
  • 進入安裝目錄,並編譯安裝
               #./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts --enable-fpm  --enable-fpm --with-http_stub_status_module
 
          此處php的mysql環境所須要的庫和頭能夠直接調用mysql二進制安裝包的文件,即將第四步的安裝包解壓至http端的/usr/local/,並更名mysql,以後進行第四步的庫/頭/環境變量設置ln -sv /usr/local/mysql/include/* /usr/local/include 
    • --with-mcrypt 加密工具(libmcrypt,mhash),phpmyadmin須要
    • --with-apxs2 apache鉤子,意思就是將php改爲模塊化
    • --enable-maintainer-zts 代表支持apache_mpm的worker和event(若apache是prefork,則不需添加)
    • --enable-fpm    使php支持fastcgi模式(若php不工做在fcgi模式下,則不需添加)
    • --with-config-file-scan-dir=/etc/php.d 代表php在讀取配置文件的時候,同時讀取php.d下的*.ini額外配置文件,通常模塊配置文件存放此處
  • 複製配置文件
           #cp php.ini-production /etc/php.ini
           #mkdir /etc/php.d  
  • 關於php-fcgi的修改(若沒有啓用php-fcgi,則不需此步)[須要配合httpd服務,且須要修改httpd配置]:
    • 複製php源碼目錄中的啓動腳本
          #cp sapi/fpm/init.d.php-fpm到/etc/rc.d/init.d/php-fpm     並添加進chkconfig
                     #chkconfig --add php-fpm
                     #chkconfig php-fpm on
                     #chmod u+x /etc/rc.d/init.d/php-fpm
                    若是想實現daemon的效果,則須要修改啓動文件,加入如下指令
                    首行加入[  -/etc /rc.d/init.d /function ]  && .  /etc /rc.d/init.d /function
                    在 case $ 1  in 
                    start)
                            daemon  * * *
    • 複製配置文件
                    #cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
                         pidfile     pid路徑,默認路徑是/usr/local/php/var/run/php-fpm,此處若是修改到其餘位置,可能會由於權限問題沒法建立,致使php-fpm沒法啓動
                         error_log     錯誤日誌路徑
                         pm.max_children = 50     每一個線程最大請求
                         pm.start_servers = 5     啓動時建立的工做線程          
                         pm.min_spare_servers = 2     空閒時保留的最小工做線程
                         pm.max_spare_servers = 8     空閒時保留的最大工做線程
                         listen     監聽的ip和端口
  • 關於php加速器xcache(可不安裝,建議安裝)
    •  進入xcache安裝包,執行phpize程序,以來識別xcache
                     cd /xcache
                     /usr/local/php/bin/phpize
    • 編譯
                    ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
                         安裝完成後,會出現
                         安裝結束時,會出現相似以下行:
                         Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
    • 配置文件
                    #cp xcache.ini /etc/php.d
                         extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
    • 測試
                    #service php-fpm restart
                    #php -v
                         看是否存在xcache模塊
  • 關於php與遠程mysql相連(若http與mysql同一臺設備,則無需此步)[須要配合mysql遠程受權]
    • 進入pdo_mysql安裝包,執行phpize程序,以來識別pdo
                         cd /pdo_mysql
                         /usr/local/php/bin/phpize
    • 編譯
                    ./configure --with-pdo-mysql=/usr/local/mysql --with-php-config=/usr/local/php/bin/php-config
                         安裝完成後,會出現
                         安裝結束時,會出現相似以下行:
                    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
                    
                    注意:若報mysql.h找不到,則在本地環境下安裝mysql二進制包,並創建頭文件的連接
    • 配置文件
                    vim /etc/php.d/pdo_mysql.ini
                         [pdo_mysql]
                         extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/pdo_mysql.so
    • service php-fpm restart
  • 關於php與memcached相連(緣由在於memcached屬於半客戶端、半服務端,所用若是php不支持,是沒法緩存php程序的)[須要配合memcached服務器]
    • 編譯安裝模塊memcache(是memcache而不是memcached)
                    #cd memcache/
                    #phpize
                    #./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config 
                    #make
                    #make install
                         安裝完成後,會出現
                         安裝結束時,會出現相似以下行:
                         Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
    • 配置文件
                    vim /etc/php.d/memcache.ini
                         [memcache]
                         extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/memcache.so
    • service php-fpm restart
    • 測試
                    建立php測試頁
<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211)  or die("Could not connect");
 
$version = $mem->getVersion();
echo "Server's version: ".$version."<br/>\n";
 
$mem->set('hellokey', 'Hello World', 0, 600) or die("Failed to save data at the memcached server");
echo "Store data in the cache (data will expire in 600 seconds)<br/>\n";
 
$get_result = $mem->get('hellokey');
echo "$get_result is from memcached server.";         
?>
                    若輸出以下信息,則表示安裝成功:
                    Server's version: 1.4.15
Store data in the cache (data will expire in 600 seconds)
Hello World is from memcached server.
     


相關文章
相關標籤/搜索