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
河长的项目—lyhz 自在溧阳—citygo
Android移动端
百度一下啦
Iphone移动端
参考https://laod.cn/hosts/iphone-ipad-ios-hosts.html