安装CentOS 6.x + Nginx + PHP + MySQL

一、更新第三方源并升级系统 (CentOS默认的标准源里没有nginx软件包)

1.一、安装CentOS第三方yum源

**  #安装下载工具wget
    yum install wget    

    #下载atomic yum源
    wget http://www.atomicorp.com/installers/atomic  

    #安装
    sh ./atomic   

   ** 或者:
    rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

1.二、升级CentOS系统

#更新yum软件包
    yum check-update  

    #更新系统 
    yum update

二、安装和配置nginx

yum install nginx     
 
#启动
service nginx start 
   
#设为开机启动
chkconfig nginx on    

#配置防火墙,开启80端口、3306端口
vi /etc/sysconfig/iptables

#(容许80端口经过防火墙)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
#(容许3306端口经过防火墙)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

保存后重启防火墙:

/etc/init.d/iptables restart  #重启防火墙使配置生效

三、安装和配置PHP

3.一、安装PHP和相关插件

yum install -y php php-cli php-curl php-fpm php-intl php-mcrypt php-mysql php-gd php-mbstring php-xml php-dom

##3.二、修改PHP配置php

#编辑php.ini , 将如下配置的值修改成1024M
    
    vim /etc/php.ini

    post_max_size = 1024M 
    memory_limit = 1024M
    upload_max_filesize = 1024M

3.三、配置PHP-FPM

#启动php-fpm 
    
    /etc/rc.d/init.d/php-fpm start 

    #设置开机启动 
    
    chkconfig php-fpm on 

    #重启pfm 
    
    /etc/init.d/php-fpm restart

四、安装MySql和建立EduSoho数据库

4.一、安装MySql

#询问是否要安装,输入Y便可自动安装,直到安装完成
    yum install mysql mysql-server  

    #启动MySQL
    /etc/init.d/mysqld start  

    #设为开机启动
    chkconfig mysqld on   

    #拷贝配置文件(注意:若是/etc目录下面默认有一个my.cnf,直接覆盖便可)
    cp /usr/share/mysql/my-medium.cnf   /etc/my.cnf
修改用户密码:

修改root密码

CentOS 下 MySQL 管理员账号默认是 root 用户,密码为空。若是你从没设置过 MySQL 的密码,使用 root 用户来链接 MySQL 服务器不须要输入密码。

第一次设置root密码可使用如下命令:

1
mysqladmin -u root password NEWPASSWORD
若是你已经设置过密码了,须要要如下命令:

1
mysqladmin -u root -p'oldpassword' password newpass
好比说,旧密码是“12345”,新密码是“nowamagic”,执行如下命令:

1
mysqladmin -u root -p'12345' password 'nowamagic'
修改其它MySQL用户的密码

修改一个普通用户的密码你可使用如下命令,好比用户是 nmuser:

1
mysqladmin -u nmuser -p oldpassword password newpass
另外一种修改密码的方法是,MySQL 服务器把用户名和密码储存在 MySQL 数据库的 user 表中。你可使用如下方法来直接更新用户 nmuser 的密码:

1. 登陆mysql服务器:

1
mysql -u root -p
2. 选择 MySQL 数据库

1
mysql> use mysql;
3. 修改 nmuser 密码

1
mysql> update user set password=PASSWORD("NEWPASSWORD") where User='nmuser';
4. 重置权限

1
mysql> flush privileges;
2
mysql> quit
访问受权说明: 

Mysql为了安全性,在默认状况下用户只容许在本地登陆,但是在有此状况下,仍是须要使用用户进行远程链接,所以为了使其能够远程须要进行以下操做:

1、容许root用户在任何地方进行远程登陆,并具备全部库任何操做权限,具体操做以下:
在本机先使用root用户登陆mysql:
mysql -u root -p"youpassword" 
进行受权操做:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
重载受权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit


2、容许root用户在一个特定的IP进行远程登陆,并具备全部库任何操做权限,具体操做以下:
在本机先使用root用户登陆mysql:
mysql -u root -p"youpassword" 
进行受权操做:
GRANT ALL PRIVILEGES ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword" WITH GRANT OPTION;
重载受权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit


3、容许root用户在一个特定的IP进行远程登陆,并具备全部库特定操做权限,具体操做以下:
在本机先使用root用户登陆mysql:
mysql -u root -p"youpassword" 
进行受权操做:
GRANT select,insert,update,delete ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword";
重载受权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit


4、删除用户受权,须要使用REVOKE命令,具体命令格式为:
REVOKE privileges ON 数据库[.表名] FROM user-name;
具体实例,先在本机登陆mysql:
mysql -u root -p"youpassword" 
进行受权操做:
GRANT select,insert,update,delete ON TEST-DB TO test-user@"172.16.16.152" IDENTIFIED BY "youpassword";
再进行删除受权操做:
REVOKE all on TEST-DB from test-user;
****注:该操做只是清除了用户对于TEST-DB的相关受权权限,可是这个“test-user”这个用户仍是存在。
最后从用户表内清除用户:
DELETE FROM user WHERE user="test-user";
重载受权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit

5、MYSQL权限详细分类:
全局管理权限: 
FILE: 在MySQL服务器上读写文件。 
PROCESS: 显示或杀死属于其它用户的服务线程。 
RELOAD: 重载访问控制表,刷新日志等。 
SHUTDOWN: 关闭MySQL服务。
数据库/数据表/数据列权限: 
ALTER: 修改已存在的数据表(例如增长/删除列)和索引。 
CREATE: 创建新的数据库或数据表。 
DELETE: 删除表的记录。 
DROP: 删除数据表或数据库。 
INDEX: 创建或删除索引。 
INSERT: 增长表的记录。 
SELECT: 显示/搜索表的记录。 
UPDATE: 修改表中已存在的记录。
特别的权限: 
ALL: 容许作任何事(和root同样)。 
USAGE: 只容许登陆--其它什么也不容许作。

4.一、建立数据库

#登陆数据库
    mysql -uroot -p

    CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 ;
    GRANT ALL PRIVILEGES ON mydb .*TO'username'@'localhost' IDENTIFIED BY 'password';
    quit;

#五、 配置Nginxcss

vi /etc/nginx/nginx.conf

    在http{}配置中加入:

    client_max_body_size 1024M;

    vi /etc/nginx/conf.d/www.conf

    加入如下配置:

    server {

        listen 80;

        server_name 127.0.0.1;

        root /usr/share/nginx/web;

        access_log /var/log/nginx/www.access.log;

        error_log /var/log/nginx/www.error.log;

        location / {

            index app.php;

            try_files $uri @rewriteapp;

           }

        location @rewriteapp {

            rewrite ^(.*)$ /app.php/$1 last;

        }

        location ~ ^/udisk {

            internal;

            root /usr/share/nginx/www/app/data/;

        }

    location ~ ^/(app|app_dev)\.php(/|$) {

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_split_path_info ^(.+\.php)(/.*)$;

        include fastcgi_params;

        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

        fastcgi_param  HTTPS              off;

        fastcgi_param HTTP_X-Sendfile-Type X-Accel-Redirect;

        fastcgi_param HTTP_X-Accel-Mapping /udisk=/usr/share/nginx/www/app/data/udisk;

        fastcgi_buffer_size 128k;

        fastcgi_buffers 8 128k;

    }

    location ~* \.(jpg|jpeg|gif|png|ico|swf)$ {
        expires 3y;

        access_log off;

        gzip off;

    }

    location ~* \.(css|js)$ {

        access_log off;

        expires 3y;

    }

    location ~ ^/files/.*\.(php|php5)$ {

        deny all;

    }

    location ~ \.php$ {

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_split_path_info ^(.+\.php)(/.*)$;

        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

        fastcgi_param  HTTPS              off;


        include        fastcgi_params;

    }

}mysql

#重启nginx
        /etc/init.d/nginx restart
相关文章
相关标签/搜索