Lnmp搭建与测试
一、lnmp簡介
LNMP是一個基于CentOS/Debian編寫的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一鍵安裝包。可以在VPS、獨立主機上輕松的安裝LNMP生產(chǎn)環(huán)境。
LNMP代表的就是:Linux系統(tǒng)下Nginx+MySQL+PHP這種網(wǎng)站服務(wù)器架構(gòu)。
Linux是一類Unix計算機操作系統(tǒng)的統(tǒng)稱,是目前最流行的免費操作系統(tǒng)。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一個高性能的HTTP和反向代理服務(wù)器,也是一個IMAP/POP3/SMTP代理服務(wù)器。
Mysql是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。
PHP是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言。
這四種軟件均為免費開源軟件,組合到一起,成為一個免費、高效、擴展性強的網(wǎng)站服務(wù)系統(tǒng)。
二、安裝配置
1、安裝環(huán)境
Centos6.4-64位操作系統(tǒng)最小化安裝,
需要的軟件包有mysql,nginx,php,還有一些額外添加支持功能的軟件包。
2、安裝mysql
因為在centos6.4上在安裝系統(tǒng)時,就自動安裝系統(tǒng)自帶的mysql服務(wù),所以我們要安裝新版本的,所以還是將系統(tǒng)上現(xiàn)有的卸載就可以了。
[root@ahao yum.repos.d]# yum remove mysql-server
[root@ahao ~]# tar -zxvfmysql-5.6.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[root@ahao ~]# groupadd mysql //組合用戶應(yīng)該已經(jīng)存在
[root@ahao ~]# useradd -r -g mysql mysql
[root@ahao ~]# cd /usr/local/
[root@ahao local]# ln -s mysql-5.6.15-linux-glibc2.5-x86_64/ ?mysql
[root@ahao local]# cd mysql
[root@ahao mysql]# chown -R mysql .
[root@ahao mysql]# chgrp -R mysql .
[root@ahao mysql]# scripts/mysql_install_db --user=mysql ? //這里會出現(xiàn)錯誤,缺少libaio.so文件,需要安裝:
[root@ahao mysql]# yum install libaio-devel
安裝之后再次執(zhí)行scripts/mysql_install_db --user=mysql
[root@ahao mysql]# ll data/ ? ?//查看是否生成了數(shù)據(jù)庫文件
? ? ? ? ? ? ? ? ? [root@ahaomysql]# chown -R root .
[root@ahao mysql]# chown -R mysql data ?//將權(quán)限更改過來
[root@ahaomysql]# cp support-files/mysql.server /etc/init.d/mysqld ?//生成控制腳本
[root@ahaomysql]# chmod a+x /etc/init.d/mysqld
[root@ahao mysql]# cp my.cnf /etc ?//將配置文件放到etc目錄下
[root@ahao mysql]# chkconfig --add mysqld
[root@ahao mysql]# chkconfig mysqld on
//在原先mysql服務(wù)中客戶端已經(jīng)生成,這里還需要客戶端,刪除原有的會牽扯太多軟件的依賴,所以我們還是只卸載mysql工具,和mysqladmin 就可以了
[root@ahao mysql]# rm /usr/bin/mysqladmin
[root@ahao mysql]# rm /usr/bin/mysql
[root@ahao mysql]# vim /etc/profile //將bin文件放到系統(tǒng)變量中去
PATH=$PATH:/usr/local/mysql/bin
[root@ahao mysql]# . /etc/profile ?//重新讀取環(huán)境變量
[root@ahao mysql]# mysqladmin -u root -p password -p '123' ?//指定mysql管機員
[root@ahao mysql]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib //將mysql的lib文件放到系統(tǒng)環(huán)境中去,便于系統(tǒng)的調(diào)用
[root@ahao mysql]# vim /etc/man.config //將手冊放到系統(tǒng)環(huán)境中
MANPATH /usr/local/mysql/man
? ?3、安裝nginx
? ?在安裝nginx之前,我們要先安裝pcre(正則表達(dá)式的庫)和,libevent事件庫。
? ?[root@ahao mysql]# yum install pcre-devel
? ?[root@ahao ~]# tar -zxvf libevent-2.0.16-stable.tar.gz ?-C /usr/local/src
? ?[root@ahao ~]# cd /usr/local/src/libevent-2.0.16-stable/
? ?[root@ahao libevent-2.0.16-stable]# ./configure ?--prefix=/usr/local/libevent
? ?[root@ahao libevent-2.0.16-stable]# make && make install
? ?[root@ahaolibevent-2.0.16-stable]# cd /usr/local/libevent/
[root@ahao libevent]# vim /etc/ld.so.conf.d/libevevt.conf//將libevent的lib文件添加系統(tǒng)環(huán)境中去
/usr/local/libevent/lib
? ?[root@ahaolibevent]# ldconfig
? ?[root@ahao libevent]# ldconfig -pv | grep libevent ?//查看是否可以查看到lib文件
? ?安裝nginx
? ?[root@ahao~]# groupadd -r nginx
? ?[root@ahao ~]# useradd -r -g nginx -s /sbin/nologin -M nginx
? ?[root@ahao ~]# tar -zxvf nginx-1.4.4.tar.gz -C /usr/local/src
? ?[root@ahao ~]# cd /usr/local/src/nginx-1.4.4/
? ? ? ?[root@ahaonginx-1.4.4]# ./configure \
? ? ?--conf-path=/etc/nginx/nginx.conf \
? ? --error-log-path=/var/log/nginx/error.log \
? ? --http-log-path=/var/log/nginx/access.log \
? ? --pid-path=/var/run/nginx/nginx.pid \
? ? --lock-path=/var/lock/nginx.lock \
? ? --user=nginx \
? ? --group=nginx \
? ? --with-http_ssl_module \
? ? --with-http_flv_module \
? ? --with-http_stub_status_module \
? ? --with-http_gzip_static_module \
? ? --http-client-body-temp-path=/var/tmp/nginx/client/\
? ? --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
? ? --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/\
? ? --with-pcre
? ?這里會出現(xiàn)缺少openssl的庫,也還是需要我們安裝的
? ?[root@ahao nginx-1.4.4]# yum install openssl-devel
? ?//安裝之后,再次運行上步操作
? ?[root@ahao nginx-1.4.4]# mkdir -pv/var/tmp/nginx/client/ ?//這些要生成的臨時目錄,為了便于后續(xù)操作,還是手動建立為好
? ?[root@ahaonginx-1.4.4]# mkdir -pv /var/tmp/nginx/fcgi/
? ?[root@ahao nginx-1.4.4]# mkdir -pv /var/tmp/nginx/proxy/ ?
? ?[root@ahao nginx-1.4.4]# make && make install
? ?[root@ahao nginx-1.4.4]# cd /usr/local/nginx/sbin
? ?[root@ahaosbin]# ./nginx –t ? //測試你的配置是否有錯
? ?nginx:the configuration file /etc/nginx/nginx.conf syntax is ok
? ?nginx: configuration file /etc/nginx/nginx.conf test is successfu
? ?[root@ahaosbin]# cd /etc/init.d/
? ?[root@ahaoinit.d]# touch nginx ? ?//創(chuàng)建控制腳本
? ?[root@ahao init.d]# chmod a+x nginx
? ?腳本如下:
? ?#!/bin/bash
? ?# ./etc/init.d/functions
? ?prog=/usr/local/nginx/sbin/nginx
? ?lockfile=/var/lock/nginx.lock
? ?
? ?start (){
? ? ? ? ?if [ -e $lockfile ];then
? ? ? ? echo "the nginx server isstarted"
? ? ? ? else
? ? ? ? echo -n "the nginx server isstarting......"
? ? ? ? sleep 1
? ? ? ? $prog && echo -e"[\033[32mOK\033[0m] " && touch $lockfile ||echo"failer"
? ? ? ?fi
? ?
? ?}
? ?stop () {
? ? ? ? ? if [ ! -e $lockfile ];then
? ? ? ? echo "the nginx server isstoped"
? ? ? ? else
? ? ? ? echo-n "the nginx server is stoping......"
? ? ? ? sleep 1
? ? ? ? $prog -s stop ?&& echo "OK" && rm-rf $lockfile || echo "failer"
? ? ?fi
? ?}
? ?restart(){
? ? if [ -e $lockfile ]; then
? ? ? ? ? ? ?echo -n "the nginx isstoping..."
? ? ? ? ? ? ?$prog -s stop && echo ?"OK" && rm -rf $lockfile ||echo "failer"
? ? ? ? ? ? ?echo -n "the nginx isstarting..."
? ? ? ? ? ? ?$prog && echo "OK"&& touch $lockfile ||echo "failer"
? ? ? ? ? ?fi
? ?}
? ?case"$1" in
? ?
? ?start)
? ? ? ?start
? ? ? ?;;
? ?stop)
? ? ? ?stop
? ? ? ?;;
? ?restart)
? ? stop
? ? start
? ? ? ;;
? ? *)
? ?echo"USAGE:start|stop|restart"
? ?esac
? ?測試啟動nginx
? ?[root@ahao sbin]# service nginx start
? ?the nginx server is starting......[OK]
? ?[root@ahaosbin]# netstat -tupln | grep 80
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?11426/nginx ?
證明是可以正常啟動的。
[root@ahao sbin]# vim /etc/init.d/nginx ?//將nginx加入chkconfig的管理
加入配置:# chkconfig:2345 88 44
? ? ? ? ? ? ? ? ? ? # description: the web server
[root@ahaosbin]# chkconfig --add nginx ?
[root@ahaosbin]# chkconfig --list |grep nginx ?
nginx ? ? ? ? ? ? ?0:off 1:off 2:on 3:on 4:on 5:on 6:off ? //已經(jīng)成功加入
4、安裝php5.5.8
[root@ahao ~]# tar -jxvf php-5.5.8.tar.bz2 -C/usr/local/src
[root@ahao ~]# cd /usr/local/src/php-5.5.8/
[root@ahao php-5.5.8]# mkdir /etc/php /etc/php5.d
這兩個目錄是php與nginx配合使用一定要有的目錄,我們先建立起來,以免后續(xù)出錯。
[root@ahao php-5.5.8]# ./configure ?--prefix=/usr/local/php ?--enable-fpm --enable-sockets--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config--enable-mbstring --enable-xml --with-png-dir --with-jpeg-dir --with-zlib--with-freetype-dir --with-config-file-path=/etc/php--with-config-file-scan-dir=/etc/php5.d
但是這樣的安裝還是會有錯誤:
configure: error: xml2-config not found. Please check yourlibxml2 installation.
//缺少libxml2還是需要我們安裝,其實這樣的軟件包有時候已經(jīng)安裝,缺少都是devel包,所以我們只需要安裝devel包就可以了
[root@ahao php-5.5.8]# yum install libxml2-devel
安裝之后繼續(xù)執(zhí)行上步操作。
執(zhí)行成功之后:
[root@ahao php-5.5.8]# make && make install ?//時間很長請耐心等待,只要不出現(xiàn)錯誤即可
[root@ahao php-5.5.8]# cp php.ini-development ?/etc/php/php.ini
[root@ahao fpm]# chmod 744 /etc/init.d/php-fpm //更改權(quán)限
[root@ahao php-5.5.8]# cp sapi/fpm/php-fpm.conf/usr/local/php/etc/ //產(chǎn)生php-fpm配置文件
[root@ahao php-5.5.8]# service php-fpm start ?//測試啟動是可以的
Starting php-fpm done
[root@ahao php-5.5.8]# netstat -tupln | grep fpm
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:9000 ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?59253/php-fpm
[root@ahao php-5.5.8]# chkconfig --add php-fpm ?//加入chkconfig的管理
成功之后,我們可以做個測試頁面:
[root@ahao php-5.5.8]# cd /usr/local/nginx/html/ ?
[root@ahao html]# vim index.php
在里面添加:
<?php
Phpinfo();
?>
[root@ahao html]# vim /etc/nginx/nginx.conf ?//配置測試頁面的要求
測試一下:
? ? ? ? 5、測試
? ? ? ?安裝phpmyadmin
[root@ahao ~]# unzip phpMyAdmin-4.1.5-all-languages.zip
[root@ahao ~]# mv phpMyAdmin-4.1.5-all-languages phpmyadmin
[root@ahao ~]# mv phpmyadmin/ /usr/local/nginx/html/
測試:
證明是可以正常訪問的
或者我們還可以安裝一個php加速器(Xcache)來測試:
[root@ahao ~]# tar -zxvf xcache-3.1.0.tar.gz ?-C /usr/local/src
[root@ahao xcache-3.1.0]# /usr/local/php/bin/phpize //phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊
[root@ahaoxcache-3.1.0]#./configure--enable-xcache--with-php-config=/usr/local/php/bin/php-config
[root@ahao xcache-3.1.0]# make && make install
[root@ahao xcache-3.1.0]# cp xcache.ini /etc/php5.d/ ?
[root@ahao ~]# vim /etc/php5.d/xcache.ini
[root@ahao xcache-3.1.0]# cp -r htdocs/ ? /usr/local/nginx/html/xcacheadmin 將xcache的管理頁面放到nginx的主站點目錄下
? ? ? ? ? ? ? ? ? //在文件中更改配置
? ? ?
[root@ahao ~]# service php-fpm restart
我們可以測試訪問web服務(wù),在頁面內(nèi)搜索xcache就可以知道是否xcache啟動了。
查看進(jìn)入管理頁面:
實現(xiàn)到這里我們的lnmp環(huán)境就已經(jīng)搭建起來了,已經(jīng)可以支持php動態(tài)頁面。
轉(zhuǎn)載于:https://blog.51cto.com/eyessay/1354711
總結(jié)
- 上一篇: zabbix db partition
- 下一篇: 浏览器User-Agent的详细信息