centos下安装LNMP

临时关闭selinux

[root@test-web ~]# getenforce

Enforcing

[root@test-web ~]# setenforce 0

[root@test-web ~]# getenforce


关于yum安装报错如下解决办法

warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

执行如下命令

[root@test-web /]# rpm --import /etc/pki/rpm-gpg/RPM*


1.安装mysql-5.6.14

tar zxvf mysql-5.6.14.tar.gz

yum -y install cmake ncurses  ncurses-devel gcc gcc-c++ make

[root@test-web src]# mkdir -p /usr/local/mysql

[root@test-web src]# groupadd mysql

[root@test-web src]# useradd -g mysql -s /sbin/nologin mysql

[root@test-web src]# chown -R mysql.mysql /usr/local/mysql

[root@test-web src]# id mysql

uid=500(mysql) gid=500(mysql) groups=500(mysql)

cd mysql-5.6.14

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data/mysql \

-DSYSCONFDIR=/usr/local/mysql \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci  \

-DEXTRA_CHARSETS=all \

-DENABLED_LOCAL_INFILE=1

make

make install


启动脚本

[root@test-web mysql-5.6.14]# cp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld


初始化mysql

/usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql/ --datadir=/data/mysql --user=mysql

启动mysql

/usr/local/mysql/bin/mysqld_safe &


加入环境变量

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


修改mysql配置文件

报错

#启动下面报错,然来是改了这个参数后需要关闭MYSQLSQL删除ib_logfile0, ib_logfile1这些文件,再启动MYSQL。

2013-12-01 02:04:04 28604 [ERROR] InnoDB: auto-extending data file ./ibdata1 is of a different size 4864 pages (rounded down to MB) than specified in the .cnf file: initial 16384 pages, max 0 (relevant if non-zero) pages!

2013-12-01 02:04:04 28604 [ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!

2013-12-01 02:04:04 28604 [ERROR] Plugin 'InnoDB' init function returned error.

2013-12-01 02:04:04 28604 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.


#下面报错我把table_cache=614这一项禁用

2013-12-01 02:04:04 28604 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'table_cache=614'  

2013-12-01 02:04:04 28604 [ERROR] Aborting



2.安装nginx

yum install openssl*

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make

yum -y install gd gd2 gd-devel gd2-devel

[root@test-web src]# groupadd www

[root@test-web src]# useradd -g www -s /sbin/nologin www

[root@test-web src]# id www

uid=501(www) gid=501(www) groups=501(www)


root@test-web pcre-8.32]# tar zxvf pcre-8.32.tar.gz

[root@test-web pcre-8.32]# cd pcre-8.32

[root@test-web pcre-8.32]# ./configure --prefix=/usr/local/pcre

[root@test-web pcre-8.32]# make && make install



# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-pcre=/usr/src/pcre-8.20 --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_p_w_picpath_filter_module

安装nginx提示错误

checking for GD library ... not found

checking for GD library in /usr/local/ ... not found

checking for GD library in /usr/pkg/ ... not found

checking for GD library in /opt/local/ ... not found


[root@test-web nginx-1.5.6]# rpm -qa|grep gd

gdbm-1.8.0-36.el6.i686

eggdbus-0.6-3.el6.i686

gd-2.0.35-10.el6.i686

gdb-7.1-29.el6.i686

应该是缺少gd-devel-2.0.35-10.el6.i686.rpm 在网上找了很长时间都没有找到这个包

后来下载源码包后不报错


[root@open2 nginx-1.5.6]# /usr/local/app/lbnginx/sbin/nginx -s reload

nginx: [error] invalid PID number "" in "/usr/local/app/lbnginx/logs/nginx.pid"

解决办法


[root@open2 nginx-1.5.6]# /usr/local/app/lbnginx/sbin/nginx -c /usr/local/app/lbnginx/conf/nginx.conf

[root@open2 nginx-1.5.6]# /usr/local/app/lbnginx/sbin/nginx -s reload



报错

[root@open-source conf]# /usr/local/app/nginx/sbin/nginx

/usr/local/app/nginx/sbin/nginx: error while loading shared libraries: libgd.so.2: cannot open shared object file: Error 40

解决办法

在/etc/ld.so.conf文件中添加文件所在的目录就行,试了一下,直接vi打开/etc/ld.so.conf文件,添加“/usr/local/lib”

ldconfig


查安装的lib库,看nginx啊 ldd $(which /usr/local/nginx/sbin/nginx)

后来编译是报pcre错误,检查一遍安装对了,后来去google去查了下原来不是指定安装目录,要指定源代码目录,就是你解压的目录

mkdir -p /var/logs/nginx/ #错误日志目录

mkdir -p /var/run/nginx/ #pid存放目录

mkdir -p /data/logs/ #access 日志目录

mkdir -p /data/www/ #站点目录


nginx.conf

[root@test-web conf]# cat nginx.conf

user  www www;


worker_processes 2;


error_log  /var/logs/nginx/nginx_error.log  crit;


pid        /var/run/nginx/nginx.pid;


#Specifies the value for maximum file descriptors that can be opened by this process.

worker_rlimit_nofile 65535;


events

{

 use epoll;

 worker_connections 65535;

}


http

{

 include       mime.types;

 default_type  application/octet-stream;


 #charset  gb2312;


 server_names_hash_bucket_size 128;

 client_header_buffer_size 32k;

 large_client_header_buffers 4 32k;

 client_max_body_size 8m;


 sendfile on;

 tcp_nopush     on;


 keepalive_timeout 60;


 tcp_nodelay on;


 fastcgi_connect_timeout 300;

 fastcgi_send_timeout 300;

 fastcgi_read_timeout 300;

 fastcgi_buffer_size 64k;

 fastcgi_buffers 4 64k;

 fastcgi_busy_buffers_size 128k;

 fastcgi_temp_file_write_size 128k;


 gzip on;

 gzip_min_length  1k;

 gzip_buffers     4 16k;

 gzip_http_version 1.0;

 gzip_comp_level 2;

 gzip_types       text/plain application/x-javascript text/css application/xml;

 gzip_vary on;


 #limit_zone  crawler  $binary_remote_addr  10m;


   log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '

             '$status $body_bytes_sent "$http_referer" '

             '"$http_user_agent" $http_x_forwarded_for';

 server

 {

   listen       80;

   server_name  blog.mytest.com;

   index index.html index.htm index.php;

   root  /data/www/blog;


   #limit_conn   crawler  20;    


   location ~ .*\.(php|php5)?$

   {      

     #fastcgi_pass  unix:/tmp/php-cgi.sock;

     fastcgi_pass  127.0.0.1:9000;

     fastcgi_index index.php;

     include fcgi.conf;

   }


   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

   {

     expires      30d;

   }


   location ~ .*\.(js|css)?$

   {

     expires      1h;

   }    


   access_log  /data/logs/access.log  access;

     }


   log_format  wwwlogs  '$remote_addr - $remote_user [$time_local] "$request" '

              '$status $body_bytes_sent "$http_referer" '

              '"$http_user_agent" $http_x_forwarded_for';

 server

 {

   listen       80;

   server_name  www.mytest.com;

   index index.html index.htm index.php;

   root  /data/htdocs/www;


   location ~ .*\.(php|php5)?$

   {      

     #fastcgi_pass  unix:/tmp/php-cgi.sock;

     fastcgi_pass  127.0.0.1:9000;

     fastcgi_index index.php;

     include fcgi.conf;

   }


   access_log  /data/logs/wwwlogs.log  wwwlogs;

 }


 server

 {

   listen  80;

   server_name  status.blog.mytest.com;


   location / {

   stub_status on;

   access_log   off;

   }

 }

}


粘贴张宴博客的配置文件

报错如下

root@test-web conf]# /usr/local/nginx/sbin/nginx -s reload

nginx: [warn] the "log_format" directive may be used only on "http" level in /usr/local/nginx/conf/nginx.conf:84

nginx: [warn] the "log_format" directive may be used only on "http" level in /usr/local/nginx/conf/nginx.conf:105

google了一下原来是版本的问题,我安装的是nginx-1.5.6得把日志切割放到server的外面


[root@test-web conf]# cat fcgi.conf

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

fastcgi_param  SERVER_SOFTWARE    nginx;


fastcgi_param  QUERY_STRING       $query_string;

fastcgi_param  REQUEST_METHOD     $request_method;

fastcgi_param  CONTENT_TYPE       $content_type;

fastcgi_param  CONTENT_LENGTH     $content_length;


fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  REQUEST_URI        $request_uri;

fastcgi_param  DOCUMENT_URI       $document_uri;

fastcgi_param  DOCUMENT_ROOT      $document_root;

fastcgi_param  SERVER_PROTOCOL    $server_protocol;


fastcgi_param  REMOTE_ADDR        $remote_addr;

fastcgi_param  REMOTE_PORT        $remote_port;

fastcgi_param  SERVER_ADDR        $server_addr;

fastcgi_param  SERVER_PORT        $server_port;

fastcgi_param  SERVER_NAME        $server_name;


# PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param  REDIRECT_STATUS    200;





3.安装PHP

3.1安装依赖库

mkdir -p /usr/local/libs/

wget http://www.ijg.org/files/jpegsrc.v9.tar.gz    

tar zxvf jpegsrc.v9.tar.gz

cd jpeg-9/

./configure --prefix=/usr/local/libs --enable-shared --enable-static --prefix=/usr/local/libs

make

make install

cd ../


wget http://prdownloads.sourceforge.net/libpng/libpng-1.6.2.tar.gz

tar zxvf libpng-1.6.2.tar.gz

cd libpng-1.6.2/

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

make

make install

cd ../


wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.12.tar.gz

tar zxvf freetype-2.4.12.tar.gz

cd freetype-2.4.12/

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

make

make install

cd ../



wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?big_mirror=0"

wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?big_mirror=0"

wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?big_mirror=0"



tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8/

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

make

make install

cd libltdl/

./configure --prefix=/usr/local/libs --enable-ltdl-install

make

make install

cd ../../



tar zxvf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9/

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

make

make install

cd ../



vi /etc/ld.so.conf


添加:

/usr/local/libs/lib


然后:

ldconfig


tar zxvf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8/

export LDFLAGS="-L/usr/local/libs/lib -L/usr/lib"

export CFLAGS="-I/usr/local/libs/include -I/usr/include"

touch malloc.h

./configure --prefix=/usr/local/libs --with-libmcrypt-prefix=/usr/local/libs

make

make install

cd ../


安装php

tar zxvf php-5.5.5.tar.gz

cd php-5.5.5

export LIBS="-lm -ltermcap -lresolv"

export DYLD_LIBRARY_PATH="/usr/local/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64"

export LD_LIBRARY_PATH="/usr/local/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64"


./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql \

--with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir=/usr/local/libs \

--with-jpeg-dir=/usr/local/libs --with-png-dir=/usr/local/libs --with-zlib --with-libxml-dir=/usr --enable-xml \

--disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl \

--enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/usr/local/libs --with-gd --enable-gd-native-ttf \

--with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-opcache \

--with-pdo-mysql --enable-maintainer-zts --enable-fpm


make && make install


[root@test-web src]# mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

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


[root@open-source etc]# vim /usr/local/php/etc/php.ini

date.timezone = Asia/Shangha

max_execution_time = 300

post_max_size = 32M

max_input_time=300

memory_limit = 128M

mbstring.func_overload = 2



启动php-fpm

/usr/local/php/sbin/php-fpm


安装php扩展

eaccelerator 不兼容php5.5