CentOS7搭建LNMP环境
以前写的过时了,重新发一篇新的。
安装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的位置。
好了,我们一起下班吧。
CentOS7搭建LNMP环境的更多相关文章
- CentOS7——搭建LNMP环境(WordPress案例)
CentOS7--搭建LNMP环境(WordPress案例) LNMP组成介绍 LNMP(Linux-Nginx-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统 ...
- Centos7 搭建lnmp环境 (centos7+nginx+MySQL5.7.9+PHP7)
阿里云一台服务器出现问题! 我估计是一键安装包环境的原因,所以打算重新搭建下环境! 首先,当然是先做好快照!安全第一! 对系统盘做更换系统操作,装上纯净版的centos. 装好后,进入系统 一.挂载数 ...
- linux中Centos7搭建lnmp环境
1.安装yum yum update 2.安装nginx源: yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx ...
- Vmware搭建LNMP环境(Centos7+Nginx+Mysql+PHP7.1.8)
参考:1.Linux学习之CentOS(一)----在VMware虚拟机中安装CentOS 7(图文教程) 2.Centos7搭建LNMP环境 3.MySQL5.7修改默认root密码 4.CentO ...
- centos7 yum搭建lnmp环境及配置wordpress超详细教程
yum安装lnmp环境是最方便,最快捷的一种方法.源码编译安装需要花费大量的人类时间,当然源码编译可以个性化配置一些其它功能.目前来说,yum安装基本满足我们搭建web服务器的需求. 本文是我根据近期 ...
- Yum搭建LNMP环境(动、静、库分离)(week4_day5)--技术流ken
前言 本篇博客使用yum来搭建lnmp环境,将采用动态,静态以及数据库分开安装的方式即nginx,php,mysql.会被分开安装在不同的服务器之上,搭建出来一套lnmp环境,并部署wordpress ...
- WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机
版本:win10系统 virtualbox:5.1.26 vagrant :1.9.7 centos 7.0 xshell/git 首先下载好对应版本的软件 配置vagrant和virtualbox ...
- Docker之使用Docker-compose搭建LNMP环境
之前有随笔介绍使用Docker-compose搭建LNMP环境(centos6 php5.6) https://www.cnblogs.com/minseo/p/10146982.html 本文介绍D ...
- CentOS6.6搭建LNMP环境
CentOS6.6搭建LNMP环境 1.设置yum源,本地安装依赖包 1 yum -y install gcc gcc-c++ automake autoconf libtool make 2.下载依 ...
随机推荐
- 【Java】【Flume】Flume-NG阅读源代码AvroSink
org.apache.flume.sink.AvroSink是用来通过网络来数据传输的.能够将event发送到RPCserver(比方AvroSource),使用AvroSink和AvroSource ...
- Ubuntu 14.04 64位字体美化(使用黑文泉驿)
Ubuntu 14.04安装和升级后,,斜体字体变得很难看,昨天,我得到一个晚上,最终,管理一个线索,这里整洁. 在线调研后,.一致的观点是,,使用开源字体库文泉驿理想的黑色字体效果,效果甚至没有丢失 ...
- Qt调用PolarSSL库(一个)
最近一直在学习SSL相关知识,也明白了理论相关知识,主要SSL基本概念和连接建立.主要依据PolarSSL开源库学习.学习完了之后就希望能给有所运用,就想用Qt写一个简单的程序,添加对SSL相关概念的 ...
- RDIFramework.NET框架SOA解(集Windows服务、WinForm形式和IIS发布形式)-分布式应用程序
RDIFramework.NET框架SOA解决方式(集Windows服务.WinForm形式与IIS形式公布)-分布式应用 RDIFramework.NET,基于.NET的高速信息化系统开发.整合框架 ...
- 安德鲁斯Toast它们的定义和防止重复显示器
Toast安卓系统,当用户错误或功能运行完成,提示,要求用户,它不集中,并且将在一定时间内消失.然而,在用户继续误(如登录,password错)当次,将有多个Toast创建.系统会把这些toast放进 ...
- Symbol not found: _lua_objlen
lua: error loading module 'cjson' from file '/usr/local/lib/lua/5.3/cjson.so': dlopen(/usr/local/lib ...
- Invalid default value for 'created_at'
https://github.com/laravel/framework/issues/15144 https://stackoverflow.com/questions/30555844/larav ...
- wpf 触摸屏 button 背景为null的 问题
原文:wpf 触摸屏 button 背景为null的 问题 <!-- button样式--> <Style x:Key="myBtn" TargetType=&q ...
- Java之nio MappedByteBuffer的资源释放问题
使用nio的MappedByteBuffer映射内存, 在最后执行File.delete()方法的时候, 返回false, 即文件没有被删除. 原因是MappedByteBuffer在内存中也会创建 ...
- JAVASCRIPT高程笔记-------第 七章 函数表达式
7.1递归 经典递归例子 function factorial(num){ if(num <= 1){ return 1; }else{ return num * factorial(num - ...