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.20.tar.gz
解压
tar -zxvf php-7.2.20.tar.gz
移走
mv php-7.2.20 /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*
切目录
cd /usr/local/php-7.2.20/
配置
./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 = 20 //单个请求最多上传数量 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 755 /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.0.tar.gz
进去
cd nginx-1.16.0
配置
./configure
安装
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 -9 上一条命令查到的PID
编写服务脚本
vim /etc/init.d/nginx
粘贴以下代码
#!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.0.0.2 version. # chkconfig: - 85 15 # 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=0 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 0 [ -x $nginxd ] || exit 0 # Start nginx daemons functions. start() { if [ -e $nginx_pid ];thenecho "nginx already running...."exit 1 fiecho -n $"Starting $prog: "daemon $nginxd -c ${nginx_config}RETVAL=$?echo[ $RETVAL = 0 ] && touch /var/lock/subsys/nginxreturn $RETVAL } # Stop nginx daemons functions. stop() {echo -n $"Stopping $prog: "killproc $nginxdRETVAL=$?echo[ $RETVAL = 0 ] && 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 -HUPRETVAL=$?echo } # See how we were called. case "$1" in start)start;; stop)stop;; reload)reload;; restart)stopstart;; status)status $progRETVAL=$?;; *)echo $"Usage: $prog {start|stop|restart|reload|status|help}"exit 1 esac exit $RETVAL
设置权限
chmod 755 /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的位置。
好了,我们一起下班吧。
转载于:https://www.cnblogs.com/fengyumeng/p/11149035.html
CentOS7搭建LNMP环境相关推荐
- linux中Centos7搭建lnmp环境
1.安装yum yum update 2.安装nginx源: yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx ...
- WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机
版本:win10系统 virtualbox:5.1.26 vagrant :1.9.7 centos 7.0 xshell/git 首先下载好对应版本的软件 配置vagrant和virtualbox ...
- VirtualBox+vagrant 搭建LNMP环境
VirtualBox+vagrant 搭建LNMP环境 1.安装VirtualBox和vagrant 去各自的官网下载最新的版本就OK了,win7用户需要注意一下,win7下不支持很高版本的vagra ...
- ubuntu通过apt-get方式搭建lnmp环境以及php扩展安装
v 一直是在用的lnmp的集成安装包搭建lnmp环境,因为工作需要需要安装ldap扩展,在网上怎么都找不到源码安装包,只能卸载掉原来的lnmp环境,用ubuntu的php5-ldap扩展, 在安装中遇 ...
- docker搭建 LNMP 环境
一.准备镜像 安装完docker后,更换完镜像源(docker的安装十分简单自行百度即可) 打开/etc/docker目录下的daemon.json 添加以下内容 { "registry-m ...
- 安装虚拟机Ubuntu,搭建lnmp环境碰到的坑(二)
上一篇文章是基础的搭建ubuntu,安装好了之后就该搭建lnmp环境了,在此楼主也是第一次用nginx,如果有什么错误之后,请告知,万分感谢 搭建lnmp的一些基础命令在网上都可以查到,楼主只贴出自己 ...
- centos 6.5 搭建lnmp环境
centos 6.5 搭建lnmp环境 建议安装顺序: mysql------->>编译php---->>编译nginx 最麻烦:编译php出各种错. 最简单:mysql 软件 ...
- wordpress支持MySQL5.5_CentOS 5.5安装Nginx、PHP(FastCGI)、MySQL --搭建LNMP环境安装Wordpress...
一.总体介绍 系统环境 CentOS release 5.5 (Final) ,kernel 2.6.18-194.el5 安装 Nginx . PHP(FastCGI) . MySQL ...
- Centos7 搭建LNMP架构服务器实战
Centos7 搭建LNMP架构服务器实战 前言 需求分析 拓朴设计及各服务器地址规划 配置部分 后端服务器实现 Web-1 nginx整合 Web-2 nginx整合 后端服务器测试 高可用Web集 ...
最新文章
- IOS7原生API进行二维码条形码的扫描
- 干货 | 谷歌BERT模型fine-tune终极实践教程
- [译] Security Token 生态 — 项目指南
- 如何设计秒杀服务器的限流策略
- 在当当买了python怎么下载源代码-Python爬取当当网APP数据
- push_heap算法 (即满足max-heap条件,最大值在根节点)
- 并发编程-17AQS同步组件之 Semaphore 控制并发线程数的信号量
- cordova降低版本10.0.0为8.1.2
- python中_str_使用方法
- mysql新增后默认返回值_mybatis insert、update 、delete默认返回值解释与如何设置返回表主键...
- android使用greedao踩坑日记
- [SAP ABAP开发技术总结]以二进制、字符模式下载文件
- 用户访谈与问卷调查怎么做
- python杀掉某个指定的进程
- pyscripter与python的关系_我用过的最好的python编辑器PyScripter
- win7系统如何映射服务器,win7系统映射网络驱动器怎么访问
- 前端怎么从H5调起微信扫描二维码?小程序使用扫码功能.
- 读取身份证信息系统的程序编写
- k8s本地开发工具telepresence及部署
- MySQL实战:join 语句怎么优化?
热门文章
- Matlab计算决定性系数(拟合优度)R2
- 苹果手机热点连上不能上网_苹果或将发布一款不能打电话的iPhone手机
- 随机数的生成+猜数字游戏
- c语言露点温度,露点温度 - 含义及计算方法
- 兆芯最新X86 CPU曝光:性能与英特尔/AMD相比,没落后10年
- simulink高版本转换低版本的快速解决办法
- 小波分析:三、一维离散小波变换
- Word框选一整段文字如何防止框到换行符?word怎么在选择的时候不选择上换行符,word选中段尾不选回车符
- 三菱协议转换网关WTGNet-MEL(三菱QFX5U)
- 打嗝放屁都要被征排碳税,新西兰的牛羊不干了