【环境】lamp环境搭建

        搭建lamp环境真的是学习linux最好的实践了。从去年9月开始,我搭建lamp环境应该有十多次了,第一次是在windows下分别搭建的php,mysql和apache。手改配置文件,居然也没出什么错误。之后是因为作业要求,在linux下用包管理器搭建环境。在ubuntu虚拟机、kali虚拟机和自己的云服务器以及帮同学搭建都算上,大概有5次左右。之后受老师要求,在一台年久失修的服务器上把原本的php和apache卸载,安装最新的php和apache。那次是纯源码编译安装。只记得从12点弄到了凌晨5点多。之后信安协会的作业又apt搭建一次,纯源码搭建一次。只不过那次是寒假,源码搭建的最后连接数据库有点问题也没去管。再再之后,就没干过手工搭建的事了。phpstudy和宝塔一键,真香。
        废话说多了,这里记录的是我最近在腾讯云的ubuntu学生机上用apt搭建lamp环境的过程,不出意料的,不管之前搭建过多少次,每次还是会遇到一大堆坑。不过之前不写博客,现在这里记录一下过程,希望以后踩坑的时候有自己的博客可以查(如果之前搭建的10多次都有过程记录该多好。。。):

以下命令全部使用root执行,如果不用root记得sudo

#apt update
更新一下可用软件包列表

#apt upgrade
更新已安装的软件包

#apt install apache2
安装apache2

#systemctl start apache2
启动apache

#apt install mysql-client mysql-server
安装mysql

#mysql -uroot
登陆mysql

mysql>use mysql;
进入mysql表

mysql>update user set authentication_string=password(“123456”) where user=“root”;
设置数据库root的密码

mysql>update user set plugin=“mysql_native_password”;
这一步是启用密码登陆的作用,不然设置的密码是无效的,任意密码都能登陆

mysql>flush privileges;
使设置生效

mysql>quit
退出mysql

#apt install php
安装php,腾讯云给我装的是php7.2

#vim /var/www/html/index.php
在web根目录下创建index.php文件,里面是用mysqli连接数据库的语句

<?php
include("../db_config.php");
$conn=mysqli_connect($mysql_name,$mysql_username,$mysql_password);
if($conn == false)
{
        die(mysqli_connect_error());
}else
{
        echo("数据库连接成功!<br>");
}
?>

#vim /var/www/html/phpinfo.php
在web根目录下创建phpinfo

<?php phpinfo();?>

#apt install php-mysql
#apt install php-mbstring
#apt install php-gettext

安装扩展,有一些是phpmyadmin用到的

#vim /etc/php/7.2/apache2/php.ini
编辑php.ini文件

#extension_dir="./"
#extension=mysqli
#extension=mbstring
#extension=pdo_mysql
将上面的注释#去掉
display_errors=On
开启debug模式方便定位错误

#systemctl restart apache2
重启apache

这里遇到一个坑,卡了我好久,就是mysqli怎么也连不上数据库,错误提示找不到mysqli这个扩展。看phpinfo里也确实没有,并且是什么和数据库相关的扩展都没有,mysql,mysqli,mysqlnd,pdo……都没有。查了好久怎么安装扩展……

后来发现其实之前apt install php-mysql就应该是安装好了的,用
#find / |grep mysqli
命令找到mysqli.so文件在下面目录
/usr/lib/php/20170718/mysqli.so

想到应该是扩展没有引用进来
#vim /etc/php/7.2/apache2/php.ini
再次编辑php.ini

extension_dir="/usr/lib/php/20170718/"

更改了扩展的目录位置

#systemctl restart apache2
重启服务器

在这里插入图片描述
#vim /etc/apache2/apache2.conf
(vim /etc/httpd/conf/httpd.conf #CentOS)
编辑apache配置文件隐藏服务器报错页面的版本号和敏感信息
添加

ServerTokens Prod
ServerSignature Off

#systemctl restart apache2
(systemctl apache2 restart #SystemD)
重启服务器

猜你喜欢

转载自blog.csdn.net/asd413850393/article/details/102112133