源碼編譯安裝lnmp架構

lnmp的架構

lnmp架構爲:linux +nginx +mysql+php/perl/python,我們將只用linux(rhel6.5)+nginx+mysql+php構建企業web架構

環境:RHEL6.5

        iptables -F

        selinux is  disabled

注意:在搭建lnmp環境前,必須檢測系統內部不能存在相關的軟件:(純淨搭建)

#rpm -qa | grep php

#rpm -qa | grep httpd

#rpm -qa | grep mysql

1、nginx的源碼編譯安裝:

nginx使用c編寫,因此在編譯的時候需要安裝gccmake

#yum install make gcc -y

#tar zxf nginx-1.4.2.tar.gz

#cd nginx-1.4.2/src/core/

#vim nginx.h     

#define NGINX_VER          "westos" 修改版本號,名稱(每種版本都有bug)

#cd auto/cc/

#vim gcc

#CFLAGS="$CFLAGS -g"             註釋debug功能,可以減少編譯佔用資源

#./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module

這時應該會缺少*-devel包,按照提示挨個安裝即可。

#make && make install

#vim /usr/local/lnmp/nginx/conf/nginx.conf       nginx主配置文件

events {
        use epoll;                        #高效模式
    worker_connections  1024;
}

創建軟鏈接#ln -s /usr/local/lnmp/nginx/sbin/nginx  /usr/local/sbin  #便於啓動和管理nginx

#nginx -t           檢查nginx配置

#nginx -s reload 重新加載配置文件

#netstat -antlp | grep 80   檢測nginx開放的80端口

這時通過firefox訪問192.168.2.40(本機ip)就會看見welcome to nginx!

#curl -I localhost   會看到自己改的版本號

wKioL1PzUmbQcVJzAAFCST5cnSQ298.jpg

2.mysql的編譯安裝

#tar zxf mysql-5.5.12.tar.gz

#yum install cmake  gcc-c++  -y

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql            #安裝目錄

-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \                                #數據庫存放目錄

-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \  #Unix socket 文件路徑

-DWITH_MYISAM_STORAGE_ENGINE=1 \                     #安裝myisam 存儲引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1 \                     #安裝 innodb 存儲引擎

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                        #安裝 archive存儲引擎

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \                  #安裝 blackhole 存儲引擎

-DWITH_PARTITION_STORAGE_ENGINE=1 \                       #安裝數據庫分區

-DENABLED_LOCAL_INFILE=1 \                                           #允許從本地導入數據

-DWITH_READLINE=1 \                                                             #快捷鍵功能

-DWITH_SSL=yes \                                                                      #支持SSL

-DDEFAULT_CHARSET=utf8 \                                                #使用utf8 字符

-DDEFAULT_COLLATION=utf8_general_ci \                    #校驗字符

-DEXTRA_CHARSETS=all \                                                 #安裝所有擴展字符

-DMYSQL_TCP_PORT=3306 \                                                    #MySQL 監聽端口(默認)

1)開始編譯

wKioL1PzVBjCmn4sAAIDYe8beQ8082.jpg

在編譯結束後會提示缺少相應的依賴包,按順序安裝

重新編譯時,需要清除舊的對象文件和緩存信息 #rm -fr CMakeCache.txt

#make && make install

2) 初始化mysql

#useradd -M -d /usr/local/lnmp/mysql/data/ -s /sbin/nologin mysql

#cd /usr/local/lnmp/mysql
#chown -R mysql.mysql .
#cd /usr/local/lnmp/mysql/support-files
#cp mysql.server /etc/init.d/mysql
#cp my-medium.cnf /etc/my.cnf 根據你的主機內存複製 mysql 配置文件

#./mysql_install_db --user=mysql --basedir=/usr/local/lnmp/mysql --datadir=/usr/loca/lnmp/mysql/data/

#cd /root

#vi ~/.bash_profile

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

source ~/.bash_profile 讓它生效

#cd /usr/local/lnmp/mysql/

#chown root * -R

#chown mysql -R data/          只允許data/目錄下的數據讓mysql修改


#/etc/init.d/mysqld restart   啓動mysqld開啓3306

#chkconfig mysqld on

#mysql登錄驗證             mysql命令已經被加載到root用戶的環境裏了

# mysql_secure_installation    初始化mysql

3、php源碼編譯與安裝

1)先安裝所需的一些模塊
#tar zxf libiconv-1.13.1.tar.gz 加強系統對支持字符編碼轉換的功能
#cd libiconv-1.13.1/
#./configure --prefix=/usr/local/lnmp/modules/libiconv/
#make && make install
#tar jxf libmcrypt-2.5.8.tar.bz2 mcrypt mhash 是php加密算法擴展庫
#cd libmcrypt-2.5.8
#./configure --prefix=/usr/local/lnmp/modules/libmcrypt/
#make && make install
#cd libltdl
#./configure –libdir=/usr/local/lnmp/modules/libmcrypt --enable-ltdl-install
#make && make install
#cd
#tar jxf mhash-0.9.9.9.tar.gz
#cd mhash-0.9.9.9
#./configure --prefix=/usr/local/lnmp/modules/mhsh/
#make && make install
#ldconfig /usr/local/lnmp/modules
#cd
#tar zxvf mcrypt-2.6.8.tar.gz
#cd mcrypt-2.6.8/
#./configure --prefix=/usr/local/lnmp/modules/mcrypt/ --with-libmcrypt-perfix=/usr/local/lnmp/modules/libmcrypt/
#make && make install

提示不找不到libmcrypt

#ln -s /usr/local/lnmp/modules/libmcrypt/include/* /usr/local/

#ln -s /usr/local/lnmp/modules/libmcrypt/lib/* /usr/local/lib/

#ln -s /usr/local/lnmp/modules/mhash/lib/* /usr/local/lib /

#ln -s /usr/local/lnmp/modules/mhash/include/* /usr/local/include/

重新編譯

#./configure --prefix=/usr/local/lnmp/modules/mcrypt --with-libmcrypt-prefix=/usr/loca/lnm/modules/libmcrypt/

#make && make install

# vim /etc/ld.so.conf     開機自動加載動態鏈接庫文件

wKioL1PzWbKAZzShAAFFVeMbIIU642.jpg

2)php的編譯安裝

#tar jxf php-5.3.6.tar.bz2
#cd php-5.3.6
#useradd -M -d /usr/local/lnmp/nginx -s /sbin/nologin nginx
#yum install net-snmp-devel curl-devel libxml2-devel libpng-devel libjpeg-devel freetype-devel gmp-devel(這些是編譯過程中所依賴的包,你也可以根據提示邊編譯邊安裝)

#ln -s /usr/local/lnmp/modules/libmcrypt/include/* /usr/local/include
#ln -s /usr/local/lnmp/modules/libmcrypt/lib/* /usr/local/lib

#./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/etc --with-mysql=/usr/local/lnmp/mysql/ --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --without-pear --with-gettext --with-gmp --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --with-mysqli=/usr/local/lnmp/mysql/bin/mysql_config --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx

#make ZEND_EXTRA_LIBS='-liconv'

#make install

3)配置php

#cd php-5.4.12                         去主目錄尋找主配置文件

#cp php.ini-production /usr/local/lnmp/php/etc/php.ini   主配置文件

#cd /root/php-5.4.12/sapi/fpm/

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

#vim /usr/local/lnmp/php/etc/php.ini

cgi.fix_pathinfo=0          防止nginx檢查漏洞

date.timezone = Asia/Shanghai

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

user=nginx group=nginx

pid = run/php-fpm.pid

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

#/etc/init.d/php-fpm restart    

#chkconfig php-fpm on

加載環境變量

#vim ~/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/bin

#source ~/.bash_profile

4)修改nginx主配置文件讓其支持php

#vim /usr/local/lnmp/nginx/conf/nginx.conf

server {

       listen     80;

      server_name  localhost;

location / {

           root html;

           indexindex.html index.htm index.php;  

       }

       location ~ \.php$ {                                 php結尾的交給本機的9000

           root html;

          fastcgi_pass 127.0.0.1:9000;

          fastcgi_index index.php;

          include fastcgi.conf;                         包含fastcgi接口文件

       }

}

重新加載nginx配置文件 #nginx -s reload

編寫php測試文件

#vim /usr/local/lnmp/nginx/html/index.php

<?phpinfo()

?>

測試:http://192.168.2.40/index.php

4、Discuz論壇的搭建

download:Discuz_X2.5_SC_UTF8.zip

修改nginx先讓執行index.php

#cd /usr/local/lnmp/nginx/conf
#vi nginx.conf
#access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.php index.html index.htm;
        }

        #error_page  404              /404.html;

#nginx -t
#nginx -s reload

# unzip Discuz_X2.5_SC_UTF8.zip

# cp -r upload/ /usr/local/lnmp/nginx/html/bbs/

提示修改config/data/需要可寫權限

# chown nginx config/ data/ -R

http://lnmp.xxb.com/bbs/   提示什麼安裝什麼

一般使uc_client/uc_server/沒有寫權限 ,給需要的目錄文件權限,權限不能給太大

# chown nginx -R uc_client/

# chown nginx -R uc_server/

這時登錄192.168.2.40/bbs按照提示進行安裝,安裝完之後就能玩論壇了!








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章