centos配置PHP+nginx+MySQL环境

一、配置nginx

       1、下载对应当前系统版本的nginx包(package)

              wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

       2、建立nginx的yum仓库

             rpm-ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

       3、使用yum安装Nginx:

             sudo yum install nginx

       4、按照提示,输入yes后开始安装。安装完毕后,Nginx的配置文件在/etc/nginx目录下。使用以下命令启动Nginx:

             sudo systemctl start nginx

       5、检查系统中firewalld防火墙服务是否开启,如果已开启,我们需要修改防火墙配置,开启Nginx外网端口访问。

             sudo systemctl status firewalld

       6、如果显示active (running),则需要调整防火墙规则的配置。

            修改/etc/firewalld/zones/public.xml文件,在zone一节中增加:

            <zone>

                   ...

                   <service name="nginx" />

            </zone>

        7、保存后重新加载firewalld服务:

              sudo systemctl reload firewalld

        8、您可以通过浏览器访问http://<外网IP地址>来确定Nginx是否已经启动。

        9、最后将Nginx设置为开机启动:

              sudo systemctl enable nginx.service

二、mariadb安装

       1、安装mariadb:

             sudo yum install mariadb-server

       2、启动MariaDB服务

             sudo systemctl start mariadb

       3、MariaDB默认root密码为空,我们需要设置一下,执行脚本:

             sudo /usr/bin/mysql_secure_installation

            ①首先提示输入当前的root密码:

                Enter current password for root (enter for none):初始root密码为空,我们直接敲回车进行下一步。

                 Set root password? [Y/n]设置root密码,默认选项为Yes,我们直接回车,提示输入密码,在这里设置您的MariaDB的root账户密码。

                 Remove anonymous users? [Y/n]是否移除匿名用户,默认选项为Yes,建议按默认设置,回车继续。

                 Disallow root login remotely? [Y/n]是否禁止root用户远程登录?如果您只在本机内访问MariaDB,建议按默认设置,回车继续。如果您还有其他云主机需要使用root账号访问该数据库,则需要选择n。

                 Remove test database and access to it? [Y/n]是否删除测试用的数据库和权限?建议按照默认设置,回车继续。

                 Reload privilege tables now? [Y/n]是否重新加载权限表?因为我们上面更新了root的密码,这里需要重新加载,回车。完成后你会看到Success!的提示,MariaDB的安全设置已经完成。

             ②以权限用户root登录MariaDB:

                 mysql -uroot -p

                 按提示输入root密码,就会进入MariaDB的交互界面,说明已经安装成功。

             ③选择mysql库

                 use mysql;

             ④查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)

                 select 'host' from user whereuser='root';

             ⑤修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址,如果这步出错"ERROR 1062(23000): Duplicate entry '%-root' for key 'PRIMARY'"由说明该记录有了,跳过这步

                 update user set host = '%' where user='root';

             ⑥刷新MySQL的系统权限相关表

                 flush privileges;

             ⑦再重新查看user表时,有修改,然后重起mariadb服务即可完成

       4、最后我们将MariaDB设置为开机启动。

             sudo systemctl enable mariadb

三、mysql安装

1.先下载mysql5.7的repo源;相关命令:

wgethttp://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

2.安装mysql57-community-release-el7-8.noarch.rpm:(安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo):

rpm-ivh mysql57-community-release-el7-8.noarch.rpm

3.安装MySQL:

yuminstall mysql-server

一路Y下去即可;

4.安装完毕后,重启服务器命令:

servicemysqld restart

注:在/var/log/mysqld.log文件中会自动生成一个随机的密码,我们需要先取得这个随机密码,以用于登录MySQL服务端:

grep"password" /var/log/mysqld.log

会打印出如下内容:

Atemporary password is generated for root@localhost: hilX0U!9i3_6

我们复制root@localhost:后面的随机字符串,这个字符串就是MySQL在安装完成后为我们随机生成的密码;

密码就在这个日志的文件里

/var/log/mysqld.log

例如:标注的就是密码

2017-03-26T21:53:36.234194Z1 [Note] A temporary password is generated for root@localhost: >b&uAW1D>n7k

5.登录到MySQL服务端并更新用户root的密码:

mysql-u root -philX0U!9i3_6

打印出MySQL的版本即表明已登录;

由于修改密码:

setpassword for 'fred'@'localhost'=password('passwd');

可能会报错

由以下两个命令解决:

setglobal validate_password_policy=0;

setglobal validate_password_length=4;

开始设置自己的密码:

setpassword for root@localhost=password('passwd');

刷新权限使之生效:

flushprivileges;

设置用户root可以在任意IP下被访问:

grant

all privileges on *.* to root@"%" identified by "新密码";

设置用户root可以在本地被访问:

grant

all privileges on *.* to root@"localhost" identified by "新密码";

刷新权限使之生效:

flushprivileges;

更新MySQL的用户root的密码:

set

password = password('新密码');

注意:由于MySQL5.7采用了密码强度验证插件validate_password,故此我们需要设置一个有一定强度的密码;

输入exit后用新密码再次登录看看吧!

5.将mysql设置为开机启动:

sudosystemctl enable mysqld

安装PHP7.0

1.删除旧版本

如果已经安装过php就先删除之前的版本。检查方法如下:

yumlist installed | grep php

然后将安装的包进行删除

比如yum remove php.x86_64 php-cli.x86_64 php-common.x86_64php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64php-mysql.x86_64 php-pdo.x86_64

具体根据显示的安装列表的名称进行相应的删除

2.rpm安装Php7相应的yum源:

rpm-Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm

​rpm -Uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpm

3.安装php7.0

yuminstall php70w

4.安装php扩展

​php70w-mysql.x86_64mysql扩展(作为依赖同时安装php70w-pdo.x8664)

​php70w-gd.x86_64GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

​php70w-ldap.x86_64 "轻量级目录访问协议",是一个用于访问"目录服务器"(Directory Servers)的协议;

php70w-mbstring.x86_64

mbstring扩展库用于处理多字节字符串,PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是1~3倍的差异了。采用mb_strlen函数可以较好地解决这个问题。

php70w-mcrypt.x86_64

Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。

5.安装PHP FPM

​yum install php70w-fpm

关于php-fpm

​PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

​现在我们可以在最新的PHP 5.3.2的源码树里下载得到直接整合了PHP-FPM的分支,据说下个版本会融合进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼。

​PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带–enable-fpm参数即可开启PHP-FPM。

使用PHP-FPM来控制PHP-CGI的FastCGI进程

配置nginx

修改配置文件之前记得备份

1.nginx配置文件位置:(/etc/nginx/nginx.conf)

​# For more information on configuration,see:

#* Official English Documentation: http://nginx.org/en/docs/

#* Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;

worker_processes auto;

error_log

/var/log/nginx/error.log; #错误日志记录的位置

pid /run/nginx.pid; #nginx.pid为记录nginx主进程pid文件;切勿修改、移动

# Load dynamic modules. See/usr/share/nginx/README.dynamic.

include/usr/share/nginx/modules/*.conf;

#引入/usr/share/nginx/modules/目录下的所有以.conf结尾的文件

events {

worker_connections 1024;

}

http {

log_formatmain'$remote_addr - $remote_user [$time_local]"$request" '

'$status $body_bytes_sent"$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

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

sendfileon;

tcp_nopushon;

tcp_nodelayon;

keepalive_timeout65;

types_hash_max_size 2048;

include/etc/nginx/mime.types;

default_typeapplication/octet-stream;

# Load modular configuration files from the /etc/nginx/conf.d directory.

# See http://nginx.org/en/docs/ngx_core_module.html#include

# for more information.

include /etc/nginx/conf.d/*.conf;

#这句很重要,引入所有etc/nginx/conf.d/目录下的.conf文件

#***etc/nginx/conf.d/目录存放的就是分站点的文件(下面会给出实例代码)***

server {

#由于我们的nginx需要配置多站点,所以在此就需要注释一些东西

listen80 default_server;

listen[::]:80 default_server;

#保留监听的端口

# server_name_;

# root/usr/share/nginx/php;

# Load configuration files for thedefault server block.

# include /etc/nginx/default.d/*.conf;

# location / {

# }

# error_page 404 /404.html;

location = /40x.html {

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

# location ~ \.php$ {

# root/usr/share/php;

# fastcgi_pass127.0.0.1:9000;

# fastcgi_indexindex.php;

# fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;

# includefastcgi_params;

# }

}

# Settings for a TLS enabledserver.

#

#server {

#listen443 ssl http2 default_server;

#listen[::]:443 ssl http2 default_server;

#server_name_;

#root/usr/share/nginx/html;

#

#ssl_certificate"/etc/pki/nginx/server.crt";

#ssl_certificate_key"/etc/pki/nginx/private/server.key";

#ssl_session_cache shared:SSL:1m;

#ssl_session_timeout10m;

#ssl_ciphers HIGH:!aNULL:!MD5;

#ssl_prefer_server_ciphers on;

#

## Load configuration files for thedefault server block.

#include /etc/nginx/default.d/*.conf;

#

#location / {

#}

#

#error_page 404 /404.html;

#location = /40x.html {

#}

#

#error_page 500 502 503 504 /50x.html;

#location = /50x.html {

#}

#}

}

2.php-fpm配置文件位置:(/etc/php-fpm.d/www.conf)

​修改

user = nginx

​ group= nginx

3.启动nginx服务:

systemctl start nginx.service

​如需设置开机自启使用以下命令:

sudo systemctl enable nginx.service

​查看启动状态:

systemctl status nginx

看到以下字眼说明启动成功!

​Active:

active (running) since六2016-11-19 13:40:04 CST; 50min ago

4.启动PHP-FPM:

systemctl start php-fpm.service

如需设置开机自启试用以下命令:

sudo systemctl enable php-fpm.service

​查看启动状态:

systemctl status php-fpm.service

看到以下字眼说明启动成功!

​Active:

active (running) since六2016-11-19 14:14:33 CST; 18min ago

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容