Linux服务器配置CentOS+Nginx+PHP+MySQL服务器环境教程

Linux教程 服务器租用 1年前 (2017-03-23) 2832次浏览 0个评论 扫描二维码

Linux 服务器配置 CentOS+Nginx+PHP+MySQL 服务器环境教程

Linux 服务器配置 CentOS+Nginx+PHP+MySQL 服务器环境教程

给站长朋友们分享一篇Linux 服务器配置教程,让搭建熟悉掌握安装 CentOS+Nginx+PHP+MySQL 服务器环境步骤,让大家可以打造原生的服务器环境,当然了这样会很复杂。推荐大家尽量使用PHP集成环境配置 linux 服务器,这样会简单很多。

下面我们开始今天的Linux 服务器配置 CentOS+Nginx+PHP+MySQL 服务器环境教程。

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

1.1、安装 CentOS 第三方 yum 源

** #安装下载工具 wget

yum install wget

#下载 atomic yum 源

wget http://www.atomicorp.com/installers/atomic

#安装

sh ./atomic

** 或者:

rpm -ivh http://nginx.org/packages/<a href="http://www.fuwuqizuyong.cc/tag/centos" title="查看更多关于 centos 的文章" target="_blank">centos</a>/6/noarch/RPMS/nginx-release-<a href="http://www.fuwuqizuyong.cc/tag/centos" title="查看更多关于 centos 的文章" target="_blank">centos</a>-6-0.el6.ngx.noarch.rpm

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/init.d/iptables restart 

#重启防火墙使配置生效

3、安装和配置 PHP

3.1、安装PHP和相关插件

yum install -y php php-cli php-curl php-fpm php-intl php-mcrypt php-<a href="http://www.fuwuqizuyong.cc/tag/mysql" title="查看更多关于 mysql 的文章" target="_blank">mysql</a> 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 <a href="http://www.fuwuqizuyong.cc/tag/mysql" title="查看更多关于 mysql 的文章" target="_blank">mysql</a> <a href="http://www.fuwuqizuyong.cc/tag/mysql" title="查看更多关于 mysql 的文章" target="_blank">mysql</a>-server

#启动 MySQL

/etc/init.d/<a href="http://www.fuwuqizuyong.cc/tag/mysql" title="查看更多关于 mysql 的文章" target="_blank">mysql</a>d start

#设为开机启动

chkconfig <a href="http://www.fuwuqizuyong.cc/tag/mysql" title="查看更多关于 mysql 的文章" target="_blank">mysql</a>d on

#拷贝配置文件(注意:如果/etc 目录下面默认有一个 my.cnf,直接覆盖即可)

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

修改用户密码:

修改 root 密码

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

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

mysqladmin -u root password NEWPASSWORD

如果你已经设置过密码了,需要要以下命令:

mysqladmin -u root -p'oldpassword' password newpass

比如说,旧密码是“12345”,新密码是“nowamagic”,执行以下命令:

mysqladmin -u root -p'12345' password 'nowamagic'

修改其它 MySQL 用户的密码

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

mysqladmin -u nmuser -p oldpassword password newpass

另一种修改密码的方法是,MySQL 服务器把用户名和密码储存在 MySQL 数据库的 user 表中。你可以使用以下方法来直接更新用户 nmuser 的密码:

1. 登录 mysql 服务器:

mysql -u root -p

2. 选择 MySQL 数据库

mysql> use mysql;

3. 修改 nmuser 密码

mysql> update user set password=PASSWORD("NEWPASSWORD") where User='nmuser';

4. 重置权限
先执行

mysql> flush privileges;

在执行

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 [email protected]"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 [email protected]"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 [email protected]"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


服务器租用(www.fuwuqizuyong.cc) , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明:Linux 服务器配置 CentOS+Nginx+PHP+MySQL 服务器环境教程
服务器租用
喜欢 (1)
[]
分享 (0)
服务器租用
关于作者:
服务器租用专注为广大站长与网友朋友分享建站教程、SEO优化文章、网站模板资源、服务器软件(Web环境、建站程序)等,另外为大家推荐各种国内外服务器、香港服务器、虚拟主机、域名购买优惠信息与服务器相关知识。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到