以前写的过时了,重新发一篇新的。

安装PHP

下载官网:https://www.php.net/downloads.php

为了方便,我存了现成的

百度网盘:https://pan.baidu.com/s/1LlLDsoL6d9Yej0lA5Osqzg  提取码:sxif

还有更省事的:file.fengyumeng.com/php-7.2.20.tar.gz

直接下载

wget file.fengyumeng.com/php-7.2..tar.gz

解压

tar -zxvf php-7.2..tar.gz

移走

mv php-7.2. /usr/local/

安装一些必要依赖

yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel

别急,还有一批

yum -y install gcc
yum -y install gcc-c++
yum -y install libxslt-devel*
yum -y install mod_ssl
yum -y install libtool-ltdl*
yum -y install perl*
yum -y install autoconf

切目录

cd /usr/local/php-7.2./

配置

./configure --prefix=/usr/local/php7 --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-jpeg-dir --with-freetype-dir --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath -enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-pcntl --with-curl --with-fpm-user=nginx --enable-ftp --enable-session --enable-xml --without-pear --disable-phar

编译

make

编译出错请查看这篇博客,一般都找得到答案

http://www.cnblogs.com/sweetXiaoma/p/5855732.html

安装

make install

添加环境变量

vim /etc/profile

在最后一行下面加入

PATH=$PATH:/usr/local/php7/bin
export PATH

立即生效

source /etc/profile

查看PHP版本

php -v 

生成必要文件

cp php.ini-production /usr/local/php7/etc/php.ini
cp sapi/fpm/php-fpm /usr/local/php7/etc/php-fpm
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

编辑php.ini

vim /usr/local/php7/etc/php.ini 

以下参数仅供参考

date.timezone = PRC    //设置时区
file_uploads = On //是否允许上传
upload_tmp_dir = /tmp //上传临时目录
max_file_uploads = //单个请求最多上传数量
upload_max_filesize = 10M //允许上传文件大小
post_max_size = 20M //允许post传输最大值(这个必须比upload_max_filezise大)
memory_limit = 128M //设置脚本最大使用内存
error_reporting=E_ALL //输出错误信息
error_log = /var/log/php.log //错误日志路径

创建日志文件

touch /var/log/php.log
chmod /var/log/php.log

接下来是nginx。

安装Nginx

下载地址

http://nginx.org/en/download.html

Mainline version 开发版
Stable version 稳定版
Legacy versions 历史版

鼠标移动到你要选择的版本超链接上点右键 复制链接地址

切目录

cd /usr/local/

下载

wget https://nginx.org/download/nginx-1.16.0.tar.gz

解压

tar -zxvf nginx-1.16..tar.gz

进去

cd nginx-1.16.

配置

./configure --with-http_stub_status_module --with-http_ssl_module

安装

make && make install

打开配置文件

vim /usr/local/nginx/conf/nginx.conf

这一段都是包在server{}之中  如要配置多个域名 则复制粘贴多个server{}代码块

#重写url隐藏index.php
#把下面这一段打开注释 并将其中的/scripts 修改为 $document_root

server {
listen 80;
server_name www.abc.com abc.com;
root /var/www/abc;
location / {
if (!-e $request_filename) {
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
}
index index.html index.htm index.php;
}
location ~ \.php$ {
root /var/www/abc;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

保存退出

配置php-fpm

vim /usr/local/php7/etc/php-fpm.d/www.conf

把里面的user group 两行 改为nobody 或者是系统中存在的用户

user = nobody
group = nobody

启动php-fpm,载入php.ini

/usr/local/php7/sbin/php-fpm -c /usr/local/php7/etc/php.ini

注意  如果修改了php.ini则每次需要杀掉php-fpm进程再重新启动php-fpm,PHP的解析执行靠的是这家伙,不靠nginx。

ps -ef | grep php-fpm
kill - 上一条命令查到的PID

编写服务脚本

vim /etc/init.d/nginx

粘贴以下代码

#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0. version.
# chkconfig: -
# description: Nginx is a high-performance web and proxy server.
# It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /usr/local/nginx/logs/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/usr/local/nginx/logs/nginx.pid
RETVAL=
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit
[ -x $nginxd ] || exit
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "nginx already running...."
exit
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
}
# reload nginx service functions.
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit
esac
exit $RETVAL

设置权限

chmod  /etc/init.d/nginx  

加入开启自启

vi /etc/rc.local

在末尾新增一行

/usr/local/nginx/sbin/nginx

服务命令启动

/etc/init.d/nginx start

加入开机启动

chkconfig nginx on

然后你就可以使用以下服务命令了

systemctl status nginx
systemctl start nginx
systemctl stop nginx
systemctl reload nginx
systemctl restart nginx

安装MySQL

安装mysql源

yum localinstall -y http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

安装mysql

yum install mysql-community-server

启动mysql

systemctl start mysqld

获取初始密码

grep 'temporary password' /var/log/mysqld.log

得到这行A temporary password is generated for root@localhost: Jqqskhz1Wr (root@localhost:后面就是默认密码 只需复制 下一步输入密码的时候粘贴即可)

进入mysql

mysql -uroot -p

第一时间修改密码

SET PASSWORD = PASSWORD('123456//ZZZjjj');

密码必须复杂 需包含大小写特殊符号,否则无法修改成功

开放远程连接

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

百分号相当于*号,意思是全部放行,也可改为IP地址则只允许此IP连接,也可以设置为192.168.%.%或者192.168.0.1/9代表允许一个ip段进行连接,也可以多加几条数据设置不同ip允许连接。

MySQL权限分配

create user 'myqiutian'@'%' IDENTIFIED BY '*********';

创建一个用户为myqiutian,因为用的%所以任何IP都可以登录,但登录后却无法看到数据库,新增用户所有权限默认关闭。

懒人专用语句

grant all on *.* to myqiutian;

设置该用户所有数据库所有表拥有所有权限

如果你真的是懒人,下面的就不用看了,直接跳到最后一个命令 刷新权限 ,执行完就可以下班了。

grant select on A数据库.* to myqiutian;

授权myqiutian这个用户可以查看A数据库里的所有表,但是仅限于A数据库,也仅限于查看。

grant insert on A数据库.user to myqiutian;

授权myqiutian这个用户可以对A数据库里的user表进行insert操作,但仅限于user表,也仅限于select和insert操作。

撤销权限

revoke insert on A数据库.user from myqiutian;

注意:撤销权限之前最好用show grants for myqiutian;这条sql查一下该用户有哪些权限,增加的什么权限就撤什么权限,你增加的insert就不能撤销all。

MySQL权限工作流程:
--------->用户连接MySQL
--------->查询user表 核对账号密码 检查host字段 是否允许你的ip进行连接
--------->查询user表 其他权限字段 值若为Y 代表用户对所有数据库所有表所有字段都拥有该权限 若有值为N 则往下走
--------->查询db表 库权限控制表 获取该用户对哪些库拥有哪些权限 这张表里一条记录代表一个库
--------->查询tables_priv表 获取该用户的表控制权限 同样 如果db表中该用户对A数据库拥有insert权限 那么不管tables_priv表中如何设置 都不会影响该用户的isnert权限,如果tables_priv表中的单表权限不为all,则继续往下走
--------->查询columns_priv表 字段控制 可以设置对表字段的控制权限

四张表依次为 user db tables_priv columns_priv

注意:
如果user表中全为Y,那么不会查询下面的表。
user表中的select为N时,可以在db表中指定哪些库可以被用户看到。
但是无论是表控制还是字段控制,上级权限表(user表除外)的select字段必须为Y。
而其他权限如果上级表给出了设置,那么不会采用下级表的设置。

刷新权限,使权限立即生效

flush privileges;

别忘了这里有一个配置文件cat /etc/my.cnf 可以查看存储的数据与log的位置。

好了,我们一起下班吧。

最新文章

  1. Java和PHP哪个方向更有前途?
  2. 解决:error: .repo/manifests/: contains uncommitted changes
  3. eclipse for php现有项目不能导入问题
  4. Sublime Text3 (转) 配置 以及快捷键配置
  5. 转贴:sudo apt-get install 可以安装的一些软件
  6. CF Two Substrings
  7. ANDROID内存优化——大汇总(转)
  8. Python在Windows下开发环境配置汇总
  9. java.lang.SecurityException: Permission denied (missing INTERNET permission?) 解决
  10. zookeeper[3] zookeeper API开发注意事项总结
  11. xen之基本搭建
  12. nginx集群tomcat
  13. 想使用Docker容器?先看看这些注意事项
  14. python基本数据类型学习
  15. win10 系统 wifi自动断开连接 wifi热点不稳定
  16. IDEA中MAVEN项目有多个子目录,如何加载构建
  17. maven 配置篇 之 settings.xml
  18. Noxim配置运行
  19. Qt发起Http/Https请求
  20. Unix 网络编程 读书笔记1

热门文章

  1. SEO分享:为什么我的资源外链这么多的高品质?
  2. 本文摘录 - FlumeJava
  3. the solution about "messy code" in elicpse
  4. Gradle 1.12 翻译——第九章 Groovy高速入口
  5. Matlab随笔之三维图形绘制
  6. abp框架(aspnetboilerplate)扩展系统表
  7. XF 标签页面
  8. 简单说说Delphi中线程的释放
  9. VC++ 使用预编译头
  10. RelativeSource 简述