歡迎您光臨本站 註冊首頁

LNMP linux nginx mysql php

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

二、編譯安裝mysql

1、下載mysql源碼包

# mysql-5.5.20-linux2.6-i686.tar.gz 編譯mysql之前我們需要去mysql官網查找最新版本的mysql源碼包,可以根據自己的實際需要選擇對應的源碼包!

2、創建mysql掛載目錄

#由於以後我們這裡會產生很大的數據量,在這裡我們最好應該把mysql單獨放在一個目錄中去,下面我們可以在磁碟中創建一個分區,用於單獨存放mysql數據,可以在系統開機時就掛載這個mysql目錄,為服務提供保證

fdisk /dev/sda -->n e 4-->p n 10G-->t 8e w-->partprobe -->pvcreate /dev/sda5 -->vgcreste myvg /dev/sda5 --> lvcrete -L 2G -n mydata myvg-->lvs -->mke2fs -b 1024 /dev/myvg/mydata --> vim fstab ...... mkdir /mydata-->mount -a -->mkdir /mydata/data (創建data用於存儲mysql數據)

3、添加mysql系統用戶和組

# groupadd -r mysql #添加mysql

# useradd -g mysql -r -s /sbin/nologin -M mysql #添加mysql用戶

# id mysql 查看mysqlid信息

4、解壓mysql源碼包

# tar xvf mysql-5.5.20-linux2.6-i686.tar.gz -C /usr/local

解壓在/usr/local

# cd /usr/local/

#ln -sv mysql-5.5.20-linux2.6-i686 mysql創建軟連接

# chown -R mysql:mysql /mydata/data #改變存儲mysql數據的目錄屬主屬組為mysql

# cd /mysql --> chown -R mysql:mysql . #mysql屬組屬主改為mysql

#rpm -q mysql-server #初始化mysql之前確認系統上沒有安裝mysql-server rpm包,否則會衝突

# scripts/mysql_install_db --user=mysql --datadir=/mydata/data #用腳本初始化

mysql

#chown -R root . # mysql 中的屬主重新改為root,為了使mysql執行時添加安全保證.

5、為mysql提供主配置文件

# cd /usr/local/mysql

# cp support-files/my-large.cnf /etc/my.cnf

# mysql提供主配置文件:

並修改此文件中thread_concurrency的值為你的CPU個數乘以

2,比如這裡使用如下行:

thread_concurrency = 2

另外還需要添加如下行指定mysql數據文件的存放位置:

datadir = /mydata/data

6、為mysql提供sysv服務腳本

# cd /usr/local/mysql

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

# mysql提供sysv服務腳本:

添加至服務列表:

# chkconfig --add mysqld

# chkconfig --level 2345 mysqld on

而後就可以啟動服務測試使用了.

# ls /mydata/data 裡面有mysql的日誌文件

7、優化mysql服務

#為了使用mysql的安裝符合系統使用規範,並將其開發組件導出給系統使用,這裡還需要進行如下步驟:

# ln -sv /usr/local/mysql/include /usr/include/mysql

#mysql創建頭文件鏈接

# vim /etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib

# ldconfig -v 重新載入一下 ,-v顯示過程

8、為mysql提供幫助文件

編輯/etc/man.config,添加如下行即可:

MANPATH /usr/local/mysql/man

9、修改mysql環境變數

修改PATH環境變數,讓系統可以直接使用mysql的相關命令.具體實現過程這裡不再給出.

# vim /etc/profile 添加下面一句:

export PATH=$PATH:/usr/local/apache/bin:/usr/local/mysql/bin

# source /etc/profile 重讀配置文件

#service mysqld start

===================================================

三、編譯安裝php-5.4.10

1解決依賴關係:

請配置好yum源(可以是本地系統光碟)后執行如下命令:

# yum -y groupinstall "X Software Development"

# yum -y groupinstall "Development Tools" #安裝好開發組包工具

# yum -y groupinstall "Development Libraries"# 安裝編譯時依賴的庫文件

如果想讓編譯的php支持mcryptmcryptmhash擴展和libevent,此處還需要下載如下幾個rpm包並安裝:

mcrypt-2.6.8-1.el5.i386.rpm

libmcrypt-2.5.7-5.el5.i386.rpm

libmcrypt-devel-2.5.7-5.el5.i386.rpm

mhash-0.9.2-6.el5.i386.rpm

mhash-devel-0.9.2-6.el5.i386.rpm

libevent-2.0.17-2.i386.rpm

libevent-devel-2.0.17-2.i386.rpm

最好使用升級的方式安裝上面的rpm包,命令格式如下:

# rpm -Uvh *.rpm --nodeps #--nodeps 忽略依賴關係並升級安裝

2、下載編譯php源碼包

首先下載php-5.4.10源碼包至本地目錄,可根據需要下載對應的源碼包.

# tar xf php-5.4.10.tar.bz2

# cd php-5.4.10

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt --with-config-file-path=/etc/php --with-config-file-scan-dir=/etc/php --with-bz2 --with-curl

說明:如果前面第1步解決依賴關係時安裝mcrypt相關的兩個

rpm包,此./configure命令還可以帶上with-mcrypt選項以讓php支持mycrpt擴展.

# make #編譯之後可以執行make, 這裡肯能會花費一會時間,根據你的cpu性能決定你編譯的時間長短,請稍等!

# make test (可省)

# make intall #之後直接安裝php

3、為php

提供配置文件:

# cp php.ini-production /etc/php/php.ini #複製生成的配置文件並且自己重命名為php.ini

4、為php-fpm提供sysv 腳本

php-fpm提供Sysv init腳本,並將其添加至服務列表:

# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

# chmod x /etc/rc.d/init.d/php-fpm #添加執行許可權

# chkconfig --add php-fpm #php-fpm添加至服務中

# chkconfig --level 2345 php-fpm on

5、啟動fastcgi

php-fpm提供配置文件:

# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

6、編輯php-fpm的配置文件:

# vim /usr/local/php/etc/php-fpm.conf

配置pm.的相關選項為你所需要的值,並啟用pid文件(如下一行):

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 2 #定義最少空閑的server個數

pm.max_spare_servers = 8 #定義最多空閑的server 個數

pid = /var/run/php-fpm.pid #此行尤為重要服務需要的pid 文件

7、啟動php-fpm

# service php-fpm start

使用如下命令來驗正(如果此命令輸出有中幾個php-fpm

進程就說明啟動成功了):

# ps aux | grep php-fpm

四、整合nginxphp5

1編輯/etc/nginx/nginx.conf,啟用如下選項:

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

include fastcgi_params;

}

並在所支持的主頁面格式中添加php格式的主頁,類似如下:

location / {

root html;

index index.php index.html index.htm;

}

而後重新載入nginx的配置文件:

# service nginx reload

2、編輯

/etc/nginx/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;

3、在/usr/html新建index.php的測試頁面,測試

php是否能正常工作:

# cat > /usr/html/index.php << EOF

<?php

phpinfo();

?>

接著就可以通過瀏覽器訪問此測試頁面了.

五、安裝xcache,為php加速

1下載源碼包並編譯安裝

# tar xf xcache-1.3.2.tar.gz

# cd xcache-1.3.2

# /usr/local/php/bin/phpize

# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

# make

# make install

安裝結束時,會出現類似如下行:

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

2、編輯php.ini,整合phpxcache

首先將xcache提供的樣例配置導入php.ini

# cat xcache.ini >> /usr/local/php/lib/php.ini

說明:xcache.ini文件在xcache的源碼目錄中.

接下來編輯/usr/local/php/lib/php.ini

,找到zend_extension開頭的行,修改為如下行:

zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/xcache.so

注意:如果php.ini文件中有多條zend_extension指令行,要確保此新增的行排在第一位.

3、重新啟動php-fpm

# service php-fpm restart

======================================================================

至此一個完整的LNMP就完成了,linux nginx mysql php 整合在一起,希望對大家有所幫助!

本文出自 「Linux交流」 博客,請務必保留此出處http://wz102.blog.51cto.com/3588520/834622


[火星人 ] LNMP linux nginx mysql php已經有311次圍觀

http://coctec.com/docs/linux/show-post-46143.html