【Linux服务器】安装MySQL+Apache2+PHP服务并配置防火墙和MySQL远程访问
来源:互联网 发布:青蛙少年 知乎 编辑:程序博客网 时间:2024/06/08 20:07
一台新的Linux服务器安装这三个程序之后基本可以满足APP开发者的普通接口测试需求。
安装过程主要使用apt命令,这个命令有一些其他人的博客讲的很多,我主要用了两个:
- apt-cache search [名称]
这个命令用于查看库里MySQL这种程序的详细的安装包名,比如我执行了查找mysql之后发现有一个包名字是mysql-server - apt-get install [详细名称]
这个命令就是安装程序到Linux服务器了,比如安装mysql,我执行的就是apt-get install mysql-server
由于对Linux不是特别熟悉,暂时还不敢自己折腾,这里安装所有的服务都用的是默认配置。
所有的命令提示没有权限的都可以在最前面加sudo再执行,也可以在执行这些命令之前先执行一次sudo su命令,获取root权限。
安装MySQL
- 安装命令:
apt-get install mysql-server
中途需要输入一个root用户初始密码,输入+重复输入,两次,输入后可以用键盘方向键操作光标、回车选择OK。
(可能win用多了会习惯鼠标点点点,这里其实可以发现,不只是Linux可以用键盘操作,在win安装什么东西的时候有些地方看起来是一个按钮但是点着没反应,那就可以用键盘操作看看。) - 检查结果:命令
mysql -h localhost -u root -p密码
来进入mysql控制台,之后命令select version();
可以查看安装的mysql版本信息,命令exit;
可以退出mysql控制台。要注意mysql控制台的命令是要输分号的,因为是在执行sql语句,分号是结束。
安装Apache2
- 安装命令:apt-get install apache2
- 检查结果:默认安装方式会在
/etc/init.d/
生成一个可执行脚本,可以用命令/etc/init.d/apache2 start
来启动Apache2服务器,然后在浏览器输入http://[你的IP地址]
来查看是否成功开启。
如果显示错误是ERR_CONNECTION_REFUSED,并且命令netstat -anp
显示80端口已经在Listen,那么可能是由于服务器的防火墙设置。如果用自己的MySQL工具远程连接服务器上的mysql数据库提示错误10038,那么确认肯定是防火墙问题了。
配置防火墙
Linux配置防火墙用的是iptables
命令。
命令iptables -L -n
查看当前的防火墙配置,需要root权限。
然后我发现我用的机器防火墙是开着的,不敢折腾,服务器有点远,搞坏了ssh连不上要自己去机房。。。贴个链接吧:
https://www.cnblogs.com/alimac/p/5848372.html
我们Linux小哥给加了两条规则,后面最后一个命令是保存设置,因为不保存的话重启服务器之后防火墙配置会失效。
sudo suiptables -I INPUT 5 -p tcp -m tcp --dport 80 -j ACCEPTiptables -I INPUT 5 -p tcp -m tcp --dport 3306 -j ACCEPTiptables-save >/etc/iptables.rules
然后开放了80端口之后浏览器输入IP可以显示Apache的欢迎页。
配置MySQL远程访问
但是3306开放了,mysql远程连接还是10038错误。
然后考虑是mysql没有开放远程访问权限,由于不想给root用户远程访问权限,因此新建用户。
以下命令进入MySQL命令行来执行,每条命令后需要分号:
- 命令创建用户:
create user '用户名' identified by '密码';
- 命令创建数据库:
create database '数据库名';
- 命令赋予指定用户远程访问权限:
grant all privileges on 数据库名.* to 用户名@'%';
- 命令刷新权限表:
flush privileges;
执行完以上命令之后,再修改/etc/mysql/mysql.conf.d/mysqld.cnf
文件中的bind-address = 127.0.0.1
为bind-address = 0.0.0.0
,然后重启MySQL服务(sudo service mysql restart
),即可使用设定的用户名和密码远程访问MySQL数据库。
安装PHP和Apache的PHP插件
- 安装命令:
apt-get install php7.0 libapache2-mod-php7.0
- 检查结果:安装完成后,使用命令
systemctl restart apache2
重启Apache。在/var/www/html/
目录下创建一个info.php
文件,输入代码:<?php phpinfo();?>
,然后使用浏览器访问http://[ip地址]/info.php
,可以显示php信息,则证明PHP安装正常且与Apache2已经打通。
安装其他PHP插件
先使用apt-cache search php7.0
查一下有哪些PHP7插件,然后选择安装。这里我选择了mysql插件,其他的可以按需安装。
- 安装命令:
apt-get install php7.0-mysql
- 检查结果:重启Apache服务(
service apache2 restart
),然后把上一项里修改的/var/www/html/info.php
修改成下面的代码:
<?php $mysqli = new mysqli('localhost', '用户名', '密码', '数据库名'); if ($mysqli->connect_error) { die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); }; echo 'ok';
然后重新使用浏览器访问http://[ip地址]/info.php
,显示OK,则证明环境配置完成。
自定义Apache2访问目录及端口
由于某些原因,不想把80端口暴露,可以修改Apache2的配置文件,更换端口及文件目录。
- 准备目录:新建目录
- 更换端口:防火墙关闭80端口,开启新端口8888
sudo iptables -D INPUT -p tcp -m tcp --dport 80 -j ACCEPTsudo iptables -I INPUT 5 -p tcp -m tcp --dport 8888 -j ACCEPT
- 修改Apache2配置:文件位置在
/etc/apache2
,需要修改以下内容:
1. ports.conf 监听80端口改为8888端口
2. apache.conf修改,照着注释掉的/srv目录的配置增加自己的配置:
<Directory /你的目录/> Options Indexes FollowSymLinks AllowOverride None Require all granted</Directory>
3. sites-available目录修改,新增my8888.conf
文件,内容示例如下:
<VirtualHost *:8888> DocumentRoot /目录 <Directory /目录/> Order deny,allow Deny from all #配置使得根目录下其他子目录不会被8888端口访问到。 </Directory> <Directory /子目录/> Allow from all Options FollowSymLinks MultiViews AllowOverride none Require all granted </Directory> #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/my8888_error.log CustomLog ${APACHE_LOG_DIR}/my8888_access.log combined</VirtualHost>
4. sites-enabled目录修改,使用ln -s 源文件 目标文件
创建快捷方式指向sites-available
目录下的my8888.conf
文件
- 重载Apache2服务器,命令
service apache2 reload
。 - 检查结果:浏览器请求
http://[IP地址]:8888/子目录/*.php
,定位到你写的PHP文件的位置就可以。如果你写的文件是index.php,路径可以精确到文件夹,Apache2默认会去查找index.*。
服务工作原理不讲,不会。
完。
- 【Linux服务器】安装MySQL+Apache2+PHP服务并配置防火墙和MySQL远程访问
- linux上安装mysql并配置远程访问
- CentOS安装mysql并配置远程访问
- mysql+apache2+php安装配置
- CentOS7安装MySql,防火墙关闭,远程访问
- 服务器配置mysql远程访问
- ubuntu下安装mysql并配置远程访问
- 服务器安装mysql后配置远程访问权限
- 在Linux虚拟机下安装Mysql,并远程访问
- Ubuntu16.04服务器安装配置MySQL并开启远程连接
- CentOS7.2 安装mysql,并配置自动启动和远程访问
- Linux服务器上安装MYSQL,并且开启远程访问
- Linux LAMP(Apache2+MySQL+PHP)安装
- Linux下php+apache2+mysql+wordpress安装
- 远程linux服务器安装mysql
- ubuntu安装mysql,设置远程访问服务
- 安装MySql 并开放远程访问权限
- ubuntu安装并远程访问mysql
- 解决 keytool -genkey -alias tomcat -keyalg RSA错误
- 数据结构之红黑树(一)——基础分析
- vs编译BOOST
- linux进程、线程(or子进程)、资源占用查看
- Transp. Table KONP(Conditions(Item))
- 【Linux服务器】安装MySQL+Apache2+PHP服务并配置防火墙和MySQL远程访问
- 高德地图百度地图导航坐标转换
- python adaboost的简单实现
- 数据结构之红黑树(二)——插入操作
- php如何解决HTML contains invalid UTF-8 character(s)问题
- Android N 来电流程(MT)
- MySQL explain输出信息介绍
- Git简单使用笔记
- Android开发之漫漫长途 Ⅳ——Activity的显示之ViewRootImpl初探