• 编译安装LNMP Centos 6.5 x64 + Nginx1.6.0 + PHP5.5.13 + Mysql5.6.19


    (来自:http://www.cnblogs.com/vicowong/archive/2011/12/01/2116212.html)

    环境:

    系统硬件:vmware vsphere (CPU:2*4核,内存2G)

    系统版本:CentOS-6.5-x86_64-minimal.iso

    安装步骤:

    0.虚拟系统安装

    0.1 使用VMware 虚拟机进行安装,进行安装界面

    (分配内存必须大于1G,否则不会显示图型安装界面,网络设置使用“桥接模式” 即"Bridged"模式)

    0.2 选择 Install or upgrade an existing system

    0.3 在"Disc found" 框 选择 "skip"

    0.4 next 选择 "chinese(simplified)(中文(简介 )) next

    0.5 选择 "美国英语式" 下一步

    0.6 选择 "基本 存储设备" 下一步

    0.7 弹出"警告"框时,选择"重新初始化所有"

    0.8 主机名可以保留默认,点击”配置网络“ 弹出“网络连接” 双击“System eth0"

    0.9 弹出“正在编辑 System eth0" 选择"自动连接" 点击"应用“ ,点击”关闭“ 关闭”网络连接“框 下一步  

    0.10 不要选择“系统时钟使用UTC时间” 下一步

    0.11 输入并确认 ”根密码“ 下一步

    0.12 选择"替换现有Linux系统 " 下一步 “将修改写入磁盘"

    0.13 选择"Basic Server" 下一步

    0.14 大概一共200个软件包,复制安装完成后,点击“重新引导”,重新启动计算机

    0.15 (安装完成后,可以将虚拟机内存由1G,改为512M)

      

    1.系统环境

    1.1 更新系统

    [root@centos ~]# yum update -y

     

    1.2 查看环境

    [root@centos ~]# cat /etc/redhat-release

    CentOS release 6.5 (Final)

    [root@centos ~]# uname -a

    Linux zabbix 2.6.32-431.17.1.el6.x86_64 #1 SMP Wed May 7 23:32:49 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

    [root@centos ~]# yum -y install vim wget lsof gcc gcc-c++

      

    2.安装Google-perftools (使用tcmalloc 加速 mysql 和 nginx)

    2.1下载需要的文件

    下载 libunwind-1.1.tar.gz 到 /usr/local/src

    下载 gperftools-2.2.tar.gz 到 /usr/local/src

      

    2.2 安装libunwind

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf libunwind-1.1.tar.gz

    [root@centos ~]# cd libunwind-1.1

    [root@centos ~]# ./configure --enable-shared

    [root@centos ~]# make && make install

    2.3 安装google-perftools

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf gperftools-2.2.tar.gz

    [root@centos ~]# cd gperftools-2.2

    [root@centos ~]# ./configure --enable-shared --enable-frame-pointers

    [root@centos ~]# make && make install

     

    2.4 更新,使动态链接库能够被系统共享

    [root@centos ~]# echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf

    [root@centos ~]# ldconfig

    3.安装mysql

    3.1 下载文件

    下载 ncurses-5.9.tar.gz到/usr/local/src
    下载 bison-3.0.tar.gz到/usr/local/src
    下载 cmake-3.0.0.tar.gz到/usr/local/src
    下载 mysql-5.6.19.tar.gz到/usr/local/src

      

    3.2 安装ncurses

    [root@centos ~]# yum install ncurses-devel openssl* -y

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf ncurses-5.9

    [root@centos ~]# ./configure

    [root@centos ~]# make && make install

    3.3 安装cmake

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf cmake-3.0.0.tar.gz

    [root@centos ~]# cd cmake-3.0.0

    [root@centos ~]# ./bootstrap

    [root@centos ~]# make && make install

    3.4 安装bison

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf bison-3.0.tar.gz

    [root@centos ~]# cd bison-3.0

    [root@centos ~]# ./configure

    [root@centos ~]# make && make install

    3.5 创建mysql需要的目录、配置用户和用户组

    [root@centos ~]# groupadd mysql

    [root@centos ~]# useradd -g mysql mysql

    [root@centos ~]# mkdir -p /data/mysql

    [root@centos ~]# chown -R mysql:mysql /data/mysql

      

    3.6.安装mysql (需要 cmake ncurses-devel bison 库)

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf mysql-5.6.19.tar.gz

    [root@centos ~]# cd mysql-5.6.19

    [root@centos ~]#  cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql -DMYSQL_DATADIR=/data/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=on -DWITH_SSL=yes

    [root@centos ~]# make && make install

    3.7 创建软连接

    [root@centos ~]# ln -s /opt/mysql/lib/lib* /usr/lib/

    3.8配置mysql数据库

    [root@centos ~]# cd /opt/mysql

    [root@centos ~]# ./scripts/mysql_install_db --basedir=/opt/mysql/ --datadir=/data/mysql/ --user=mysql

    3.9复制配置文件

    3.9.1 (mysql 5.6.19)

    [root@centos ~]# cp ./support-files/my-default.cnf /etc/my.cnf

    3.9.2 (mysql 5.3.29)

    [root@centos ~]# cp ./support-files/my-large.cnf /etc/my.cnf

    修改配置文件,设置默认使用utf8编码

    [root@centos ~]# vim /etc/my.cnf

    在[client]下添加一行

    default-character-set = utf8

    在[mysqld]下添加一行

    character-set-server = utf8

    3.11 设置mysql开机自动启动服务

    [root@centos ~]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

    [root@centos ~]# chkconfig --add mysqld

    [root@centos ~]# chkconfig --level 345 mysqld on

    3.12 修改服务配置文件

    [root@centos ~]# vim /etc/rc.d/init.d/mysqld

    根据设定需要,修改mysqld文件中的下面两项

    basedir=/opt/mysql

    datadir=/data/mysql

    3.13 启动mysqld服务  

    [root@centos ~]# service mysqld start

      

    3.14 数据库初始化及修改root密码(root初始密码为空)

    [root@centos ~]# ./bin/mysql_secure_installation
    根据提示操作

    3.15 软连接mysql

    [root@centos ~]# ln -s /opt/mysql/bin/mysql /bin

    3.16 重启centos后,尝试用root连接mysql
    [root@centos ~]# mysql -u root -p

    成功登录后查看状态

    status;

      

    3.17 使用tcmalloc优化mysql ( 需要安装google-perftools)

    [root@centos ~]# vim /opt/mysql/bin/mysqld_safe

    在# executing mysqld_safe的下一行,加上:
    export LD_PRELOAD=/usr/local/lib/libtcmalloc.so

    3.18 重启服务,查看tcmalloc是否生效 (第二条命令显示即生效)

    [root@centos ~]# service mysqld restart

    [root@centos ~]# lsof -n | grep tcmalloc

    如果显示以下类似的信息,即表示tcmalloc生效

    mysqld 30347 mysql mem REG 253,0 2177570 544322 /usr/local/lib/libtcmalloc.so.0.2.2

    3.18 增加远程访问用户,并且打开防火墙3306端口(不远程连接数据,可省略)

    [root@centos ~]# mysql -u root -p

    输入密码进行mysql控制台,添加远程访问用户

    (root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,也可指定唯一的IP地址;密码是MyPassword )

    Mysql [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;

    Mysql [(none)]> FLUSH PRIVILEGES;

    Mysql [(none)]> exit;

    [root@centos ~]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

    [root@centos ~]# /etc/rc.d/init.d/iptables save

    [root@centos ~]# /etc/init.d/iptables restart

    查看防火墙信息

    [root@centos ~]# /etc/init.d/iptables status

    如果显示以下类似信息,即表示已经打开了3306端口

    1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306

    4.安装Nginx

    4.1.准备安装

    下载 pcre-8.35.tar.gz到/usr/local/src

    下载 nginx-1.6.0.tar.gz到/usr/local/src

      

    4.2 更新包

    [root@centos ~]# yum install zlib* openssl* -y

    4.3 安装Pcre


    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf pcre-8.35.tar.gz

    [root@centos ~]# cd pcre-8.35

    [root@centos ~]# ./configure

    [root@centos ~]# make && make install

    4.4 创建www用户和组,创建www虚拟主机使用的目录,以及Nginx使用的日志目录,并且赋予他们适当的权限

    [root@centos ~]# groupadd www

    [root@centos ~]# useradd -g www www

    [root@centos ~]# mkdir -p /data/www

    [root@centos ~]# chmod +w /data/www

    [root@centos ~]# chown -R www:www /data/www

    为tcmalloc添加目录,并且赋予适当权限

    [root@centos ~]# mkdir -p /tmp/tcmalloc/

    [root@centos ~]# chown -R www:www /tmp/tcmalloc/

    4.5 安装Nginx (需要 pcre google-perftools 库)  

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf nginx-1.6.0.tar.gz

    伪装服务器信息(可以不修改)

    [root@centos ~]# cd nginx-1.6.0/src/core

    [root@centos ~]# vim ./src/core/nginx.h

    修改NGINX_VERSION为你希望显示的版号

    修改NGINX_VER为你希望显示的名称

    修改NGINX_VAR 为你希望显示的名称

    保存

      

    开始安装NGINX

    [root@centos ~]# ./configure --user=www --group=www --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module --with-google_perftools_module

    [root@centos ~]# make && make install

    4.6 修改 nginx.conf ,令nginx可以 google-perftools实现加速

    [root@centos ~]# vim /opt/nginx/conf/nginx.conf

    修改前面几行为:

    user www www;
    worker_processes 8;
    error_log logs/error.log crit;
    pid logs/nginx.pid;
    google_perftools_profiles /tmp/tcmalloc/;
    events{
      use epoll;
      worker_connections 65535;
    }

    4.7 测试和运行

    [root@centos ~]# cd /opt/nginx

    [root@centos ~]# ldconfig

    [root@centos ~]# ./sbin/nginx -t

    如果显示下面信息,即表示配置没问题

    nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /opt/nginx/conf/nginx.conf test is successful

    输入代码运行nginx服务

    [root@centos ~]# ./sbin/nginx 

    [root@centos ~]# ps au|grep nginx

    如果显以类似下面的信息,即表示nginx已经启动

    root 2013 0.0 0.0 103156 856 pts/0 S+ 03:22 0:00 grep nginx

      

    输入代码检测是否支持加速

    [root@centos ~]# lsof -n | grep tcmalloc

    如果显示类似下面的信息,即表示支持tcmalloc加速 (mysqld和nginx两个线程都支持)

    mysqld 20818 mysql mem REG 253,0 2177570 281050    /usr/local/lib/libtcmalloc.so.0.2.2

    nginx 29454 www 25w REG 253,0 0 288399 /tmp/tcmalloc/.29454

    nginx 29455 www 27w REG 253,0 0 288403 /tmp/tcmalloc/.29455

    4.8 打开防火墙80端口

    写入规则,保存并重启服务

    [root@centos ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

    [root@centos ~]# /etc/rc.d/init.d/iptables save

    [root@centos ~]# /etc/init.d/iptables restart

    查看防火墙信息

    [root@centos ~]# /etc/init.d/iptables status

    如果显示以下类似信息,即表示已经打开了80端口

    1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

    4.9 编写nginx 启动服务

    [root@centos ~]# vim /etc/init.d/nginx

    输入以下代码并保存

    #!/bin/sh 

    # nginx - this script starts and stops the nginx daemon 

    # chkconfig: - 85 15 
    # description: Nginx is an HTTP(S) server, HTTP(S) reverse  
    # proxy and IMAP/POP3 proxy server 
    # processname: nginx 
    # config: /etc/nginx/nginx.conf 
    # config: /etc/sysconfig/nginx 
    # pidfile: /var/run/nginx.pid

    # Source function library. 
    . /etc/rc.d/init.d/functions

    # Source networking configuration. 
    . /etc/sysconfig/network

    # Check that networking is up. 
    [ "$NETWORKING" = "no" ] && exit 0

    nginx="/opt/nginx/sbin/nginx" 
    prog=$(basename $nginx)

    NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"

    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

    lockfile=/var/lock/subsys/nginx

    start() { 
    [ -x $nginx ] || exit 5 
    [ -f $NGINX_CONF_FILE ] || exit 6 
    echo -n $"Starting $prog: " 
    daemon $nginx -c $NGINX_CONF_FILE 
    retval=$? 
    echo 
    [ $retval -eq 0 ] && touch $lockfile 
    return $retval 
    }

    stop() { 
    echo -n $"Stopping $prog: " 
    killproc $prog -QUIT 
    retval=$? 
    echo 
    [ $retval -eq 0 ] && rm -f $lockfile 
    return $retval 
    killall -9 nginx 
    }

    restart() { 
    configtest || return $? 
    stop 
    sleep 1 
    start 
    }

    reload() { 
    configtest || return $? 
    echo -n $"Reloading $prog: " 
    killproc $nginx -HUP 
    RETVAL=$? 
    echo 
    }

    force_reload() { 
    restart 
    }

    configtest() { 
    $nginx -t -c $NGINX_CONF_FILE 
    }

    rh_status() { 
    status $prog 
    }

    rh_status_q() { 
    rh_status >/dev/null 2>&1 
    }

    case "$1" in 
    start) 
    rh_status_q && exit 0 
    $1 
    ;; 
    stop) 
    rh_status_q || exit 0 
    $1 
    ;; 
    restart|configtest) 
    $1 
    ;; 
    reload) 
    rh_status_q || exit 7 
    $1 
    ;; 
    force-reload) 
    force_reload 
    ;; 
    status) 
    rh_status 
    ;; 
    condrestart|try-restart) 
    rh_status_q || exit 0 
    ;; 
    *) 
    echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 
    exit 2 
    esac

    保存后,设置权限,并添加到启动服务列表中

    [root@centos ~]# chmod 755 /etc/init.d/nginx

    [root@centos ~]# chkconfig --add nginx

    [root@centos ~]# chkconfig --level 345 nginx on

    [root@centos ~]# service nginx start

    5 安装PHP

    5.1 准备安装

    下载php-5.5.13.tar.gz到/usr/local/src
    下载 libiconv-1.14.tar.gz到/usr/local/src
    下载 libmcrypt-2.5.8.tar.gz到/usr/local/src
    下载mcrypt-2.6.8.tar.gz到/usr/local/src
    下载mhash-0.9.9.9.tar.gz到/usr/local/src

    更新依赖

    yum -y install 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 libXpm* gcc gcc-c++


    5.2 安装libiconv (加强系统对支持字符编码转换的功能)

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf libiconv-1.14.tar.gz

    [root@centos ~]# cd libiconv-1.14

    [root@centos ~]# ./configure --prefix=/usr/local

    [root@centos ~]# make && make install

    5.3 安装libmcrypt(加密算法库,PHP扩展mcrypt功能对此库有依耐关系,要使用mcrypt必须先安装此库)

    5.3.1 安装libmcrypt

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf libmcrypt-2.5.8.tar.gz

    [root@centos ~]# cd libmcrypt-2.5.8

    [root@centos ~]# ./configure

    [root@centos ~]# make && make install

    5.3.2安装libltdl

    [root@centos ~]# cd libltdl/

    [root@centos ~]# ./configure --enable-ltdl-install

    [root@centos ~]# make && make install

    5.3.3 更新共享

    [root@centos ~]# ln -sf /usr/local/lib/libmcrypt.* /usr/lib64/

    [root@centos ~]# ln -sf /usr/local/bin/libmcrypt-config /usr/lib64/

    [root@centos ~]# ln -sf /usr/local/lib/libiconv.so.2 /usr/lib64/

    [root@centos ~]# ldconfig
     

    5.4 安装mhash(hash加密算法库)

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf mhash-0.9.9.9.tar.gz

    [root@centos ~]# cd mhash-0.9.9.9

    [root@centos ~]# ./configure

    [root@centos ~]# make && make install

    更新共享

    [root@centos ~]# ln -sf /usr/local/lib/libmhash.* /usr/lib64/

    [root@centos ~]# ldconfig

    5.5 安装mcrypt

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf mcrypt-2.6.8.tar.gz

    [root@centos ~]# cd mcrypt-2.6.8

    [root@centos ~]# ./configure

    [root@centos ~]# make && make install


    5.6 安装php

    5.6.1 创建mysql软连接、ldap软连接

    [root@centos ~]# mkdir -p /opt/mysql/include/mysql

    [root@centos ~]# ln -s /opt/mysql/include/* /opt/mysql/include/mysql/

    [root@centos ~]# ln -s /usr/lib64/libldap* /usr/lib

    5.6.2 安装

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf php-5.5.13.tar.gz

    [root@centos ~]# cd php-5.5.13

    [root@centos ~]# ./configure --prefix=/opt/php --with-config-file-path=/opt/php/etc --with-mysql=/opt/mysql --with-mysqli=/opt/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 --disable-safe-mode --with-curlwrappers 

    [root@centos ~]# make ZEND_EXTRA_LIBS='-liconv'

    [root@centos ~]# make && make install

    5.6.3 复制配置文件

    [root@centos ~]# cp php.ini-production /opt/php/etc/php.ini

    5.6.4 安装memcache扩展(已经安装PHP)

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf memcache-3.0.6.tar.gz

    [root@centos ~]# cd memcache-3.0.6

    [root@centos ~]# /opt/php/bin/phpize

    [root@centos ~]# ldconfig

    [root@centos ~]# ./configure --with-php-config=/opt/php/bin/php-config

    [root@centos ~]# make && make install

    修改php配置文件,支持memcache

    [root@centos ~]# vim /opt/php/etc/php.ini

    在文件中搜索extension_dir、extension ,在相应位置添加下面两行
    extension_dir = "/opt/php/lib/php/extensions/no-debug-non-zts-20121212/"
    extension = "memcache.so"

    5.6.5 安装ZendOpcache扩展(已经安装php)

    [root@centos ~]# cd /usr/local/src/

    [root@centos ~]# tar zvxf zendopcache-7.0.3.tgz

    [root@centos ~]# cd zendopcache-7.0.3

    [root@centos ~]# /opt/php/bin/phpize

    [root@centos ~]# ./configure --with-php-config=/opt/php/bin/php-config

    [root@centos ~]# make && make install

    修改php配置文件,支持ZendOpcache

    [root@centos ~]# vim /opt/php/etc/php.ini

    在文件尾加入以下代码

    zend_extension=/opt/php/lib/php/extensions/no-debug-non-zts-20121212/opcache.so
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=60
    opcache.fast_shutdown=1
    opcache.enable_cli=1

    5.6.5 安装php-fpm

    [root@centos ~]# cp /opt/php/etc/php-fpm.conf.default /opt/php/etc/php-fpm.conf

    [root@centos ~]# vim /opt/php/etc/php-fpm.conf

    修改以下地方

    [global]
    pid = run/php-fpm.pid-p
    error_log = log/php-fpm.log
    emergency_restart_threshold = 10
    emergency_restart_interval = 1m
    process_control_timeout = 5s
    pm.max_children = 35
    pm.start_servers = 20
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35

    [www]
    user = www
    group = www


    5.6.6 修改nginx,支持php

    [root@centos ~]# vim /opt/nginx/conf/nginx.conf

    找到并修改以下代码

    location ~ .php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
    include fastcgi_params;
    }

    5.6.7将php-fpm 作为服务运行

    [root@centos ~]# cd /usr/local/src/php-5.5.13

    [root@centos ~]# cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

    [root@centos ~]# chmod 700 /etc/init.d/php-fpm

    [root@centos ~]# chkconfig --add php-fpm

    [root@centos ~]# chkconfig --level 345 php-fpm on

        
    服务方式启动php-fpm

    [root@centos ~]# service php-fpm restart

    5.6.8 编写测试页面

    [root@centos ~]# vim /data/www/index.php

    [root@centos ~]# chown -R www:www /data/www

    输入代码

    <html>
    <head><title>hello php</title></head>
    <body>
    <?php phpinfo();?>
    </body>
    </html>


    5.6.8 打开浏览器进行测试

    [root@centos ~]# service nginx restart

    [root@centos ~]# service php-fpm restart

    [root@centos ~]# curl http://localhost/index.html

    [root@centos ~]# curl http://localhost/index.php

  • 相关阅读:
    第一次软件作业
    第四次作业之单元测试
    第四次作业之代码规范
    第四次作业之psp
    第四次作业之四则运算
    第三周作业之功能测试
    第三周作业之效能分析
    第三周作业之例行报告
    第二周例行报告(王伟东)
    软件工程第二次作业(王伟东)
  • 原文地址:https://www.cnblogs.com/liuzhi/p/3930743.html
Copyright © 2020-2023  润新知