安裝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
相關文章
相關標籤/搜索