Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

CentOS 6.2 yum安装配置lnmp服务器(Nginx+PHP+MySQL)

[复制链接]
梁国平 发表于 2014-2-10 00:05:10 | 显示全部楼层 |阅读模式
本帖最后由 梁国平 于 2014-2-10 23:08 编辑

准备篇:

1、配置防火墙,开启80端口、3306端口(CentOS 6.3 不用操作,默认就是这样)
       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   (CentOS 6.3 不用操作)
       vi /etc/selinux/config
       #SELINUX=enforcing       #注释掉
       #SELINUXTYPE=targeted    #注释掉
       SELINUX=disabled         #增加
       :wq  保存,关闭
       shutdown -r now   #重启系统

3、配置CentOS 6.2 第三方yum源(CentOS默认的标准源里没有nginx软件包

方法1
       yum install wget    #安装下载工具wget
       wget http://www.atomicorp.com/installers/atomic  #下载atomic yum源
       sh ./atomic   #安装
       yum check-update  #更新yum软件包

方法2

[root@AY140209142437961fd2Z ~]# cd /
       [root@AY140209142437961fd2Z /]# cd /etc/yum.repos.d/
       [root@AY140209142437961fd2Z yum.repos.d]# ls
       CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo
       [root@AY140209142437961fd2Z yum.repos.d]# vim nginx.repo

i   开始编辑  回车换行

[nginx]
        name=nginx repo
        baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
        gpgcheck=0
        enabled=1

Esc 到行尾

:w   ---保存

:q   ----退出vim


       [root@AY140209142437961fd2Z yum.repos.d]# cd /
       [root@AY140209142437961fd2Z /]# yum install nginx



#############################################################################
安装篇:

一、安装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!

如果搞错了,可以 yum remove mysql mysql-server

                           yum install mysql mysql-server
       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
  # 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
       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版本如下:


#############################################################################


MySQL 首次设置过程

[root@AY140209142437961fd2Z ~]# mysql_secure_installation


NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...


All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

[root@AY140209142437961fd2Z ~]# /etc/init.d/mysqld stop
Stopping mysqld:                                           [  OK  ]
[root@AY140209142437961fd2Z ~]# /etc/init.d/mysqld start
Starting mysqld:                                           [  OK  ]
[root@AY140209142437961fd2Z ~]#  service mysqld restart   
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
[root@AY140209142437961fd2Z ~]#
###########################################################################################



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-23 17:40 , Processed in 0.024815 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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