vbfh 发表于 2015-11-16 11:48:36

Centos 6.5 搭建LNMP服务器(nginx+mysql+php)

  以前只是在centos环境下写c/c++代码,没有搭建过什么服务器,因为项目需要,所以现在要将项目中用到的服务器部署在现网上,在搭建过程中遇到了一些问题,现在将自己的一些经验贴出来,供大家分享
  1、防火墙开放端口
  nginx :默认是80 ,也可以添加server,并设置监听端口,我这里再增加一个端口8186
  mysql:默认是3306
  mongo:nosql数据库,默认是27017
  注意:
  如果你的系统是刚装的,因为不存在/etc/sysconfig/iptables配置文件,你可以用如下命令开放端口
  /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  /sbin/iptables -I INPUT -p tcp --dport 8180 -j ACCEPT


  /sbin/iptables -I INPUT -p tcp --dport 8186 -j ACCEPT


  /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT


  /sbin/iptables -I INPUT -p tcp --dport 27017 -j ACCEPT


  如果你的系统已经存在配置文件/etc/sysconfig/iptables,可以直接编辑配置文件/etc/sysconfig/iptables,添加如下内容:
  -A INPUT -p tcp -m tcp --dport 8186 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 27017 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 8180 -j ACCEPT


  修改完毕后,重启防火墙,命令如下
  service iptables restart 或者/etc/init.d/iptables restart
  2、安装mysql数库服务器
  有两种安装方式,一种到官网下载源码进行安装,另一种直接使用yum命令安装,yum命令安装的方式可能安装的版本比较旧,如果你想使用最新的版本,建议采用下载源码的方式安装。
  我这里采用yum命令安装
  yum install mysql mysql-server -y
  安装完成后,启动mysql数据库,启动方式如下:
  service mysqld start 或者/etc/init.d/mysqld start
  (1)设置root用户密码
  mysql数据库安装完成后只有一个root管理员账号,但是此时的root账号还没有设置密码,现在我们来设置root用户密码
  

/usr/bin/mysqladmin -u root password 'new-password'  // 为root账号设置密码
或者mysqladmin -u root password 'new-password'  
  还可以直接执行mysql命令,在mysql命令行里面设置密码
  mysql -u root
  mysql> set password for root@localhost=password('在这里填入root密码');  ← 设置root密码


  授权:
  任何主机连接MySQL服务器


  mysql>GRANT
ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;


  指定主机连接mysql服务器
  mysql>GRANT ALL PRIVILEGES
ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
  mysql>FLUSH
PRIVILEGES
  设置完成后,执行exit命令退出
  (2)创建数据库
  用root用户登录
  # mysql -u root -p
  mysql>输入root用户密码
  mysql>create database mydb;
  mysql>exit
  (3)创建表或者导入数据
  可以通过mysql命令创建表和插入数据,这里用命令导入我之前准备好的数据库表的sql脚本
  mysql -u root -p 数据库名 <数据库脚本,然后输入密码,就会打印导入成功或者失败
  将数据库中的数据导出
  mysqldump -u root -p 数据库名 > 数据库脚本
  3、安装nginx服务器
  可以采用源码安装和yum安装,采用源码安装,不需要联网,yum安装必须要联网
  yum install nginx -y
  启动nginx
  service nginx start 或者/etc/init.d/nginx start
  配置nginx
  
  cp /etc/nginx/nginx.conf/etc/nginx/nginx.confbak    #备份原有配置文件

vi /etc/nginx/nginx.conf#编辑

usernginxnginx;#修改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 PHPscripts to FastCGI server listening on 127.0.0.1:9000

#

location ~ \.php$ {

   root          html;

   fastcgi_pass   127.0.0.1:9000;

   fastcgi_indexindex.php;

   fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;

   include       fastcgi_params;

}

#取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径

增加自定义接口(这里我在php服务打开8180用于自己的接口服务器)  

server {
listen       8180;
root /home/api/wwwroot;
charset utf-8;
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
#location / {
#      indexindex.php index.html index.htm;
#}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

}
}


  
  4、安装php服务器
  安装php
  yum install php -y
  安装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回车


  配置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_restore,dl,openlog,syslog,readlink
  ,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen
  ,disk_free_space,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/

配置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/nginxrestart#重启nginx

/etc/rc.d/init.d/php-fpmrestart#重启php-fpm



5、测试  
  cd /usr/share/nginx/html/   #进入nginx默认网站根目录

viindex.php   #新建index.php文件
  <?php

   phpinfo();
  ?>

:wq  在浏览器中输入ip进行访问
  6、mongodb的安装
  
  1、下载MongoDB(64位)
  http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz
  或
  http://pan.baidu.com/s/1mgyRB8c
  2、安装MongoDB(安装到/usr/local)


tar zxvf mongodb-linux-x86_64-2.4.9.tgz
mv mongodb-linux-x86_64-2.4.9 mongodb
cd mongodb
mkdir db
mkdir logs
cd bin
vi mongodb.conf

dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true
  3、重新绑定mongodb的配置文件地址和访问IP

/usr/local/mongodb/bin/mongod --bind_ip localhost -f /usr/local/mongodb/bin/mongodb.conf
  4、开机自动启动mongodb

vi /etc/rc.d/rc.local
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
  5、重启一下系统测试下能不能自启

#进入mongodb的shell模式
/usr/local/mongodb/bin/mongo
#查看数据库列表
show dbs
#当前db版本
db.version();


版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: Centos 6.5 搭建LNMP服务器(nginx+mysql+php)