技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录注册

下次自动登录
现在的位置: 首页LNMP>正文
CentOS 6.2 yum安装配置lnmp服务器(Nginx+PHP+MySQL)
2012年02月14日 LNMP 评论数 44 ⁄ 被围观 52,400次+


准备篇:

1、配置防火墙,开启80端口、3306端口
       vi /etc/sysconfig/iptables
       -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙)
       -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允许3306端口通过防火墙)
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面
添加好之后防火墙规则如下所示:
#########################################################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#########################################################
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接
/etc/init.d/iptables restart  #最后重启防火墙使配置生效

2、关闭SELINUX
       vi /etc/selinux/config
       #SELINUX=enforcing       #注释掉
       #SELINUXTYPE=targeted    #注释掉
       SELINUX=disabled         #增加
       :wq  保存,关闭
       shutdown -r now   #重启系统

3、配置CentOS 6.2 第三方yum源(CentOS默认的标准源里没有nginx软件包
       yum install wget    #安装下载工具wget
       wget http://www.atomicorp.com/installers/atomic  #下载atomic yum源
       sh ./atomic   #安装
       yum check-update  #更新yum软件包
#############################################################################
安装篇:

一、安装nginx
       yum install nginx      #安装nginx,根据提示,输入Y安装即可成功安装
       service nginx start    #启动
       chkconfig  nginx on    #设为开机启动
       /etc/init.d/nginx  restart  #重启
       rm -rf /usr/share/nginx/html/*  #删除ngin默认测试页

二、安装MySQL
       1、安装mysql

 yum install mysql mysql-server   #询问是否要安装,输入Y即可自动安装,直到安装完成
       /etc/init.d/mysqld start   #启动MySQL
       chkconfig mysqld on   #设为开机启动
       cp /usr/share/mysql/my-medium.cnf   /etc/my.cnf  #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
       shutdown -r now  #重启系统

2、为root账户设置密码
       mysql_secure_installation
       回车,根据提示输入Y
       输入2次密码,回车
       根据提示一路输入Y
       最后出现:Thanks for using MySQL!

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接
       MySql密码设置完成,重新启动 MySQL:
      /etc/init.d/mysqld stop   #停止
      /etc/init.d/mysqld start  #启动
      service mysqld restart    #重启

三、安装PHP
       1、安装PHP
       yum install php   #根据提示输入Y直到安装完成 
       2、安装PHP组件,使PHP支持 MySQL、PHP支持FastCGI模式
      yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel php-fpm           #根据提示输入Y回车
      /etc/init.d/mysqld restart  #重启MySql
      /etc/init.d/nginx  restart  #重启nginx
      /etc/rc.d/init.d/php-fpm  start  #启动php-fpm
      chkconfig php-fpm on  #设置开机启动
#############################################################################
配置篇

一、配置nginx支持php
       cp /etc/nginx/nginx.conf  /etc/nginx/nginx.confbak    #备份原有配置文件
       vi /etc/nginx/nginx.conf  #编辑
       user   nginx  nginx;  #修改nginx运行账号为:nginx组的nginx用户
       :wq!    #保存退出

cp /etc/nginx/conf.d/default.conf  /etc/nginx/conf.d/default.confbak   #备份原有配置文件
vi /etc/nginx/conf.d/default.conf   #编辑

index  index.php index.html index.htm;   #增加index.php

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接
  # 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   $document_root$fastcgi_script_name;
    include        fastcgi_params;
  }
     #取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径

二、配置php

  vi  /etc/php.ini   #编辑

  date.timezone = PRC     #在946行 把前面的分号去掉,改为date.timezone = PRC

  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
                          #在386行 列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
  expose_php = Off        #在432行 禁止显示php版本的信息
  magic_quotes_gpc = On   #在745行 打开magic_quotes_gpc来防止SQL注入
  open_basedir = .:/tmp/  #在380行,设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题,可注销此行,或者直接写上程序目录路径/var/www/html/www.osyunwei.com/:/tmp/
      :wq!  #保存退出

三、配置php-fpm

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接
       cp /etc/php-fpm.d/www.conf   /etc/php-fpm.d/www.confbak   #备份原有配置文件
       vi /etc/php-fpm.d/www.conf   #编辑
       user = nginx   #修改用户为nginx
       group = nginx   #修改组为nginx

 /etc/init.d/mysqld restart  #重启MySql
       /etc/init.d/nginx  restart  #重启nginx
       /etc/rc.d/init.d/php-fpm  restart  #重启php-fpm
#############################################################################
测试篇
     
cd  /usr/share/nginx/html/   #进入nginx默认网站根目录
       vi  index.php   #新建index.php文件

<?php
           phpinfo();
       ?>
       :wq! #保存

chown nginx.nginx /usr/share/nginx/html/ -R  #设置目录所有者

chmod 700  /usr/share/nginx/html/ -R   #设置目录权限

在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!
#############################################################################

备注

nginx默认站点目录是:/usr/share/nginx/html/

权限设置:chown nginx.nginx /usr/share/nginx/html/ -R

MySQL数据库目录是:/var/lib/mysql

权限设置:chown mysql.mysql -R  /var/lib/mysql

此教程目前(2012.2.14)安装Nginx+PHP+MySQL版本如下:

     

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

目前有 44 条留言 其中:访客:43 条, 博主:0 条 引用: 1

  1. 李双午 : 2012年02月15日13:36:18  1楼

    我自己没这样搞过,一直用一键包的,有空学学!

  2. Tabcn : 2012年02月15日13:37:30  2楼

    非常感谢,我正在找一个详细LNMP资料

    我想问一下,YUM安装,mysql安装是那个版本?

  3. Kylin : 2012年02月15日16:19:18  3楼

    学习了!

  4. Ansen : 2012年02月17日17:26:42  4楼

    照着博主的做了,成功了
    下次不看文章,自己做做看

  5. xiao_min : 2012年02月24日11:01:21  5楼

    源码编译和yum安装有区别不?我照着你写的源码编译,死在mysql上了.打算用yum安装,楼主好像没有装zend额.

    • qihang01 : 2012年02月24日19:27:30

      1、不是死在MySQL上,是你没有耐心的等待,MySQL编译安装的过程中,会有一段时间会比较慢,感觉像是卡死了一样!
      特别注意:在执行make install编译的过程中,如果你看到屏幕上出现下面这一行,卡在那里,很久都过不去,千万别以为是编译错误了,或者服务器
      卡住了,只需要坚持,耐心的等待几分钟,就会编译成功!Mysql编译安装告诉我们,任何事情,只要坚持下去,终会成功!
      make[4]: Entering directory `/usr/local/src/mysql-5.1.59/mysql-test’
      ###################################################################
      2、Zend安装教程:CentOS安装php加速软件Zend Guard
      http://www.osyunwei.com/archives/577.html
      3、CentOS安装php加速软件Zend Optimizer 3.3.9
      http://www.osyunwei.com/archives/855.html

      • xiao_min : 2012年02月26日09:47:51

        楼主,能不能讲下,怎么配置nginx,我网里面添加域名,网站会显示
        The website you were trying to reach is temporarily unavailable.
        Please check back soon.

        If you are the owner of this website, please contact Technical Support as soon as possible.

        /etc/nginx/conf.d/www.lankering.me.conf
        server
        {
        listen 184.82.162.227:80;
        server_name http://www.lankering.me *.lankering.me;
        error_page 404 /404.html;
        access_log logs/www.lankering.me.access.log;
        location /{
        root /www/lankering/;
        index index.htm index.html index.php;
        }
        location ~/\.php{
        deny all;
        }
        }

        • qihang01 : 2012年02月28日08:45:33

          查看网站目录权限设置!

          • xiao_min : 2012年02月29日09:39:32

            chown nginx.nginx /你的网站目录/ -R #设置目录所有者

            chmod 700 /你的网站目录/ -R #设置目录权限
            这个要设置下,不然会502bad gateway.谢谢楼主,我终于弄好了, :razz:

      • xiao_min : 2012年02月26日10:14:24

        我源码编译报的不是那错,是mysql的密码设置,ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES).yum安装的时候也会,然后网站找到方法了.

      • zaza : 2012年04月07日10:43:39

        5.5.X貌似没有这个问题了

  6. xiao_min : 2012年02月24日11:21:30  6楼

    Enter current password for root (enter for none):
    ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
    设mysql会这样,

  7. Tony : 2012年02月27日17:28:01  7楼

    我原来已经安装好了PHP和MySQL。只是安装您的步骤安装了NGIX,然后安装步骤修改了相关参数。但是后来发现MySQL的服务无法启动了。请问是何原因。MySQL,PHP和NGIX都已经通过YUM update升级到了最新版本。

    • Tony : 2012年02月27日17:30:55

      对了。为了启用NGIX,我把原来Apache给停了。请问,这样是否可以,直接按照步骤安装NGIX?

      • qihang01 : 2012年02月28日08:42:25

        可以!或者apache默认端口80改一下!

        • Tony : 2012年02月28日11:17:27

          按照你的另外一篇文章的做法,已经搞好了。只需停掉Httpd服务即可。
          解决方法(切记,操作前,一定备份mysql数据库):
          rm -fr /var/lib/mysql/* #删除目录
          rm /var/lock/subsys/mysqld #删除目录
          killall mysqld #结束mysql进程
          service mysqld start #启动mysql
          /etc/rc.d/init.d/mysqld status #查看mysql状态
          mysql_secure_installation #重置Mysql数据库密码
          Mysql的Worksbenche也可以远程操作了, 谢谢!

          • qihang01 : 2012年02月28日17:45:13

            任何操作之前备份是个好习惯!

    • qihang01 : 2012年02月28日08:43:36

      具体的错误信息是什么?请加群讨论!

  8. Tony : 2012年03月14日16:18:00  8楼

    安装完 LNMP之后,各个服务启动正常。MySQL的远程访问也正常。但是我在浏览器里面输入地址时,返回以下错误:
    403 Forbidden
    nginx/1.0.12
    LNMP安装在VMware虚拟机,浏览时通过安装在宿主机的QQ浏览器。
    如果提交这个的话(http://192.168.199.138/index.php), 返回如下:

    请问这是什么原因?
    谢谢!

    • qihang01 : 2012年03月14日22:52:15

      nginx目录权限设置

      • Tony : 2012年03月14日23:47:08

        是按照你的说明操作吗?
        nginx默认站点目录是:/usr/share/nginx/html/
        权限设置:chown nginx.nginx /usr/share/nginx/html/ -R

  9. vergil : 2012年03月19日15:44:44  9楼

    在客户端测试里显示File not Found怎么回事

  10. xiao_min : 2012年03月20日10:34:08  10楼

    楼主,能说说怎么装perl吗?网站没法伪静态.

  11. zhen : 2012年03月30日09:35:14  11楼

    location ~ \.htm$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }

    楼主有没有试过这样?php解析htm文件,会把access denied的错误,怎么解决

  12. ailmedia : 2012年04月16日11:02:28  12楼

    nginx 修改了网站目录,访问不到是什么原因?依旧认到原目录。

  13. 12494 : 2012年05月10日02:25:05  13楼

    请问下。我用centos5.8版本的可以用这个教程安装吗?
    :razz:

  14. 龙龙 : 2012年06月26日23:46:28  14楼

    我用军哥的lnmp0.9版装在CentOS6.2上,网站用了CDN加速…把SHH默认端口改了其他,在防火墙上就没有加22端口只加了改了的端口,,还有80端口和禁止了一个IP段,,然后重启SHH和防火墙,发现并没有封掉我设置的IP段开始以为CDN问题导致,然后试着重启系统,悲剧就发生了,全球ping不通,就算我把SHH端口设置错误了,但我80端口还是开启了的,想想那次的折腾害我现在想改什么东西都用虚拟机搭建一个系统测试再上VPS上做….不过现在还没解决这个IP段的问题,博主可以解答一下吗?是否用了CDN不能封闭IP??但我看nginx日志时第一个IP是CDN 的IP,然后最后处是可以看到用户的IP的,比如百度蜘蛛的IP都是可以记录的,真想不明白啊……..

  15. 心在等候 : 2012年06月27日04:03:52  15楼

    在虚拟机上装了centos6.2 ,但是重启centos 测试网页都打不开了,终于找到解决方法了,呵呵,

  16. jonny77 : 2012年08月03日18:00:09  16楼

    为什么我按照这里的安装了 我的php.ini只有二三十行

  17. chromie : 2012年08月19日22:08:58  17楼

    请问为什么要关团:SELINUX呢

  18. 25780755@qq.com : 2012年09月04日09:49:56  18楼

    非常好 ,按照教程来 一次成功

  19. 骑着蜗牛闯红灯 : 2012年10月25日11:11:32  19楼

    我的怎么没有成功啊 ,写入IP什么也没有

  20. Lesedi : 2012年12月17日17:58:32  20楼

    写得很详细

查看来自外部的引用: 1

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2017 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接