一、配置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