本篇文章讲解的是在centos7.3下配置 Apache2.4 + MySQL5.7 + PHP7.1.8

(如果是Nginx请跳过Apache流程继续往下看,所有流程本人已临床验证无数遍,绝无问题)

一.Apache

1.查看httpd包是否可用
yum list | grep httpd

2.安装Apache
yum install -y httpd

3.配置servername
vi /etc/httpd/conf/httpd.conf
修改这行: ServerName localhost:80

4.启动
systemctl start httpd

如果启动失败 请注意错误信息 一般来说新安装的软件都会启动成功 我当时启动失败后是用ps -aux | grep httpd命令发现进程被占用 所以kill -9 进程号 把httpd的进程杀干净 再启动 就OK了

5.设置开机启动
chkconfig httpd on

二 MySQL

1.安装MySQL源
yum localinstall -y http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

2.安装MySQL
yum install mysql-community-server

3.启动MySQL
systemctl start mysqld

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

5.进入MySQL
mysql -uroot -p

6.修改密码

SET PASSWORD = PASSWORD('123456//ZZZjjj');(密码必须复杂 需包含大小写特殊符号,否则无法修改成功)

7.开放远程访问权限
use mysql;
update user set host = '%' where user = 'root';
百分号相当于*号,意为全部放行,也可改为IP地址则只允许此IP连接,也可以设置为192.168.%.%或者192.168.0.1/9代表允许一个ip段进行连接,也可以多加几条数据设置不同ip允许连接。

8.MySQL权限管理。(只写干货,不懂的请自行Google)

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。
而其他权限如果上级表给出了设置,那么不会采用下级表的设置。

具体权限字段请查阅官方手册:
http://www.yesky.com/imagesnew/software/mysql/manual_Privilege_system.html#Privileges_provided

8.刷新权限 立即生效
flush privileges;

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

三:PHP7

1.通过ftp将php源码包上传到Linux上,或者通过wget在线下载也可以。因为没有找到我要的最新版的7.1.8的包,所以我就去官网下载来传到Linux上进行使用,
将包放到/usr/local 并cd进去。(ftp的内容请查看我上一篇文章,php7的包请点击分享链接进行下载:https://pan.baidu.com/s/1kVFxBjL)网盘内容已更新为7.2版本,当前PHP最新版本。

新加地址:http://oxr0s3tc8.bkt.clouddn.com/php-7.2.0.tar.gz  直接用wget下载更方便

2.解压
tar -zxvf php-7.1.8.tar.gz

3.进入解压包安装一些必要的依赖
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel

4.安装gcc
yum install -y gcc

yum install -y gcc-c++

5.安装

yum -y install libxslt-devel*

yum -y install mod_ssl

yum -y install libtool-ltdl*

yum -y install perl*

yum -y install httpd-devel

find / -name apxs 得到的路径是:/usr/bin/apxs

于是得到--with-apsx2的路径是/usr/bin/apxs

5.进入目录进行配置

./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 --with-apxs2=/usr/bin/apxs

6.编译
make

7.编译出现错误请查阅这篇博客:
http://www.cnblogs.com/sweetXiaoma/p/5855732.html
感谢博主分享经验让学者收益。

8.编译检查
make test
这步可走可不走,因为它老是爱提示错误,但又不给错误信息,如果有问题,那么编译的时候一定不成功,既然编译成功了,那么可以直接进行安装。

9.安装
make install

10.添加环境变量
vi /etc/profile
在末尾加入:
PATH=$PATH:/usr/local/php7/bin
export PATH

11.使改动立即生效
source /etc/profile

12.查看php版本
php -v
(如果有问题 请检查添加的环境变量是否是PHP安装目录里的bin目录)

13.生成必要文件
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

设置时区
date.timezone = PRC

是否允许上传
file_uploads = On

upload_tmp_dir = /tmp

单个请求最多上传数量
max_file_uploads = 20

允许上传文件大小
upload_max_filesize = 2M

允许post传输最大值(这个必须比upload_max_filezise大)
post_max_size = 8M

设置脚本最大使用内存
memory_limit = 128M

输出错误信息
error_reporting=E_ALL

错误日志路径(需要可写权限)
error_log = /var/log/php.log

到这里  如果要对接Nginx,请左转 http://www.cnblogs.com/fengyumeng/p/7840248.html

14.配置
如果报错 请敲这行查报错信息 可以查到哪个文件第几行出错:
systemctl status httpd.service

修改Apache默认欢迎页:
vi /etc/httpd/conf.d/welcome.conf
将/usr/share/httpd/noindex 修改为/var/www

修改Apache配置:
vi /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/"
(请注意,/var/www这个路径是自定义,在配置文件中有好几处这个路径,如果更改,请全局搜索一下都改掉)

找到
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在后面添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php7

搜索<IfModule dir_module>下面这一块添加上index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

搜索有没有下面这一行:
LoadModule php7_module modules/libphp7.so
如果没有 请手动添加 否则 会出现运行php文件变成下载

在最下面配置域名
<VirtualHost *:80>
DocumentRoot /var/www
ServerName www.你的域名.com
ServerAlias 你的域名.com
<Directory /phpstudy/www>
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>

15.测试
在www目录下创建index.php
添加<?php phpinfo();?>
访问:www.你的域名.com

感谢阅读

配置最新版LAMP环境的更多相关文章

  1. CentOS 7 yum方式配置LAMP环境

    环境:CentOS 7 最小化安装 采用Putty连接 方法:采用YUM安装方法 目的:搭建Apache+Mysql+PHP环境 1,安装Apache yum install httpd //默认情况 ...

  2. 年终福利,PHP7+Apache2.4+MySQL5.6 源码编译安装,环境配置,搭建你自己的LAMP环境

    PHP7 都出来了,你还在玩PHP5吗? MySQL5.6 早都出来了,你还在玩MySql5.2吗? Apache2.4 早都出来了,你还在玩Apache2.2吗? 笔者不才,愿意亲自搭建环境,供搭建 ...

  3. 在ubuntu上搭建开发环境4---ubuntu简单的搭建LAMP环境和配置

    最近重新安装了Ubuntu,但是之前的LAMP环境自然也就没有了,实在是不想再去编译搭建LAMP环境(这种方法实在是太费时间,而且太容易遇到各种不知道为什么的错误),所以,就去查查有没有什么简单的搭建 ...

  4. windows下配置lamp环境(5)---配置MySQL5.6

    开始配置mysql 1.创建配置文件my.ini   1.进入C:\wamp\MySQL   2.把my-default.ini 另存一份:my.ini   3.开始编辑mysql的配置文件,打开my ...

  5. windows下配置lamp环境(3)---配置PHP5.4

    下面配置php Php文件夹里有两个php.ini-*文件,随便修改一个,去掉后缀,变成php.ini (如图) 打开php.ini ,添加php扩展目录723行左右(其实放哪都无所谓,只不过php. ...

  6. windows下配置lamp环境(0)---软件获取

    工作快一年了,还没有怎么配置过服务器环境,经常使用集成套件wampserver,为了复习配置wamp服务器 特意在虚拟机中测试安装步骤如下. 安装前步骤:下载软件.软件下载地址如下: 1.apache ...

  7. windows下配置lamp环境(2)---配置Apache服务器2.2.25

    配置Apache 配置Apache时,先要找到安装目录中的主配置文httpd.conf,使用文本编辑器打开,最好不要使用windows自带的编辑器,可以使用NotePad++, vim,或者subli ...

  8. windows下配置lamp环境(1)---安装Apache服务器2.2.25

    window下lamp成为wamp; 安装wamp环境的第一步是安装Apache服务器.下面开始安装步骤图文并茂. 一.双击安装包点“next”进行下一步,然后同意协议(这张图没有截):

  9. ubuntu下lamp环境配置及将window代码迁移至linux系统

    因为最近要用需要去实现项目中的一个功能,比较好的做法就是在http://i.cnblogs.com/EditPosts.aspx?opt=1linux中实现.所以最近就将自己的代码全部迁移到linux ...

随机推荐

  1. 安装es6编译babel

    1.它的安装命令如下. 全局安装 :$ npm install --global babel-cli项目下安装: $ npm install -g babel-cli --save-dev 2.配置. ...

  2. CentOS7安装及简单配置(一)

    CentOS7是RHEL的社区版,摘抄维基百科的一段话如下: CentOS(Community Enterprise Operating System)是Linux发行版之一,它是来自于Red Hat ...

  3. RSP小组——团队冲刺博客三

    RSP小组--团队冲刺博客三 冲刺日期:2018年12月12日 各成员今日(12.12)完成的任务 马瑞蕃页面布局 李闻洲音乐代码的实现 赵乾宸,找bug,处理bug,使游戏滑动,消除实现 蒋子行会议 ...

  4. go 可变参数

    go 在参数列表中使用 ... 表示可变参数,例如: import "fmt" func Minimum(first int, others ...int) int { min : ...

  5. JavaScript模板引擎Handlebars

    Handlebars模板库简单介绍 Handlebars是JavaScript一个语义模板库,通过对view(模板)和data(ajax请求的数据,一般是json)的分离来快速构建Web模板.它采用& ...

  6. vue-cli+mock.js+axios模拟前后台数据交互

    最近工作不是很忙,自己做了一个vue的移动端的小项目,涉及到后台数据的时候,网上查阅了一些资料,因为是自己写的项目没有后台只能自己模拟数据,刚开始就自己写了一些静态数据后来觉得尽量模拟真实的比较好些, ...

  7. firewalld的基本使用

    参考原文链接:https://www.cnblogs.com/moxiaoan/p/5683743.html 1.firewalld的基本使用 启动: systemctl start firewall ...

  8. python 可迭代对象 迭代器 生成器总结

    可迭代对象 只要有魔法方法__iter__的就是可迭代对象  list和tuple和dict都是可迭代对象 迭代器 只要有魔法方法__iter__和__next__的就是可迭代对象 生成器 只要含有y ...

  9. typescript之初学习

    ts的优势: 支持ES6规范 强大的IDE支持(类型检测.语法提示.重构等) Angular的开发语言 ts的新特性: 一.字符串 1.多行字符串,使用反引号`` 2.字符串模板,使用表达式传入变量和 ...

  10. Three.js学习笔记04--纹理

    1 纹理由图片组成  3D世界的纹理由图片组成. 将纹理以一定的规则映射到几何体上,一般是三角形上,那么这个几何体就有纹理皮肤了. 首先应该有一个纹理类,其次是有一个加载图片的方法,将这张图片和这个纹 ...