LNMP編譯安裝教程


LNMP編譯安裝教程

 

此次安裝在Centos上,我采用的CentOS的版本是:CentOS release 6.5 (Final)

可以通過以下命令查看:lsb_release -a

一.准備工作:

清理已安裝的軟件包

1、檢查是否安裝了mysql

rpm -qa|grep mysql

強制卸載

rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 --nodeps

 

2、清理httpd:yum -y remove httpd

 

3、清理mysql:yum -y remove mysql

 

我這里是沒有安裝過mysql

4、清理PHP:yum -y remove php

 

我這里沒有安裝php

 

二、安裝必備工具

我把所有的安裝包都放在了/usr/local/src下面,如果沒有可自行創建,進入目錄:

cd /usr/local/src/

 

yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof

安裝完成之后會出現下圖(這個時間大約在1分鍾):

 

 

 

三、安裝PHP依賴關系:

1.安裝libiconv

cd /usr/local/src

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar zxvf libiconv-1.14.tar.gz

cd libiconv-1.14

./configure --prefix=/usr/local/libiconv

make && make install

cd ..

2.安裝libmcrypt

wget http://iweb.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8

./configure

make && make install

cd ..

3.安裝 Mhash 下載並安裝mbash 網址:http://mhash.sourceforge.net/,下載下來之后用winscp這種工具傳到linux的/usr/local/src目錄下

tar zxvf mhash-0.9.9.9.tar.gz

./configure

make && make install

cd ..

4.安裝Mcrypt

wget http://iweb.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

tar zxvf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8

#注意一下這步運行下,不然下面可能報錯

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

./configure

make && make install

cd ..

編譯mcrypt可能會報錯:configure: error: *** libmcrypt was not found

vi  /etc/ld.so.conf

最后一行添加

/usr/local/lib/

保存並退出::wq!

執行載入命令:

ldconfig

 

四、安裝mysql5.6.17

1.按照標准需要給mysql創建所屬用戶和用戶組

創建用戶組

groupadd mysql

創建一個用戶,不允許登陸和不創主目錄

useradd -s /sbin/nologin -g mysql -M mysql

檢查創建用戶

tail -1 /etc/passwd

注:MySQL從5.5版本開始,通過./configure進行編譯配置方式已經被取消,取而代之的是cmake工具。 因此,我們首先要在系統中源碼編譯安裝cmake工具。

wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz

tar zxvf cmake-2.8.12.2.tar.gz

cd cmake-2.8.12.2

./configure

make && make install

2.使用cmake來編譯安裝mysql5.6.17,初次編譯mysql的時候時間比較長,請耐心等待

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DMYSQL_USER=mysql \

-DWITH_DEBUG=0 \

-DWITH_SSL=system

make && make install

到這里mysql5.6.17就安裝好了,接下來就是配置一些mysql相關的東西:

3.修改/usr/local/mysql權限

chmod +w /usr/local/mysql

chown -R mysql:mysql /usr/local/mysql

4.關於my.cnf配置文件:

在啟動MySQL服務時,會按照一定次序搜索my.cnf,先在/etc目錄下找,找不到則會搜索”$basedir/my.cnf” 就是安裝目錄下 /usr/local/mysql/my.cnf,這是新版MySQL的配置文件的默認位置! 注意:在CentOS 6.x版操作系統的最小安裝完成后,在/etc目錄下會存在一個my.cnf,需要將此文件更名為其他的名字。 如:/etc/my.cnf.bak,否則,該文件會干擾源碼安裝的MySQL的正確配置,造成無法啟動。 由於我們已經卸載了最小安裝完成后的mysq庫所以,就沒必要操作了。

5.cp my-default.cnf /etc/my.cnf

執行初始化配置腳本,創建系統自帶的數據庫和表,注意配置文件的路徑:

命令如下:

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

6.拷貝mysql安裝目錄下support-files服務腳本到init.d目錄

拷貝腳本:cp support-files/mysql.server /etc/init.d/mysqld

賦予權限:hmod +x /etc/init.d/mysqld

設置開機啟動 這步可以不操作:chkconfig mysqld on

啟動MySQL:ervice mysqld start

或者:/etc/init.d/mysql start

 

 

7.MySQL5.6.x啟動成功后,root默認沒有密碼,我們需要設置root密碼。 設置之前,我們需要先設置PATH,要不,不能直接調用mysql操作如下:

修改/etc/profile文件

vi /etc/profile

在文件末尾添加

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

export PATH

讓配置立即生效

source /etc/profile

8.登陸測試,默認是沒有密碼,直接回車就可進入

 

 

9.設置mysql密碼這一步可以先不設置),命令如下:

/usr/local/mysql/bin/mysqladmin -uroot -p password '你的密碼'

10.驗證mysql安裝路徑

ls -ld /usr/local/mysql/

 

到此為止mysql已安裝完成了,接下來安裝nginx

五、安裝nginx1.7

nginx所需的依賴關系,一般我們都需要先裝pcre, zlib,前者為了重寫rewrite,后者為了gzip壓縮。如果系統已經yum 安裝了這些庫也沒關系,無需卸載。直接編譯安裝最新的就可以了。為了一次性完成編譯,先准備編譯下面的依賴關系!

1.安裝PCRE庫

http://ncu.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz

tar -zxvf pcre-8.39.tar.gz

cd pcre-8.39

./configure

make && make install

2.安裝zlib庫

wget http://zlib.net/zlib-1.2.8.tar.gz

tar -zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure

make && make install

3.安裝openssl

wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz

tar -zxvf openssl-1.0.1g.tar.gz

cd openssl-1.0.1g

./config

make && make install

4.准備工作完成,現在開始安裝nginx!,這里添加了前面准備的庫關系,注意路徑!

wget http://nginx.org/download/nginx-1.9.9.tar.gz

tar -zxvf nginx-1.9.9.tar.gz

cd nginx-1.9.9

./configure \

--user=www \

--group=www \

--prefix=/usr/local/nginx \

--with-http_stub_status_module \

--with-http_ssl_module \

--with-http_gzip_static_module \

--with-pcre=/usr/local/src/pcre-8.39 \

--with-zlib=/usr/local/src/zlib-1.2.8 \

--with-openssl=/usr/local/src/openssl-1.0.1g

make && make install

useradd -M -s /sbin/nologin nginx

#修改nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

#user nobody 改成 user nginx;

#測試一下nginx配置文件

/usr/local/nginx/sbin/nginx -t

#啟動nginx

/usr/local/nginx/sbin/nginx

#一般來說在nginx的配置文件修改后進行如下操作,

/usr/local/nginx/sbin/nginx -t檢測一下配置文件是否正確,如果正確的話

再使用/usr/local/nginx/sbin/nginx -s reload 使nginx平滑啟動

 

六、安裝php 5.6.6

1.下載安裝包及編譯安裝

wget http://mirrors.sohu.com/php/php-5.6.6.tar.gz

tar -zxvf php-5.6.6.tar.gz

cd php-5.6.6

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath  --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts

make test

make && make install

 

2.修改fpm配置php-fpm.conf.default文件名稱

mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

3.復制php.ini配置文件

cp php.ini-production /usr/local/php/etc/php.ini

4.復制php-fpm啟動腳本到init.d

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

5.賦予執行權限

chmod +x /etc/init.d/php-fpm

6.添加為啟動項

chkconfig --add php-fpm

7.設置開機啟動

chkconfig php-fpm on

8.按照標准,給php-fpm創建一個指定的用戶和組

創建群組:groupadd www

創建一個用戶,不允許登陸和不創主目錄 :useradd -s /sbin/nologin -g www -M www

9.立即啟動php-fpm

service php-fpm start

#或者

/etc/init.d/php-fpm start

10.修改nginx配置文件使之支持php

vim /usr/local/nginx/conf/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;

#}

修改為

location ~ \.php$ {

    fastcgi_pass   127.0.0.1:9000;

    fastcgi_index  index.php;

    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

    include        fastcgi_params;

}

修改完配置之后

測試一下是否有錯:/usr/local/nginx/sbin/nginx -t

平滑重啟:/usr/local/nginx/sbin/nginx -s reload

 

七、測試phpnginxmysql

1.進入nginx的服務器目錄,這一步是在nginx.conf里的root中配置的,可以自行修改。

cd /usr/local/nginx/html

2.新建一個php文件:vim l.php

其內容為<?php phpinfo();?>

保存並退出::wq! 注:字母w前要有一個冒號

然后運行:

http://127.0.0.1/l.php(這里把IP換成你自己的服務器的IP)

 

 出現上面的圖就說明PHP和NGINX安裝成功了。

3.測試mysql

打開剛才新建的那個文件:

vim l.php,輸入第三行-第10行代碼,代碼是測試php是否可以聯接mysql。

 

保存並退出::wq! 注:字母w前要有一個冒號

然后運行:

http://127.0.0.1/l.php(這里把IP換成你自己的服務器的IP)

 

 

這里說明php可以聯接mysql了。

到這里以編譯的形式安裝LNMP就完成了。如果由於項目的要求還需要php或是nginx一些其它的擴展,再重新編譯一下php或是nginx就可以了

 

 

擴展閱讀:

如果yum安裝 的話,就非常簡單了,可以看一下這個:https://my.oschina.net/u/872157/blog/31234

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM