设为首页 收藏本站
查看: 758|回复: 0

CentOS 5.5编译安装lnmp

[复制链接]

尚未签到

发表于 2015-8-21 11:37:19 | 显示全部楼层 |阅读模式
如果是安装Centos6.5记得Perl是必选的,否则无法安装VMWare Tools!!!!切记

如果出现make错误需要安装其他软件,装好后



make clean

make install clean   清理编译生成的





  Web服务器架构:Linux+Nginx+MySQL+PHP
  具体版本:CentOS 5.5+Nginx1.0.15+MySQL5.5.23+PHP5.3.10
  系统安装教程:CentOS 5.5安装图解教程
  http://www.osyunwei.com/archives/3625.html
  准备篇:
  一、配置好IP、DNS 、网关,确保使用远程连接工具能够连接服务器
  CentOS 设置IP地址、网关、DNS教程:
  http://www.osyunwei.com/archives/423.html
  二、配置防火墙,开启80端口、3306端口
  vi /etc/sysconfig/iptables   #编辑防火墙配置文件
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
  系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接
  特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面
  添加好之后防火墙规则如下所示:
  #####################################################################
  # Firewall configuration written by system-config-securitylevel
  # Manual customization of this file is not recommended.
  *filter
  :INPUT ACCEPT [0:0]
  :FORWARD ACCEPT [0:0]
  :OUTPUT ACCEPT [0:0]
  :RH-Firewall-1-INPUT - [0:0]
  -A INPUT -j RH-Firewall-1-INPUT
  -A FORWARD -j RH-Firewall-1-INPUT
  -A RH-Firewall-1-INPUT -i lo -j ACCEPT
  -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
  -A RH-Firewall-1-INPUT -p 50 -j ACCEPT
  -A RH-Firewall-1-INPUT -p 51 -j ACCEPT
  -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
  -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
  -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
  -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
  -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
  COMMIT
  #####################################################################
  /etc/init.d/iptables restart #最后重启防火墙使配置生效
  三、关闭SELINUX
  vi /etc/selinux/config #编辑配置文件
  #SELINUX=enforcing #注释掉
  #SELINUXTYPE=targeted #注释掉
  SELINUX=disabled #增加
  :wq #保存
  shutdown -r now #重启系统
  四 、系统约定
  软件源代码包存放位置:/usr/local/src
  源码包编译安装位置:/usr/local/软件名字
  五、下载软件包
  1、下载nginx(目前稳定版)
  http://nginx.org/download/nginx-1.0.15.tar.gz
  2、下载pcre (支持nginx伪静态)
  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz
  3、下载MySQL
  http://mysql.mirrors.pair.com/Downloads/MySQL-5.5/mysql-5.5.23.tar.gz
  4、下载php
  http://cn.php.net/distributions/php-5.3.10.tar.gz
  5、下载cmake(MySQL编译工具)
  http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz
  6、下载libmcrypt(PHPlibmcrypt模块)
  ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
  系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接
  7、下载Zend Guard
  http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz     #32位
  http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz   #64位
  六、安装编译工具及库文件(使用CentOS yum命令安装)
  yum install make apr* autoconf automake curl curl-devel gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat*  cpp glibc libgomp libstdc++-devel keyutils-libs-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel patch
  安装篇
  以下是用putty工具远程登录到服务器,在命令行下面操作的





  安装 libxml2步骤:




  1、解压:$tar zxvf libxml2-2.6.20.tar.gz




  2、进入解压后的安装目录:$cd libxml2-2.6.20




  3、安装三部曲:1)$./configure




  2)$make




  3)$make install




  安装完毕
  出现错误png.h not found
  

  checking for fabsf… yes checking for floorf… yes checking for jpeg_read_header in -ljpeg… yes configure: error: png.h not found.

  Fix: yum install libpng-devel
  





  一、安装libmcrypt
  cd /usr/local/src
  tar zxvf libmcrypt-2.5.7.tar.gz #解压
  cd libmcrypt-2.5.7 #进入目录
  ./configure #配置
  make #编译
  make install #安装
  二、安装cmake
  cd /usr/local/src
  tar zxvf cmake-2.8.8.tar.gz
  cd cmake-2.8.8
  ./configure
  make #编译
  make install #安装
  三、安装pcre
  cd /usr/local/src
  mkdir /usr/local/pcre #创建安装目录
  tar zxvf pcre-8.30.tar.gz
  cd pcre-8.30
  ./configure --prefix=/usr/local/pcre #配置
  make
  make install
  四、安装mysql
  



一:卸载旧版本
  使用下面的命令检查是否安装有MySQL Server

rpm -qa | grep mysql
  有的话通过下面的命令来卸载掉

rpm -e mysql   //普通删除模式
rpm -e --nodeps mysql    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
二:安装MySQL

安装编译代码需要的包

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel
下载MySQL 5.6.14

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz
tar xvf mysql-5.6.14.tar.gz
cd mysql-5.6.14
编译安装

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install
  编译的参数可以参考http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html。
  整个过程需要30分钟左右……漫长的等待

三:配置MySQL

设置权限
  使用下面的命令查看是否有mysql用户及用户组

cat /etc/passwd 查看用户列表
cat /etc/group  查看用户组列表
  如果没有就创建

groupadd mysql
useradd -g mysql mysql
  修改/usr/local/mysql权限

chown -R mysql:mysql /usr/local/mysql
  修改/usr/local/mysql权限

初始化配置
  进入安装路径

cd /usr/local/mysql
  进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
  注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。





  
  如果安装完mysql后启动不成功提示下面错误
  




  
  Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.pid).
  




  
  解决办法:
  




  
  1.设置mysql安装目录的用户和权限
  




  
  chmod 0777 /usr/local/mysql -R
  




  
  2.初始化mysql表
  




  
  /usr/local/mysql/scripts/mysql_install_db --user=mysql
  




  
  如果还不行 手动建立目录 /var/lib/mysql/ 并设置权限为 0777
  




  
  在启动mysql应该就可以了
  





  

启动MySQL
  添加服务,拷贝服务脚本到init.d目录,并设置开机启动

cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start  --启动MySQL
配置用户
  MySQL启动成功后,root默认没有密码,我们需要设置root密码。
  设置之前,我们需要先设置PATH,要不不能直接调用mysql
  修改/etc/profile文件,在文件末尾添加

PATH=/usr/local/mysql/bin:$PATH
export PATH
  关闭文件,运行下面的命令,让配置立即生效

source /etc/profile
  现在,我们可以在终端内直接输入mysql进入,mysql的环境了
  执行下面的命令修改root密码

mysql -uroot  
mysql> SET PASSWORD = PASSWORD('123456');
  若要设置root用户可以远程访问,执行

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
  红色的password为远程访问时,root用户的密码,可以和本地不同。

配置防火墙
  防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口
  打开/etc/sysconfig/iptables
  在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT
  然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:

service iptables restart

OK,一切配置完毕,你可以访问你的MySQL了~

来源: <http://www.iyunv.com/xiongpq/p/3384681.html>




  到此,mysql安装完成!
  五、安装 nginx
  groupadd www #添加运行www组
  useradd -g www www -s /bin/false #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统
  cd /usr/local/src
  tar zxvf nginx-1.0.15.tar.gz
  cd nginx-1.0.15
  ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.30
  注意:--with-pcre=/usr/local/src/pcre-8.30指向的是源码包解压的路径,而不是安装的路径,否则会报错
  系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接
  make  #编译
  make install  #安装
  /usr/local/nginx/sbin/nginx #启动nginx
  设置nginx开启启动
  vi /etc/rc.d/init.d/nginx #编辑启动文件添加下面内容
  =======================================================
  #!/bin/bash
  # nginx Startup script for the Nginx HTTP Server
  # it is v.0.0.2version.
  # chkconfig: - 85 15
  # description: Nginx is a high-performance web and proxy server.
  # It has a lot of features, but it's not for everyone.
  # processname: nginx
  # pidfile: /var/run/nginx.pid
  # config: /usr/local/nginx/conf/nginx.conf
  nginxd=/usr/local/nginx/sbin/nginx
  nginx_config=/usr/local/nginx/conf/nginx.conf
  nginx_pid=/usr/local/nginx/logs/nginx.pid
  RETVAL=0
  prog="nginx"
  # Source function library.
  . /etc/rc.d/init.d/functions
  # Source networking configuration.
  . /etc/sysconfig/network
  # Check that networking is up.
  [ ${NETWORKING} = "no" ] && exit 0
  [ -x $nginxd ] || exit 0
  # Start nginx daemons functions.
  start() {
  if [ -e $nginx_pid ];then
  echo "nginx already running...."
  exit 1
  fi
  echo -n $"Starting $prog: "
  daemon $nginxd -c ${nginx_config}
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
  return $RETVAL
  }
  # Stop nginx daemons functions.
  stop() {
  echo -n $"Stopping $prog: "
  killproc $nginxd
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
  }
  reload() {
  echo -n $"Reloading $prog: "
  #kill -HUP `cat ${nginx_pid}`
  killproc $nginxd -HUP
  RETVAL=$?
  echo
  }
  # See how we were called.
  case "$1" in
  start)
  start
  ;;
  stop)
  stop
  ;;
  reload)
  reload
  ;;
  restart)
  stop
  start
  ;;
  status)
  status $prog
  RETVAL=$?
  ;;
  *)
  echo $"Usage: $prog {start|stop|restart|reload|status|help}"
  exit 1
  esac
  exit $RETVAL
  系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接
  =======================================================
  :wq!  #保存退出
  chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限
  chkconfig nginx on #设置开机启动
  /etc/rc.d/init.d/nginx restart  #重启nginx
  service nginx restart #重启nginx
  =======================================================
  六、安装php
  cd /usr/local/src
  tar -zvxf php-5.3.10.tar.gz
  cd php-5.3.10
  mkdir -p /usr/local/php5 #建立php安装目录
  ./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-gd --with-iconv  --with-zlib  --enable-xml --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex  --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl #配置
  make #编译
  make install #安装
  cp php.ini-production /usr/local/php5/etc/php.ini #复制php配置文件到安装目录
  rm -rf /etc/php.ini #删除系统自带配置文件
  ln -s /usr/local/php5/etc/php.ini /etc/php.ini #添加软链接
  cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
  vi /usr/local/php5/etc/php-fpm.conf #编辑
  user = www #设置php-fpm运行账号为www
  group = www #设置php-fpm运行组为www
  pid = run/php-fpm.pid #取消前面的分号
  设置 php-fpm开机启动
  cp /usr/local/src/php-5.3.10/sapi/fpm/init.d.php-fpm   /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录
  chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限
  chkconfig php-fpm on #设置开机启动
  vi /usr/local/php5/etc/php.ini #编辑配置文件
  找到:;open_basedir =
  修改为:open_basedir = .:/tmp/ #防止php木马跨站,重要!!注意:如果设置之后,程序不能安装,出现空白页面等错误(例如Discuz_X2.5),可以先取消设置,待安装完成之后再设置生效)
  找到:disable_functions =
  修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
  #列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
  找到:;date.timezone =
  修改为:date.timezone = PRC #设置时区,PRC代表中国
  找到:expose_php = On
  修改为:expose_php = OFF #禁止显示php版本的信息
  系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接
  七、配置nginx支持php
  vi  /usr/local/nginx/conf/nginx.conf  #修改配置文件
  user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php5/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
  index index.php index.html index.htm; #添加index.php
  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  #
  location ~ \.php$ {
  root html;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;  #指定路径
  include fastcgi_params;
  }
  #取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用站点目录绝对路径
  /etc/init.d/nginx restart #重启nginx
  八、配置php支持Zend Guard
  系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接
  安装Zend Guard
  cd /usr/local/src
  mkdir /usr/local/zend #建立Zend安装目录
  tar xvfz ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz #解压安装文件
  cp ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/ZendGuardLoader.so /usr/local/zend/ #拷贝文件到安装目录
  vi /usr/local/php5/etc/php.ini #编辑文件
  在最后位置添加以下内容
  [Zend Guard]
  zend_extension=/usr/local/zend/ZendGuardLoader.so
  zend_loader.enable=1
  zend_loader.disable_licensing=0
  zend_loader.obfuscation_level_support=3
  zend_loader.license_path=
  测试篇
  cd /usr/local/nginx/html/ #进入nginx默认网站根目录
  rm -rf /usr/local/nginx/html/* #删除默认测试页
  vi index.php #新建index.php文件
  <?php
  phpinfo();
  ?>
  :wq! #保存
  chown www.www /usr/local/nginx/html/ -R #设置目录所有者
  chmod 700 /usr/local/nginx/html/ -R #设置目录权限
  shutdown -r now #重启
  在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!
  service nginx restart #重启nginx
  service mysqld restart #重启mysql
  /usr/local/php5/sbin/php-fpm #启动php-fpm
  /etc/rc.d/init.d/php-fpm restart #重启php-fpm
  /etc/rc.d/init.d/php-fpm stop #停止php-fpm
  /etc/rc.d/init.d/php-fpm start #启动php-fpm
  #############################################################################
  备注:
  nginx默认站点目录是:/usr/local/nginx/html/
  权限设置:chown www.www /usr/local/nginx/html/ -R
  MySQL数据库目录是:/data/mysql
  权限设置:chown mysql.mysql -R /data/mysql


现在centos5.5下安装lnmp运行环境搭建完成

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-102148-1-1.html 上篇帖子: vps安装wordpress遇到的问题(lnmp) 下篇帖子: linux LNMP自动安装脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表