搭建Ubuntu + Apache2 + Mysql5.7.19 +PHP7.2

转:https://www.jianshu.com/p/984f2ac52e29

Lamp测试环境搭建

公司购买的是腾讯的ubuntu的云服务器,该操作系统可以使用apt-get install来安装对应的软件,它会自动加载需要的依赖包。同时可以使用apt-cache search all来查看apt可以安装哪些软件,这在后面开启php扩展时会用到的。项目部署用到的是TP5框架,在将原来的windows项目搬到Ubuntu的测试环境中时,出现不少小问题,如实记录下。

言归正传,lamp环境的安装顺序基本时apache + php +mysql 

安装apache

1.sudo apt-get install apache2

安装完毕后apache2 -v可以看到apache版本,也可以访问ip地址会看到apache页面

安装PHP7.2

2.sudo apt-get install php7.2

安装完毕后php -v可以看到PHP版本,然后输入cat /etc/apache2/mods-enabled/php7.2.load 来查看apache是否有加载libphp7.2.so的解析模块,如果没有正确加载的话,运行sudo apt-get install libapache2-mod-php

安装mysql

3.sudo apt-get install mysql-server

安装完毕后,输入cat  /etc/php/7.2/cli/20-mysqli.ini来查看PHP是否有加载mysqli.so的模块

报错了吗?报错就对了,PHP默认不加载mysql的扩展,需要补充安装

4.sudo apt-get install php7.2-mysql然后重复上一步,就能看到extension = mysqli.so了。

OK,装到这里基本的php开发环境就配置完成了,其实上面的可以一行命令来实现。

apt-get install apache2 php7.2 mysql-server php7.2-mysql

哈哈,再拓展两个知识点,第一:网上有lnmp一键安装包https://lnmp.org/install.html 可以安装lnmp,lamp以及lnmpa,具体参照手册,写的很详细了。第二:通过tasksel工具来安装

sudo tasksel install lamp-server(这个我没试过,tasksel只提供常用的套装如lamp,dns服务器,邮件服务器等等)

SO Easy?不存在的

apache2默认的访问路径实在var/www/html/文件下,这个路径的定义在/etc/apache2/sites-enabled文件夹中通过软连接(ln -s)指向了/etc/apache2/sites-avalable/000-default.conf。

ok,现在先 5.sudo vim /var/www/html/phpinfo.php 写入

 

echo mysqli_connect(“localhost”,”root”,”123456”)?”妈妈再也不用担心我的数据库了”:”我去年买了个包”;

phpinfo();

第一个问题来了,mysql5.7以上的版本会默认生成一个随机的root密码,centos系统自行百度,这里我就说ubuntu的解决方法,反正我是没在什么/var/log/mysqld.log中找到temperary password。

答:sudo vim /etc/mysql/my.cnf 写入

[mysqld]  

port=3306  

character-set-server = utf8   

explicit_defaults_for_timestamp=1  

skip-grant-tables=1 

重点在skip-grant-tables = 1可以让你跳过验证登陆到mysql控制台,保存退出后重启msyql,用命令6.sudo service mysql restart

然后登陆MySQL,用命令 7.mysql -uroot 啥的,登上去后修改root登陆密码8.UPDATE user SET authentication_string=PASSWORD(123456) WHERE user=”root”;

update user set password=”123456” where user=”root”;

报错也没得关系,反正现在的root的登陆密码是123456了。

此外,mysql是默认关闭远程连接的,如果想用navicat来管理测试服务器的数据库的话,有以下几点:首先释放3306端口只有本地访问的权限设置,即在修改上面的skip-grant-tables =0时,新添bind_address = *,然后进入本地mysql控制台后,use mysql;

GRANT ALL PRIVILEGES ON ‘*’ TO ‘ROOT ’ @ ’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

然后在刷新下权限flush privileges;

不过5.7以上的版本应该会报错,有方法说需要先刷新权限

或者进入mysql控制台后use mysql; 看到database changed字样时UPDATE user set host = ‘%’ where user =’root’;

然后FLUSH PRIVILEGES;

此外,mysql5.7开始msyql库中的user表的password字段变成了authentication_string

select host , root ,authentication_string from host;

接下来就可以愉快的用navicat来导入数据库了。

安装PHP常用的扩展包

每个系统对模块的需求是不一样的,按需安装即可(参考开头的几句话)TP5肯定需要curl扩展包的,举例:

[if !supportLists]9. [endif]sudo apt-get install php7.2-gd php7.2-curl 安装完毕后重启apache看phpinfo.php的指针页面搜索对应的扩展包名称即可

 

虚拟主机的配置

apache配置虚拟域名以方便在一个服务器上管理不同的项目,apache的配置基本可以修改/etc/apache2/apache2.conf下面直接添加,或者添加一行include ./extra/httpd_vhosts.conf 然后创建相应的目录以及文件,以上不讨论,跟windows版本的配置没啥区别。下面介绍ubuntu下面特别的软连接方式。

/etc/apache2/sites-enabled/目录下软连接的就是对应点虚拟主机,先到/etc/apache2/sites-availabe中创建相应的配置文件,如www.lyhz.com.conf

<VirtualHost *:80>

     DocumentRoot "/home/wwwroot/www.lyhz.com/public"

     ServerName 127.0.0.1

     DirectoryIndex index.html index.htm index.php

        <Directory "/home/wwwroot/www.lyhz.com/public/">

            Options +Indexes +FollowSymLinks +Multiviews

            AllowOverride all

            Require all granted

    </Directory>

</VirtualHost>

先用cd /etc/apache2/sites-enabled ,然后sudo ln -s ../sites-available/www.lyhz.com.conf lyhz

此外,TP需要开启重写模式,有两点注意,上面的AllowOverride all,还有开启apache开启重写模式,cd /etc/apache2/mods-enabled,然后sudo ln -s ../mods-available/rewrite.load rewrite.load

此外,将/etc/php/7.2/cli/php.ini文件中的display_errors = On 和short_tag_open = On

还有,将项目的文件夹chmod -R 777 /home/wwwroot/www.lyhz.com

配置本地hosts文件

Windows用户 C:\Windows\System32\drivers\etc    添加以下几行

111.231.216.94 www.lyhz.com

111.231.216.94 www.citygo.com   


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值