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