您的位置 首页 php

Linux系列之CentOS+Nginx+PHP+MySQL

系列目录

1、 Linux系列Centos6.7基础系统安装配置

2、 Linux系统之Centos更新系统时间以及定时同步网络时间

3、【本篇】Linux系列之安装CentOS 6.x + Nginx + PHP + MySQL

————————————————————————–

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

1.1、安装CentOS第三方yum源

** #安装下载工具 wget

yum install wget

#下载atomic yum源

wget

#安装

sh ./atomic

** 或者:

rpm -ivh

1.2、升级CentOS系统

#更新yum软件包

yum check-update

#更新系统

yum update

2、安装和配置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/ ini t.d/iptables restart #重启防火墙使配置生效

3、安装和配置PHP

3.1、安装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.2、修改PHP配置

#编辑php.ini , 将以下配置的值修改为1024M

vim /etc/php.ini

post_max_size = 1024M

memory_limit = 1024M

upload_max_filesize = 1024M

3.3、配置PHP-FPM

#启动php-fpm

/etc/rc.d/init.d/php-fpm start

#设置开机启动

chkconfig php-fpm on

#重启pfm

/etc/init.d/php-fpm restart

4、安装MySql和创建EduSoho数据库

4.1、安装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为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作:

一、允许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

二、允许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

三、允许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

四、删除用户授权,需要使用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

五、MYSQL权限详细分类:

全局管理权限:

FILE: 在MySQL服务器上读写文件。

PROCESS: 显示或杀死属于其它用户的服务线程。

RELOAD: 重载访问控制表,刷新日志等。

SHUTDOWN: 关闭MySQL服务。

数据库/数据表/数据列权限:

ALTER: 修改已存在的数据表(例如增加/删除列)和索引。

CREATE: 建立新的数据库或数据表。

DELETE: 删除表的记录。

DROP: 删除数据表或数据库。

INDEX: 建立或删除索引。

INSERT: 增加表的记录。

SELECT: 显示/搜索表的记录。

UPDATE: 修改表中已存在的记录。

特别的权限:

ALL: 允许做任何事(和root一样)。

USAGE: 只允许登录–其它什么也不允许做。

4.1、创建数据库

#登录数据库

mysql -uroot -p

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 ;

GRANT ALL PRIVILEGES ON mydb .*TO’username’@’localhost’ IDENTIFIED BY ‘password’;

quit;

5、 配置Nginx

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;

}

}

#重启nginx

/etc/init.d/nginx restart

文章来源:智云一二三科技

文章标题:Linux系列之CentOS+Nginx+PHP+MySQL

文章地址:https://www.zhihuclub.com/78798.shtml

关于作者: 智云科技

热门文章

网站地图