centos源码安装nginx1.8.0+php5.6.10+mysql5.6.12的方法

今天公司的企业网站需要搬迁到美国的服务器,就需要重新配置服务器的环境,采用的是lnmp的环境来运行php。下面是安装的方法。

.服务器配置总体介绍 

a、系统环境 CentOS 6.5 64 ,4核cpu ,4G内存,5M带宽。

b、需要安装的主要软件:Nginx PHP(FastCGI)   MySQL  、 版本如下nginx-1.8.0  php-5.6.10  mysql-5.6.13


二、软件下载(下载到本地,然后进行解压)

下载链接: http://pan.baidu.com/s/1nvcnqdz 密码: 2nxv

解压到 /home/softsrc/后主要软件压缩包如下图:


.准备安装

a、准备工作:为了下面的安装顺利建议先使用yum安装依赖库,我就把它叫做前期工作吧

sudo -s
LANG=C
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  pcre pcre-devel GeoIP GeoIP-devel GeoIP-data  patch

注意,所有软件都下载上传到了 /home/softsrc/ 下面  一共1个软件nginx1.8.0+php5.6.10+mysql5.6.12.rar

#有的机器没有wget命令,运行yum install -y wget 即可安装


b、.安装Nginx进入cd /home/softsrc/ 目录中,

1、安装nginx需要的扩展包pcre

tar zxvf pcre-8.33.tar.gz
cd pcre-8.33/
./configure
make && make install
cd ../

2、安装pcre后安装nginx软件

tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
vi auto/cc/gcc

#将这句注释掉 取消Debug编译模式 大概在179行 注释这里是关闭nginx的调试模式,默认是开启调试模型
#CFLAGS="$CFLAGS -g"
#我们再配置下nginx编译参数
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../

注意:--user=www 表示安装的用户 ,--group=www表示安装的用户组,--prefix=/usr/local/webserver/nginx表示安装的目录,后面的这些是需要安装的nginx自带插件扩展,这个可以根据需要自行调整


3、安装完成后配置网站的虚拟目录,用于保存网站的各项数据。

mkdir -p /media/raid10/logs
chmod +w /media/raid10/logs
chown -R www:www /media/raid10/logs

4、创建Nginx配置文件

#在/usr/local/webserver/nginx/conf/目录中创建nginx.conf文件:

rm -f /usr/local/webserver/nginx/conf/nginx.conf
vi /usr/local/webserver/nginx/conf/nginx.conf   #输入下面的nginx内容,可根据相对应需求进行修改)
#user  nobody;
worker_processes  4; #一般为当前机器总cpu核心数的1到2倍。如,我的机器为双核,那么开4个足够了
 
error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
pid        /usr/local/webserver/nginx//nginx.pid;
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 256;
   client_header_buffer_size 64k;
   large_client_header_buffers 8 64k;
   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 128k;
   fastcgi_buffers 8 128k;
   fastcgi_busy_buffers_size 256k;
   fastcgi_temp_file_write_size 256k;
 
   gzip on;
   gzip_min_length  1k;
   gzip_buffers     8 32k;
   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;
 
    server {
        listen       80;
        server_name  www.expamle.com expamle.com 127.0.0.1;
                index index.html index.htm index.php;
                root /media/raid10/htdocs/www/  
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            if (!-e $request_filename){
              rewrite ^/(.*)$ /index.php?s=/$1 last;
              break;
            }
        }

        #error_page  404              /404.html;
 
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
       location ~ .*\.(php|php5)?$
        {      
               #fastcgi_pass  unix:/tmp/php-cgi.sock;
               fastcgi_pass  127.0.0.1:9000;
               fastcgi_index index.php;
               fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
               include        fastcgi_params;
        }
        
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
               expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
               expires      1h;
        }  
    }
}


5、配置完成后启动nginx

#添加开机自启动

vi /etc/rc.local

#在这个文件里面添加如下
ulimit -SHn 65535
/usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf

 6.启动Nginx

ulimit -SHn 65535
/usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf


c、安装mysql5.6.13,这个是采用cmake安装进入 cd /home/softsrc/ 目录中。

1、安装cmake软件包(如果已安装可以忽略)

yum install cmake

#创建授权用户和用户组
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql

#安装mysql

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_DATADIR=/media/raid10/mysql/3306/data/ -DWITH_INNOBAS
#5.7版本的
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_DATADIR=/media/raid10/mysql/3306/data/ -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR==/tmp/mysql.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost

注意sock的地址(/tmp/mysql.sock),这个需要跟phpsocke地址(mysql.default_socket =/tmp/mysql.sock)一致的

#我们先配置下MySQL的编译参数 一般我们就配置下安装路径就可以了 如你有特殊配置也可以在安装之后修改参数也可以的

编译完成后这里你大可以泡杯茶 编译需要较长的时间

Make

make install 


2、编译安装完成后:

#添加mysql用户

useradd mysql
chmod +w /usr/local/webserver/mysql
chown -R mysql:mysql /usr/local/webserver/mysql

3、创建MySQL数据库存放目录 

mkdir  -p /media/raid10/mysql/3306/data/
mkdir  -p /media/raid10/mysql/3306/binlog/
mkdir  -p /media/raid10/mysql/3306/relaylog/
chown  -R mysql:mysql  /media/raid10/mysql/

4、安装数据库目录

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

5、创建my.cnf配置文件 

cd /usr/local/webserver/mysql/support-files/

#复制mysql管理脚本
cp mysql.server /etc/rc.d/init.d/mysql

#复制mysql配置文件
cp my-default.cnf /etc/my.cnf

#添加mysql服务
chkconfig --add mysql

#加入开机启动策略
chkconfig mysql on

#启动mysql服务
service mysql start #或者/etc/init.d/mysql start

6、通过以下命令登录管理MySQL服务器(提示输入密码直接回车,这是用root登录的

/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock   #或者
/usr/local/webserver/mysql/bin/mysql -u root  -p -S /tmp/mysql.sock  #密码留空,直接回车

7、输入以下SQL语句,用于创建一个具有root权限的用户 ,用户名是 上面提到的 admin 密码  是 xxxx

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'xxx' WITH GRANT OPTION; #xxx 表示密码
flush privileges ;

d、安装php,进入 cd /home/softsrc/ 目录中。


1.编译安装 PHP 5.6所需的支持库 

#安装libiconv库
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local
make
make install
cd ../
 
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../
 
 
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../
 
 ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
 ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
 ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
 ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
 ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
 ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
 ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
 ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
 ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
 ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
 
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install 
cd ../

2、安装php软件

tar -zxvf php-5.6.10.tar.gz
cd php-5.6.10

#我们先配置下PHP的编译参数
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-iconv-dir=/usr/local --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-fpm  --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap
make ZEND_EXTRA_LIBS='-liconv' 
make install clean

a.当编译遇到:configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no

解决方法:执行下面的方法,然后重新编译php 就可以了

echo /usr/local/webserver/mysql/lib >> /etc/ld.so.conf.d/mysql-x86_64.conf
ldconfig -v

 b.Cannot find ldap libraries in /usr/lib  解决方法:cp -frp /usr/lib64/libldap* /usr/lib/


3、安装php后编译安装PHP5扩展模块 

#memcache 主要用于Memcache缓存的配置
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

#安装ImageMagick扩展主要处理图片的压缩,裁剪,动态生成图片
tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
make
make install
cd ../

#安装imagick扩展主要处理图片的作用
wget http://pecl.php.net/get/imagick-3.1.1.tgz
tar zxvf imagick-3.1.1.tgz
cd imagick-3.1.1
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

#安装PDO_MYSQL扩展,主要用pdo连接mysql数据库
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-mysql=/usr/local/webserver/mysql
make
make install
cd ../


出错的问题1:

出错的原因和解决方法:

ln -s /usr/local/webserver/mysql/include/mysql/* /usr/local/include/

ln -s /usr/local/webserver/mysql/include/* /usr/local/include/

出错的问题2:

报这个错的时候,缺少安装perl-devel:运行,yum install -y perl-devel 


4、编译安装完扩展,创建www用户和组,以及供网站虚拟主机使用的目录:

/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir  -p  /media/raid10/htdocs/www
chmod  +w  /media/raid10/htdocs/www
chown  -R  www:www /media/raid10/htdocs/www

5、创建php的配置

#进入目录:
/home/softsrc/php-5.6.10/

#复制php.ini
cp php.ini-production /usr/local/webserver/php/etc/php.ini
cd /usr/local/webserver/php/etc/ 
cp php-fpm.conf.default php-fpm.conf

#使用PHP-FPM管理脚本,在编译包里面已经配置好了,只需要复制到/etc/init.d/中即可
cd /home/softsrc/php-5.6.10/sapi/fpm/
cp init.d.php-fpm /etc/init.d/php-fpm
 
chmod +x /etc/init.d/php-fpm
 
#启动php-fpm
service php-fpm start|restart|stop

#加入开机启动策略
chkconfig --add php-fpm
 
chkconfig php-fpm on

错误问题描述

第一、error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory这个错误,我的mysql是二进制包,位置是/usr/local/mysql,然后我看了下/usr/local/mysql/lib/下是有libmysqlclient.so.18这个文件的.

解决办法:

echo "/usr/local/webserver/mysql/lib" >>/etc/ld.so.conf

然后执行ldconfig -v使其生效.


echo '/usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64'>>/etc/ld.so.conf

configure: error: off_t undefined; check your library configuration

echo "/usr/local/webserver/mysql/lib" > /etc/ld.so.conf.d/mysql.conf

然后执行ldconfig -v使其生效.


第二:/usr/bin/ld: cannot find -liconv

解决方法: 重新安装libiconv

 tar zxvf libiconv-1.14.tar.gz

 cd libiconv-1.14/

 ./configure --prefix=/usr/local

 make

 make install

 cd ../

第三:error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

http://blog.sina.com.cn/s/blog_8701ca0201016g7m.html


第四:

解决方法:升级软件的版本下载最新版本:http://mirror.checkdomain.de/imagemagick/

到这里nginx+php+mysql都已经安装成功了,我这里写的不是很详细,需要有一定服务器知识的人才能看的明白,如果大家有什么问题,都可以一起交流交流,共同进步嘛。

本文永久地址:http://www.huanghaiping.com/article/48.html
本文出自 黄海平博客 ,转载时请注明出处及相应链接。

发表我的评论
  

网友最新评论 (0)

暂无评论
返回顶部