一、前言 LAMP即:Linux、Apache、Mysql、Php,也就是在linux系统下运行php网站代码,使用的数据库是mysql、web服务软件是apache。之所以存在LAMP这种说法,倒不是一定要如此搭配方行,只是mysql、apache比较常用而且免费,所以linux下的php网站就使用LAMP这样的搭配。 二、环境准备 1、centos7 ,我使用的是centos7(64位)最小系统,ISO包上官网下载即可,找不到官网的到下面链接中随便下一个就可以了 http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso 2、apache ,稍后使用yum安装最新版即可 3、mysql ,当前最新版是mysql8.0了,需要到官网下载yum源而后通过yum源安装即可(文末附下载链接),也可以直接用wget获取(后续有) 4、php ,稍后使用yum安装最新版即可 三、centos准备 首先我们要让centos准备好环境,很多童鞋看网上随便找来的教程整了半天就是不能正常运行,常见原因就是漏了这一步。 1、关闭防火墙 # systemctl stop firewalld.service 使防火墙开机不启动(避免系统重启后防火墙又生效) # systemctl disable firewalld.service 2、关闭selinux # setenforce 0 setenforce: SELinux is disabled 修改selinux配置文件使其开机不启动 # vi /etc/sysconfig/selinux //将“SELINUX=enforcing”修改为“SELINUX=disabled” 关闭防火墙和selinux后centos就准备好了,因为是测试环境嘛,所以这两个都关闭了,如果在生产环境可别直接关了,还是要设置下的。 四、安装apache apache安装非常简单,使用下面的指令即可 # yum install -y httpd 安装好以后需要修改下配置文件使apache支持php # vi /etc/httpd/conf/httpd.conf //在“DirectoryIndex index.html”后面添加“index.php” //在“AddType application/x-gzip .gz .tgz”后面添加一行“AddType application/x-httpd-php .ph” //最后启动apache # systemctl start httpd 注意:有些童鞋可能会遇到apache莫名其妙就自己挂了,可能是你内存不够,增加点虚拟内存即可 至此apache就安装和准备好了 五、安装mysql 1、将前面说到的mysql yum安装源(文末附下载链接)放到centos任意目录,直接使用yum安装。 //也可以使用wget获取该rpm包 # wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm //安装yum源 # yum -y install mysql80-community-release-el7-3.noarch.rpm //使用yum安装mysql # yum -y install mysql-community-server 注意:一般来说你会发现mysql-community-server-8.0.16-2.el7.x86_64.rpm这个包下载会很慢,所以这里我们提供百度云盘直接下载这个包(文末附下载)。将下载好的rpm包放入目录“/var/cache/yum/x86_64/7/mysql80-community/packages/”(不同系统可能不一样,你可以搜索mysql80-community找到目录位置),再次执行安装指令即可。 2、配置mysql //启动mysql # systemctl start mysqld.service //检查一下运行状态 # systemctl status mysqld.service 注意:对于一些新手,可能会遇到mysql莫名其妙就自己关闭的情况,可能是你的内存不够啦。linux内存不足的情况会自动关闭一些占用内存较多的应用,所以物理内存确实不足的情况可以增加点虚拟内存。 //获取默认密码(mysql8.0自带默认密码,必须使用默认密码登录后方可修改密码) # grep "password" /var/log/mysqld.log HGA4LKdjlj” //使用默认密码进入数据库 # mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456'; Query OK, 0 rows affected (0.01 sec) 注意:进入mysql后每条指令后必须加分号“;”,否则指令不会执行 注意:mysql8.0要求密码必须有一定复杂度,必须包含大小写字母、数字、特殊字符,长度也不能太短,这里我配置的密码就是Root@123456 注意:'root'@'localhost'含义是使用本地登录的root用户(一般建议本机登录和远程登录用户名、密码不要一样),如果要从外部设备访问root用户还需要做下面的设置 //设置root远程访问(如果不从外部访问就不用此配置) create user 'root'@'%' identified by 'Root@123456'; Query OK, 0 rows affected (0.01 sec) //为远程root用户分配访问权限 grant all on *.* to 'root'@'%' with grant option; Query OK, 0 rows affected (0.00 sec) 注意:此处很多老的教程使用指令“ grant all privileges on *.* to 'root'@ '%' identified by 'Root@123456' with grant option;”,但是会报错“ERROR 1064 (42000): You have an error in your SQL syntax;check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'Root@123456'' at line 1” 原因是老版本使用权限修改指令可以自动创建用户(需要注意“root@%”与"root@localhost"是两个用户,便于使用不同密码),而新版本需要手动创建用户,然后向其分配权限 注意: *.* 表明所有数据库的所有表,可以通过此设置限制用户的访问(如new.abc就是new数据库的abc表) //更新权限表使配置生效 flush privileges; Query OK, 0 rows affected (0.00 sec) //退出数据库 exit; Bye //修改字符编码为utf-8(中文世界一般使用utf-8编码防止中文乱码) # vi /etc/my.cnf //在 前面添加: default-character-set=utf8 //在文件末尾添加: character-set-server=utf8 collation-server=utf8_general_ci //保存后重启数据库即可 # systemctl restart mysqld.service 至此,数据库安装完毕,而且我们分别设置了本地登录和远程登录的密码。 六、安装php php安装非常简单,下面两个指令分别安装了php、php-mysql支持包、php常用扩展包: # yum install -y php php-mysql # yum install -y php-gd php-xml php-process php-mbstring php-bcmath 七、测试 到apache网站代码目录中新建index.php文件 # vi /var/www/html/index.php 并输入下面的代码(此段代码的作用是输出php的信息): 保存后就可以试试访问你新建的网站了 八、更多资料 除了前面说的mysql安装相关的两个rpm文件,我们还准备了一些LAMP调优相关资料, 关注公众号“零基础爱学习”回复“LAMP”即可获取: 1、mysql80-community-release-el7-3.noarch.rpm (mysql官方源) 2、mysql-community-server-8.0.16-2.el7.x86_64.rpm (mysql主包) 放入目录“/var/cache/yum/x86_64/7/mysql80-community/packages/”(不同系统可能不一样,你可以搜索mysql80-community找到目录位置) 3、LAMP优化入门 4、Centos7防火墙配置手册 5、php-mysql 连接方式