mmdbcn 发表于 2018-11-5 10:22:00

Centos6.4 + PHP5.5.11 + Mysql5.6.16 + Tnginx2.02 + Memcached1.4.17 + Redis2.2

  /**
  author: 老炮
  date: 2014/5/10
  */
  Centos6.4 + PHP5.5.11 + Mysql5.6.16 + Tnginx2.02 + Memcached1.4.17 + Redis2.2
  1:准备工作
  1.1 配置网卡 - 确保能上网 (dhcp方式或static方式)
  1.1.1 配置ifcfg-eth0文件
  # vi /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  TYPE=Ethernet
  UUID=e4b2d65f-c9c7-4f51-bfc1-3d06e9f7122e
  ONBOOT=yes
  NM_CONTROLLED=yes
  BOOTPROTO=dhcp
  HWADDR=00:0C:29:41:92:54
  IPV6INIT=yes
  NAME="System eth0"
  # vi /etc/sysconfig/network-scripts/ifcfg-lo
  DEVICE=lo
  IPADDR=127.0.0.1
  NETMASK=255.0.0.0
  NETWORK=127.0.0.0
  # If you're having problems with gated making 127.0.0.0/8 a martian,
  # you can change this to something else (255.255.255.255, for example)
  BROADCAST=127.255.255.255
  ONBOOT=yes
  NAME=loopback
  1.1.2 up eth0网卡
  # ifconfig eth0 up
  1.1.3 重启network服务
  # service network restart
  1.1.4 检查是否ping通过
  # ping g.cn
  1.1.2 配置ifcfg-eth0文件
  step1:Configure eth0 or em1
  # vim /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  HWADDR=00:1C:42:81:B8:CA
  TYPE=Ethernet
  UUID=1ada7958-46f9-4b3c-8171-ca6cd4a5e9ca
  ONBOOT=yes
  NM_CONTROLLED=yes
  BOOTPROTO=none
  IPV6INIT=no
  USERCTL=no
  PEERDNS=yes
  IPADDR=192.168.1.141
  NETMASK=255.255.255.0
  step2: Configure Default Gateway
  # vim /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=141server
  GATEWAY=192.168.1.1
  step3:Configure DNS Server
  # vim /etc/resolv.conf
  ; generated by /sbin/dhclient-script
  nameserver 8.8.8.8
  nameserver 192.168.1.1
  step4: Restart Network Interface
  # service network restart
  # ping centos.org
  # nslookup centos.org
  1.2 CentOS下为yum加入rpmForge源
  http://pkgs.repoforge.org/rpmforge-release/
  # wget -c http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
  # rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
  安装好后,到/etc/yum.repos.d目录下可以看到多了两个源文件:mirrors-rpmforgerpmforge.repo
  # cd /etc/yum.repos.d
  # ls
  CentOS-Base.repo       CentOS-Media.repomirrors-rpmforge         mirrors-rpmforge-testing
  CentOS-Debuginfo.repoCentOS-Vault.repomirrors-rpmforge-extrasrpmforge.repo
  1.3 升级系统和安装相关的程序库
  yum -y install yum-fastestmirror
  yum -y update
  yum -y install patch make gcc gcc-c++ gcc-g77 flex bison
  yum -y install libtool libtool-libs kernel-devel autoconf
  yum -y install libjpeg libjpeg-devel libpng libpng-devel
  yum -y install freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel
  yum -y install glib2 glib2-devel bzip2 diff*
  yum -y install bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs
  yum -y install e2fsprogs-devel krb5 krb5-devel libidn libidn-devel
  yum -y install openssl openssl-devel vim-minimal
  yum -y install fonts-chinese scim-chewing scim-pinyin scim-tables-chinese
  yum -y install libcurl-devel openldap-devel
  yum -y groupinstall "Development tools"
  1.4 PHP需要的库程序
  # wget -c https://catlnmp.googlecode.com/files/libiconv-1.14.tar.gz
  # tar xvzf libiconv-1.14.tar.gz
  # cd libiconv-1.14
  # ./configure --prefix=/usr/local --libdir=/usr/local/lib64
  # make
  # make install
  # wget -c https://catlnmp.googlecode.com/files/libmcrypt-2.5.8.tar.gz
  # tar xvzf libmcrypt-2.5.8.tar.gz
  # cd libmcrypt-2.5.8
  # ./configure --prefix=/usr/local --libdir=/usr/local/lib64
  # make && make install
  # /sbin/ldconfig
  # cd libltdl/
  # ./configure --enable-ltdl-install --libdir=/usr/local/lib64
  # make && make install
  # cd ../../
  # wget -c http://catlnmp.googlecode.com/files/mhash-0.9.9.9.tar.gz
  # tar xvzf mhash-0.9.9.9.tar.gz
  # cd mhash-0.9.9.9
  # ./configure --prefix=/usr/local --libdir=/usr/local/lib64
  # make && make install
  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
  # wget -c wget http://catlnmp.googlecode.com/files/mcrypt-2.6.8.tar.gz
  # tar xvzf mcrypt-2.6.8.tar.gz
  # cd mcrypt-2.6.8
  # /sbin/ldconfig
  # LD_LIBRARY_PATH=/usr/local/lib64 ./configure --prefix=/usr/local --libdir=/usr/local/lib64
  # make && make install
  2:开始安装MySQL
  2.1 去除系统自带的MySQL
  # yum erase mysql-libs
  2.2 安装依赖包
  # yum install cmake.x86_64
  # yum install ncurses-devel.x86_64
  # tar zxvf mysql-5.6.16.tar.gz
  # cd mysql-5.6.16
  2.3 编译
  #
  cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/usr/local/mysql/data \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DENABLED_LOCAL_INFILE=1 \
  -DWITH_EXTRA_CHARSETS=all
  # make
  # make install
  2.4 配置环境
  # cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
  # vim /etc/my.cnf
  
  basedir = /usr/local/mysql
  datadir = /usr/local/mysql/data
  port = 3306
  server_id = 1
  socket = /tmp/mysql.sock
  explicit_defaults_for_timestamp=true
  2.5 添加用户并安装DB
  # groupadd mysql
  # useradd -r -g mysql mysql
  # cd /usr/local/
  # chown -R mysql:mysql mysql
  # cd mysql/
  #
  scripts/mysql_install_db \
  --user=mysql \
  --datadir=/usr/local/mysql/data \
  --basedir=/usr/local/mysql
  2.6 生成MySQL启动脚本并运行,以及mysql做软连接到环境变量
  # cp support-files/mysql.server /etc/init.d/mysqld
  # chmod 755 /etc/init.d/mysqld
  # /etc/init.d/mysqld start
  # echo $PATH
  /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  # cd /usr/bin
  # ll | grep mysql
  # ln -s /usr/local/mysql/bin/mysql ./
  # ll | grep mysql
  lrwxrwxrwx. 1 root root         26 5月27 20:26 mysql -> /usr/local/mysql/bin/mysql
  2.7 设置root密码以及其他安全相关设置
  # /usr/local/mysql/bin/mysql_secure_installation
  root:root
  2.8 设置系统启动自行启动MySQL
  # chkconfig --add mysqld
  # chkconfig mysqld on
  # chkconfig --list | grep mysql
  2.9 开始触碰MySQL
  # /usr/local/mysql/bin/mysql -uroot -p
  Enter password: ****
  mysql> status
  --------------
  /usr/local/mysql/bin/mysqlVer 14.14 Distrib 5.6.16, for Linux (x86_64) usingEditLine wrapper

  Connection>  Current database:
  Current user:root@localhost
  SSL:Not in use
  Current pager:stdout
  Using outfile:''
  Using delimiter:;
  Server version:5.6.16 Source distribution
  Protocol version:10
  Connection:Localhost via UNIX socket
  Server characterset:utf8
  Db   characterset:utf8
  Client characterset:utf8
  Conn.characterset:utf8
  UNIX socket:/tmp/mysql.sock
  Uptime:9 min 6 sec
  Threads: 1Questions: 35Slow queries: 0Opens: 70Flush tables: 1Open tables: 63Queries per second avg: 0.064
  --------------
  mysql> exit;
  #
  3:开始安装PHP
  3.1 解压等基本操作
  # tar xvzf php-5.5.11.tar.gz
  # cd php-5.5.11
  3.2 mysql/lib做软连接,识别成64位
  # ln -s /usr/local/mysql/lib /usr/local/mysql/lib64
  3.3 编译开始
  #
  ./configure --prefix=/usr/local/php \
  --with-libdir=lib64 \
  --with-config-file-path=/usr/local/php/etc \
  --with-mysql=/usr/local/mysql \
  --with-mysqli=/usr/local/mysql/bin/mysql_config \
  --with-pear=/usr/share/php \
  --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 \
  --enable-maintainer-zts \
  --enable-opcache \
  --with-curl \
  --with-iconv-dir=/usr/local/lib64 \
  --enable-fpm \
  --enable-mbstring \
  --with-mcrypt \
  --with-gd \
  --enable-gd-native-ttf \
  --with-mhash \
  --enable-pcntl \
  --enable-sockets \
  --with-xmlrpc \
  --enable-zip \
  --enable-soap \
  --with-bz2 \
  --enable-static \
  --enable-exif \
  --with-pdo-mysql=/usr/local/mysql
  3.3.1 error出现解决方法
  错误1 : configure: error: Don’t know how to define struct flock on this system, set –enable-opcache=no
  解决方法1
  # vim /etc/ld.so.conf.d/local.conf
  # cat /etc/ld.so.conf.d/local.conf
  /usr/local/lib64
  # ldconfig -v
  解决方法2
  # yum groupinstall "Development tools"
  解决方法3
  ln -s /usr/local/mysql/lib64/libmysqlclient.so /usr/lib/
  ln -s /usr/local/mysql/lib64/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
  3.4 make
  # make
  3.4.1 error出现解决方法
  错误1 :/usr/local/src/php-5.5.11/ext/xmlrpc/libxmlrpc/encodings.c:73: undefined reference to `libiconv_open'
  /usr/local/src/php-5.5.11/ext/xmlrpc/libxmlrpc/encodings.c:81: undefined reference to `libiconv'
  /usr/local/src/php-5.5.11/ext/xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close'
  collect2: ld returned 1 exit status
  make: *** 错误 1
  解决方法1:
  # make clean
  # vim Makefile
  /EXTRA_LIBS
  EXTRA_LIBS = ..... -lcrypt -liconv
  :wq
  解决方法2:
  #make ZEND_EXTRA_LIBS='-liconv'
  3.5 make install
  # make install
  3.6 拷贝php.ini及修改文件
  # cp -f php.ini-production /usr/local/php/etc/php.ini
  # cp /usr/local/php/etc/php.ini /usr/local/php/etc/php.ini.bak
  # vim /usr/local/php/etc/php.ini
  202: short_open_tag = Off (看老代码风格开启或关闭)
  452行: error_reporting = E_ALL & ~E_STRICT
  470行: display_errors = On
  720行: extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20121212/"
  917: date.timezone = PRC
  最后一行:
  zend_extension=opcache.so
  3.7 php-fpm测试及开始启动
  # cd /usr/local/php/etc
  # cp php-fpm.conf.default php-fpm.conf
  # vim php-fpm.conf
  33 error_log = /var/log/php/php-fpm.log
  # /usr/local/php/sbin/php-fpm -t
  # /usr/local/php/sbin/php-fpm
  3.8 php-fpm软重启
  # killall -USR2 /usr/local/php/sbin/php-fpm
  3.9 执行文件放到环境变量,做软连接
  # cd /usr/bin
  # ln -s /usr/local/php/bin/php ./
  # ln -s /usr/local/php/bin/php-config ./
  # ln -s /usr/local/php/bin/phpize ./
  # ln /usr/local/php/sbin/php-fpm ./
  lrwxrwxrwx.   1 root root          22 5月28 13:03 php -> /usr/local/php/bin/php
  lrwxrwxrwx.   1 root root          29 5月28 13:04 php-config -> /usr/local/php/bin/php-config
  -rwxr-xr-x.   2 root root    32835686 5月28 00:30 php-fpm
  lrwxrwxrwx.   1 root root          25 5月28 13:05 phpize -> /usr/local/php/bin/phpize
  3.10 自动启动PHP服务
  # pwd
  /usr/local/src/php-5.5.11/sapi/fpm
  # cat init.d.php-fpm.in | less
  # cp init.d.php-fpm.in /etc/init.d/php-fpm
  # vim /etc/init.d/php-fpm
  prefix=/usr/local/php
  exec_prefix=${prefix}
  php_fpm_BIN=${prefix}/sbin/php-fpm
  php_fpm_CONF=${prefix}/etc/php-fpm.conf
  php_fpm_PID=/var/run/php-fpm.pid
  # vim /usr/local/php/etc/php-fpm.conf
  pid = /var/run/php-fpm.pid
  # chmod 755 /etc/init.d/php-fpm
  # /etc/init.d/php-fpm stop
  # /etc/init.d/php-fpm start
  # chkconfig --add php-fpm
  # chkconfig php-fpm on
  # service php-fpm restart
  4:开始安装TNginx
  4.1 指定web目录
  # groupadd www
  # useradd -g www www
  # mkdir -p /www/141.com/
  # chmod +w /www/141.com/
  # chown -R www:www /www/141.com/
  4.2 安装PCRE
  # rpm -qa |grep pcre
  pcre-7.8-6.el6.x86_64
  # cp /lib64/libpcre.so.0 /
  # rpm -e --nodeps pcre-7.8-6.el6.x86_64
  # cp /libpcre.so.0 /lib64/
  # wget -c http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.bz2
  # tar jxvf pcre-8.35.tar.bz2
  # cd pcre-8.35
  # ./configure --prefix=/usr/local --libdir=/usr/local/lib64
  # make && make install
  # ln -s /usr/local/lib64/libpcre.so.1 /lib64/
  4.3 安装TNginx
  4.3.1 解压
  # tar zxvf tengine-2.0.1.tar.gz
  # cd tengine-2.0.1
  4.3.2 编译及安装
  # ./configure --user=www --group=www --prefix=/usr/local/nginx
  # make && make install
  4.3.3 配置nginx文件
  # cd /usr/local/nginx/conf/
  # vim nginx.conf
  userwww www;
  worker_processes4;
  error_log/var/log/nginx/error.log;
  pid      /var/log/nginx/nginx.pid;
  gzipon;
  include vhosts/*;
  4.3.4 编辑vhost下的conf文件
  # mkdir vhosts
  # cd vhosts
  # vim www.141.com.conf
  server {
  listen       80;
  server_name www.141.com;
  root    /www/141.com/www/app/;
  indexindex.php index.html index.htm;
  access_log /var/log/nginx/www.141.com/access.log;
  error_page404            /index.php;
  error_page   500 502 503 504/50x.html;
  charset utf-8;
  location ~* ^.+.(jpg|jpeg|gif|css|png|js|html|htm)$ {
  expires         1d;
  break;
  }
  location ~* ^/(images|javascript|js|css|flash|media|static)/ {
  expires 1d;
  }
  location / {
  if (!-e $request_filename){
  rewrite ^/(.*) /index.php last;
  }
  }
  location ~* ^.+.(php|php5)$ {
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_indexindex.php;
  fastcgi_paramSCRIPT_FILENAME/www/141.com/www/app/$fastcgi_script_name;
  include      fastcgi_params;
  }
  }
  4.3.5 开启nginx
  # /usr/local/nginx/sbin/nginx
  4.3.6 做nginx软连接
  # cd /usr/bin/
  # ln -s /usr/local/nginx/sbin/nginx ./
  4.3.7 检查是否Nginx+MySQL+PHP联动成功
  # cd /www/141.com/www/app/
  # echo "
页: [1]
查看完整版本: Centos6.4 + PHP5.5.11 + Mysql5.6.16 + Tnginx2.02 + Memcached1.4.17 + Redis2.2