編譯安裝lnmp及問題解決

隔一段時間沒寫博客了,積下好多日誌。最近嘗試玩了下雲主機,安裝lnmp,許多參數、安裝命令也改變了,順便寫個文檔記錄下。安裝的軟件一般選擇最新穩定版。
 一、安裝nginx
安裝nginx需要的庫:
[root@XXX ~]# yum install gcc gcc-c++ pcre pcre-devel openssl openssl-devel
添加用戶,順便把php和mysql用戶加上(分別爲 php mysql):
[root@XXX nginx-1.2.5]# groupadd www
[root@XXX nginx-1.2.5]# useradd -G www -M -s /sbin/nologin nginx
創建文件夾:
[root@XXX ~]# mkdir soft
[root@XXX ~]# mkdir /usr/local/webserver
[root@XXX nginx-1.2.5]# mkdir /var/log/nginx
[root@XXX ~]# cd soft/
[root@XXX soft]# wget http://nginx.org/download/nginx-1.2.5.tar.gz
開始安裝:
[root@XXX soft]# tar zxvf nginx-1.2.5.tar.gz 
[root@XXX soft]# cd nginx-1.2.5
[root@XXX nginx-1.2.5]# ./configure  --user=nginx --group=www --prefix=/usr/local/webserver/nginx --error-log-path=/var/log/nginx/error.log  --http-log-path=/var/log/nginx/access.log --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
[root@XXX nginx-1.2.5]# make;make install
安裝完成,配置nginx:
[root@XXX nginx-1.2.5]# cd /usr/local/webserver/nginx/
[root@XXX nginx]# vi conf/nginx.conf
前部分修改如下
user  nginx www;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    use epoll;
    worker_connections  65535;
}
測試下:
[root@XXX nginx]# ./sbin/nginx -t
nginx: the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful
啓動nginx,成功訪問:
[root@XXX nginx]# ./sbin/nginx 
配置nginx開機啓動
[root@XXX 210.65.10.179]# vi /etc/rc.local 
在最後面加入這兩行:
ulimit -SHn 65535
/usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf
二、安裝mysql
編譯安裝mysql需要cmake,先安裝cmake:
[root@XXX soft]# wget http://www.cmake.org/files/v2.8/cmake-2.8.9.tar.gz
[root@XXX soft]# tar zxvf cmake-2.8.9.tar.gz 
[root@XXX soft]# cd cmake-2.8.9
[root@XXX cmake-2.8.9]# ./configure 
[root@XXX cmake-2.8.9]# make;make install
安裝mysql需要的庫:
[root@XXX soft]# yum install ncurses ncurses-devel
下載安裝mysql:
[root@XXX soft]# wget http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz/from/http://cdn.mysql.com/
[root@XXX soft]# tar zxvf  mysql-5.5.28.tar.gz 
[root@chttl-91f8bbd5f6d418cd mysql-5.5.28]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DINSTALL_SBINDIR=sbin -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
[root@XXX mysql-5.5.28]# make;make install
mysql安裝完成,下面進行配置:
[root@XXX webserver]# chown -R mysql:mysql  mysql/
[root@XXX mysql]# ./scripts/mysql_install_db --user=mysql
support-files下面有幾個文件,要根據自己的機子內存選擇,我的4G內存選擇了huge,選擇其他啓動報錯。
[root@XXX mysql]# cp support-files/my-huge.cnf /etc/my.cnf
測試啓動:
[root@XXX mysql]# ./bin/mysqld_safe --user=mysql &
配置mysql服務及開機啓動:
[root@XXX mysql]# cp support-files/mysql.server /etc/init.d/mysql
[root@XXX mysql]# chmod 700 /etc/init.d/mysql 
[root@XXX mysql]# chkconfig --add mysql
[root@XXX mysql]# chkconfig --level 345 mysql on
配置開機啓動完成。
[root@XXX mysql]# service mysql start
Starting MySQL[  確定  ]
[root@XXX mysql]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2

Server version: 5.5.28-log Source distribution


Type 'help;' or '\h' for help. Type '\c' to clear the buffer.


mysql> quit
Bye
設置mysql的root密碼:
[root@XXX mysql]# ./bin/mysqladmin -u root -p password
三、安裝php
安裝php需要的庫:
[root@XXX soft]# yum install libxml2 libxml2-devel curl curl-devel  glibc glibc-devel glib2 glib2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel  libmcrypt libmcrypt-devel
[root@XXX soft]# wget http://cn2.php.net/get/php-5.3.18.tar.gz/from/this/mirror
[root@XXX soft]# tar zxvf php-5.3.18.tar.gz 
[root@XXX soft]# cd php-5.3.18
[root@XXX php-5.3.18]# ./configure  --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --enable-fpm  --with-fpm-user=php  --with-fpm-group=www  --with-mysql=mysqlnd  --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-shared  --enable-static  --enable-tarck-var --with-freetype --with-gd   --with-jpeg --with-curl  --with-mcrypt --with-openssl --with-mhash --with-png  --with-xml --with-xmlrpc --with-zlib 
[root@XXX php-5.3.18]#  make;make install 
配置php

[root@XXX etc]# cp php-fpm.conf.default php-fpm.conf

[root@XXX etc]# cp /root/soft/php-5.3.18/php.ini-production /usr/local/webserver/php/etc/php.ini

[root@XXX etc]# vi  vi /usr/local/webserver/php/etc/php-fpm.conf
去掉以下四行的註釋,並自己修改值:
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
啓動php
[root@XXX etc]# ../sbin/php-fpm 
配置nginx支持php
[root@XXX nginx]# vi conf/nginx.conf
修改server如下
        location ~ .*\.php$ {
            #root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi.conf;
       }
重啓nginx測試,成功。
配置php開機啓動
[root@XXX 210.65.10.179]# vi /etc/rc.local 
在最後面加入這行:
/usr/local/webserver/php/sbin/php-fpm 
四、編譯php過程中遇到的問題:
[root@XXX php-5.3.18]#  make ZEND_EXTRA_LIBS='-liconv'
出現錯誤如下:
/usr/bin/ld: cannot find -liconv
collect2: ld returned 1 exit status
make: *** [sapi/fpm/php-fpm] Error 1
我以爲又是liconv沒裝上,從libmcrypt安裝包裏安裝 libltdl/
[root@XXX libmcrypt-2.5.8]# cd libltdl/
[root@XXX libltdl]# ./configure --enable-ltdl-install
[root@XXX libltdl]# make;make install
再次編譯php還是出錯。這次索性直接去掉“ ZEND_EXTRA_LIBS='-liconv' ”   直接make  
[root@XXX php-5.3.18]#  make 

Build complete.
Don't forget to run 'make test'.
竟然成功。之前也有遇到make 總是出錯 錯誤提示也是一樣 解決辦法就是 make ZEND_EXTRA_LIBS='-liconv' 然而這次反而是因爲這個出錯。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章