上面3篇我們主要對系統進行了安裝和配置,並且配置了yum包管理器,安裝了幾個常用的工具,這篇我們就來介紹如何來搭建lnmp環境.這裡的LNMP環境是指Linux下搭建Nginx+MySQL+PHP.
首先來介紹一下Nginx.Nginx是一個高效能的 HTTP 和 反向 Proxy 伺服器,也是一個 IMAP/POP3/SMTP Proxy 伺服器。Nginx不僅可以作為web伺服器,也可以作為負載平衡器,之前也有文章介紹,大家可以看一下.
MySQL是一款開源免費的資料軟體,MySQL是一個小型關係型資料庫管理系統,其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫.
PHP,是英文超級文本預先處理語言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的指令碼語言,語言的風格有類似於C語言,被廣泛的運用。
nginx當前最新穩定版是nginx-1.0.13
首先我們下載nginx,在Linux下執行下面命令:
cd /usr/src # 一般軟體源碼放在這個目錄下wget http://nginx.org/download/nginx-1.0.13.tar.gz # 下載
nginx會有幾個依賴包,我們首先安裝依賴,不要安裝過程中會報錯:
yum -y install zlib-devel pcre-devel openssl-devel
一般原始碼安裝分4個步驟(有人也會省去第一個步驟),解壓(tar命令)先行編譯(執行源碼包下的configure),編譯(make),編譯安裝(make install)
首先我們解壓源碼包:
tar -zxvf nginx-1.0.13.tar.gz
這裡解釋下加壓參數,z代表gzip(也就是後面的.gz檔案)x代表加壓,v表示顯示詳細資料,-f使用檔案檔案或裝置(必選參數)
然後我們進行先行編譯,一般先行編譯會帶上一些參數,已達到我們想要安裝的效果,比如啟用某個功能,禁用某個功能:
進入源碼包目錄進行先行編譯:
cd nginx-1.0.13 ./configure --prefix=/usr/local/nginx\ # 指定安裝目錄為/usr/local/nginx--with-openssl=/usr/include/openssl\ # 啟用ssl--with-pcre\ # 啟用正規運算式--with-http_stub_status_module # 安裝可以查看nginx狀態的程式
其中./configure指執行目前的目錄下的configure檔案
先行編譯完成後我們就可以進行編譯和安裝:
make #編譯
執行後make後會有大量輸出,等待輸出完成後如果沒有報錯就可以進行安裝執行:
make install #安裝
安裝完成後我們可以到相應的目錄查看安裝的檔案:
ls /usr/local/nginx/conf html logs sbin
好了,下面我們啟動nginx:
/usr/local/nginx/sbin/nginx
通過查看連接埠看nginx是否啟動成功,nginx佔用TCP的80連接埠,執行下面命令:
netstat -antlp ¦ grep 80tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5946/nginx
我們查看80連接埠是開放的
然後開啟瀏覽器訪問http://192.168.3.120,我們會看到Welcome to nginx(之前的版本是 It’s Work):
nginx安裝完畢後我們來安裝MySQL ,我們使用MySQl-5.0.95版首先下載:
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.95.tar.gz/from/http://mysql.cdpa.nsysu.edu.tw/
安裝之前我們先做一些準備工作,
安裝依賴:
yum -y install ncurses-devel
建立MySQL使用者:
useradd -M -s /sbin/nologin mysql # -M不建立home目錄,-s指定shell為不登入
然後進行安裝:
tar -zxvf mysql-5.0.95.tar.gzcd mysql-5.0.95./configure --prefix=/usr/local/mysql \--without-debug \ # 取消偵錯模式提高效能--with-extra-charsets=utf8,gbk \ # 僅僅指定需要的預設字元集提高效能--enable-assembler \ # 使用彙編模式提高效能--with-mysqld-ldflags=-all-static \ # 以靜態方式編譯提高效能--with-client-ldflags=-all-static \--with-unix-socket-path=/tmp/mysql.sock \ # 使用unix socket提高效能--with-sslmakemake install
安裝完成後複製設定檔和啟動指令碼:
cp support-files/my-medium.cnf /etc/my.cnf # 複製設定檔cp support-files/mysql.server /etc/init.d/mysqld # 複製啟動指令碼chmod +x /etc/init.d/mysqld # 給啟動指令碼執行許可權
為了以後方便我們為所有的二進位可執行檔和動態連結程式庫檔案做一個軟串連:
ln -s /usr/local/mysql/bin/* /usr/local/bin/ # 為可執行檔二進位檔案做軟串連ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/ # 為動態連結程式庫做一個軟串連
然後我們初始化資料庫:
mysql_install_db --user=mysql # 用MySQL使用者安裝資料庫
為了MySQL能正常使用我們需要更改一下MySQL安裝目錄和MySQL的資料庫目錄的屬主和屬組:
chown -R root.mysql /usr/local/mysql/ # 更改安裝目錄屬主為root,屬組為mysqlchown -R mysql.mysql /usr/local/mysql/var/ # 更改資料庫目錄屬主和屬組都為mysql
這裡的-R參數用來應用到所有子目錄和檔案
配置完畢後我們啟動mysql:
service mysqld start
現在我們查看MySQL是否啟動成功,MySQL佔用TCP的3306連接埠,我們查看連接埠是否被佔用:
netstat -antlp ¦ grep 3306tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 32143/mysqld
然後我們通過mysql命令來串連mysql:
mysql
會顯示如下內容表示已經成功啟動MySQL並已經串連上
Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.0.95-log Source distributionCopyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
MySQL安裝完畢下面我們就來安裝PHP,安裝PHP前首先要安裝幾個源碼包依賴:
libmcrypt mhash mcrypt
首先來安裝幾個源碼包依賴:
wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/downloadtar -jxvf libmcrypt-2.5.8.tar.bz2 # 這個包是bz2的 使用-j參數解壓cd libmcrypt-2.5.8./configuremakemake install####################################################wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2/downloadtar -jxvf mhash-0.9.9.9.tar.bz2cd mhash-0.9.9.9./configuremakemake install# 這兩個包安裝完成後要把動態連結程式庫做一個軟串連到/usr/lib,以為接下來的mcrypt依賴於這兩個包ln -s /usr/local/lib/libmcrypt* /usr/libln -s /usr/local/lib/libmhash.* /usr/lib/ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config###########################################################wget http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/downloadtar -zxvf mcrypt-2.6.8.tar.gzcd mcrypt-2.6.8./configuremakemake install
然後下載php:
wget http://cn2.php.net/get/php-5.4.0.tar.bz2/from/this/mirror
安裝依賴:
yum –y install libxml2-devel curl-devel libpng-devel openldap-devel
我們使用nginx調用php的時候使用fpm的方式,在php 5.4中加入了對php-fpm的支援,所以就不需要打補丁了.安裝PHP:
tar -jxvf php-5.4.0.tar.bz2cd php-5.4.0./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --with-curlwrappers --enable-fpm --enable-fastcgi --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soapmakemake install
到這裡整個LNMP已經安裝完成.下面我們就配置php和nginx能運行php網站:
首先為php建立設定檔:
cp php.ini-production /usr/local/php/php.ini # 如果是開發就複製php.ini-developmentcp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.confln -s /usr/local/php/bin/php /usr/bin/
配置php-fpm,編輯php-fpm.conf
vi /usr/local/php/etc/php-fpm.conf
找到listen那一行,修改成如下內容:
listen = /var/run/php-fpm/php-fpm.sock # 使用unix socket
啟動php-fpm
mkdir /var/run/php-fpm/usr/local/php/sbin/php-fpm
然後配置nginx,編輯nginx設定檔
vi /usr/local/nginx/conf/nginx.conf
修改nginx設定檔支援php:
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.php index.html index.htm; # 添加index.php的首頁檔案 } # 添加下面內容 location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; include fastcgi.conf; }
修改完畢後儲存退出重啟nginx:
pkill -9 nignx/usr/local/nginx/sbin/nginx
然後在/usr/local/nginx/html下建立index.php,
vi /usr/local/nginx/html/index.php
添加下面內容:
<?phpphpinfo();?>
儲存退出後訪問http://192.168.3.120/index.php,看到下面頁面表示已經安裝配置成功:
到這裡我們的LNMP環境就完全搭建成功,運行你的網站或者學習你的PHP吧.
原創文章,轉載請註明: 轉載自cold night's Linux Blog