文章目录
这篇文章讲的是如何在一个新搭建的linux主机上(我这里用的是阿里云的centos,其他系统类同),并在该服务器上部署包含mysql数据库的Web应用;
技术栈:Mysql+Php+Apache Httpd
1.准备工作
工具
- 一台拥有最高权限的linux服务器;
- Php部署包或者源码包;
- FinalShell(ssh远程连接,putty和xshell均可)
安装SSH服务
开启linux服务器的ssh登录(阿里云默认开启,可以跳过);
- 安装ssh服务
yum install openssh-server
- 查看ssh状态
service sshd status
# 或者使用 /etc/init.d/sshd status
- 停止/启动/重启/
service sshd start #命令开启SSH服务;
service sshd stop #停止SSH服务命令;
service sshd restart #重启SSH服务命令
- 设置ssh开机启动
chkconfig sshd on
Ok,到这里服务器端的ssh搭建好了,现在使用ssh终端工具连接,我这里使用的是finalshell,安装方式不说了,连接方式也很简单,打开finalShell的文件夹图表,新建连接,主机填目标服务器ip地址,然后进行连接,这些都比较简单就不多说;
下面的安装命令建议先切换到root用户,使用su可以避免每次输入sudo;
2.环境搭建
下面正式进入环境搭建步骤;
安装 Apache
Apache是运行Web应用必备环境,阿帕奇很牛逼,像java的三脚猫,httpd都是Apache出来的,Apache是一个开源项目,但是对commiter的要求很高,整个中国也没有多少个提交者;
- 检查、删除、安装
rpm -qa|grep httpd #检查是否安装apache
rpm -e 包名 --nodeps #若有则删除 PS:我没有删除,直接用的服务器原来的。
yum install httpd #安装,根据提示,输入Y即可安装成功
- 启动、测试
备注:/etc/init.d/httpd [status/stop/start/restart]和service httpd [status/stop/start/restart]效果是一样的;
systemctl start httpd.service
- 设置开机启动
systemctl enable httpd.service
-
验证apache是否安装成功
在浏览器输入目标主机的ip地址,如果弹出一个apache的页面说明安装成功,不同版本的apache主页不一样,这里就不贴图了;阿里云直接可以在控制台看到外网ip; -
重新部署Web应用
在环境都搭建完成并已经运行了Web应用后,重新部署应用不需要把httpd停掉,而是调用指令让Apache重新加载就可以了:
service php-fpm reload
安装数据库(Centos7以下)
有些应用使用mysq作为数据库存储,有些使用的是mangdb,我自己习惯Mysql,所以这里以安装Mysql为例;
因为MySQL现在被甲骨文公司收回了版权,所以用另一个mariadb,mariadb为MySQL的一个分支,本质只是名字不一样,mariadb继续开源,他们使用的命令都还是一样的。
如果是centos7以上直接跳过这节
- 检查、删除、安装(如果已经安装了数据库密码又忘记了请看另一篇文章[忘记mysql密码怎么办]);
rpm -qa|grep -i mysql #检查是否安装mysql
rpm -e 包名 --nodeps #若有则删除,另外还有一些库和头文件
yum install mysql mysql-server #安装mysql,根据提示,输入Y即可安装成功。若有提示缺少依赖,直接使用yum install 安装即可
备注:安装mysql版本的时候新系统默认是安装5.6的,有些系统安装的是5.5以下的版本,这里我还是推荐使用新版本,有些东西不支持老版本的数据库;centos下的mysql已经改名为mariaDb;
- 配置、启动
service mysqld start
如果是首次一般要设置mysql账号密码的,比较简单的方式是使用mysql_secure_installation
sudo mysql_secure_installation
然后提示如下:
Enter current password for root (enter for none): //这里不用输任何内容直接回车
Set root password? [Y/n] //这里输入 Y 后 写入 root 密码
//以下四步直接选 Y 回车就行
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n]
- 设置开机启动
sudo chkconfig --levels 235 mysqld on
安装数据库(Centos7以上)
为了区分centos7以上的版本,这里专门开了一节点说明下,我就直接贴方式了:
#安装
yum -y install mariadb-server mariadb
#php MySQL组件
yum -y install php-mysql
#启动服务
systemctl start mariadb
#设置数据库配置
mysql_secure_installation
**********
Enter current password for root (enter for none):(第一次运行直接回车)
Set root password? [Y/n] y(设置管理员密码)
Remove anonymous users? [Y/n] n(是否删除数据库中其他管理用户)
Disallow root login remotely? [Y/n] n(不允许数据库管理员远程登陆)
Remove test database and access to it? [Y/n] n(删除测试数据库并访问它?)
Reload privilege tables now? [Y/n] n(重新加载权限表)
**********
安装php
如果不安装php那么web应用程序就无法识别php文件,切记切记;
- 检查、删除、安装
rpm -qa|grep -i php #检查是否安装mysql
rpm -e 包名 --nodeps #若有则删除,另外还有一些库和头文件
yum install php #安装
yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt #安装组件,支持mysql
- 配置、启动
安装完php后需要重启httpd mysqld:
service mysqld restart
service httpd restart
3.测试和部署
到了最后一步了,我们先测试环境是否已经搭建好了,如果搭建好了之后我们就可以把我们的web应用部署到服务器并成功运行;
环境测试
到这里安装环境就已经搭建好了,我们需要测试一下环境是否可用;
- 编写测试文件
cd /var/www/html/
touch index.php
然后index.php文件里面写入如下信息,我这里的数据库用户名和密码都是root;通过这个demo我们就知道我们的环境是否成功搭建了;
<?php
$link = mysql_connect("localhost","root","root") or die(mysql_error());
if($link!=false)
{echo "成功连接mysql";}
else
{echo "与本地mysql服务器连接失败";}
mysql_close();
phpinfo(); #打印php信息:
?>
-
修改路径(可选)
我们刚刚把index.php放在了 /var/www/html/目录下,这个是apache默认的部署路经,当然我们也是可以放在其他地方得到,只需要修改一下 /etc/httpd/conf/httpd.conf(为了避免十五,建议做修改前都提前备份一下,这是一个好习惯,虽然繁琐但是有时候真的有用);打开 httpd.conf 文件,找到 DocumentRoot 为开头的那一行,将DocumentRoot " /var/www/html/" 改成新的 DocumentRoot 路径,修改完成后记得保存并重启Apache;
service httpd restart
- 访问测试
如果上面没有修改默认访问路径,则在浏览器中输入目标ip地址就能看到数据库连接信息和php版本信息;
这个样子说明成功了;
4.导入数据库
导入数据库有两种方式,一种是通过mysql命令行,使用source指令导入,一种是安装可视化工具导入,我这里推荐使用phpAdmin;
安装phpAdmin
phpAdmin实际上就是一个Web应用程序,安装方式和安装Web应用时一样的;如果不想安装这个可以直接跳过;
cd /var/www/html/
wget http://oss.aliyuncs.com/aliyunecs/onekey/phpMyAdmin-4.1.8-all-languages.zip
#也可以使用wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.tar.gz
unzip phpMyAdmin.zip # 如果是第二种则 tar -xf phpMyAdmin-4.0.10.20-all-languages.tar.gz
mv http://oss.aliyuncs.com/aliyunecs/onekey/phpMyAdmin-4.1.8-all-languages phpMyAdmin#改名字
进入phpMyAdmin文件夹,将libraries/config.default.php复制到phpMyAdmin目录下;
cd phpMyAdmin
cp libraries/config.default.php config.inc.php
然后重启mysql和Apache,通过在浏览器中输入目标IP/phpmyadmin访问,使用前面设置的数据库用户名密码访问即可,大概会看到这么一个页面:
备注:如果出现以下类似的错误,说明失缺少一块来,安装好就可以了;
phpMyAdmin - Error
The mbstring extension is missing. Please check your PHP configuration.
使用yum install -y php-mbstring
安装解决;
使用Source指令导入
- 第一种方式
mysql -uroot -proot # 登陆mysql,我这里用户名密码都是root
mysql>create database xxx; #创建数据库xxx是数据库名
mysql>use xxx;
mysql>set names utf8;
mysql>source /home/abc/xxx.sql; #xxx.sql是需要导入的sql文件
然后会看到刷刷刷的ok,过一下就会提示导入成功;
- 第二种方式
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
一行代码搞定,具体是这样的:
#mysql -uroot -p xxx < 数据库名.sql
然后输入数据库密码,就会自己导入进去;
应用部署
部署就相当简单了,我们直接把应用丢到web应用下就可以了,我这里是/var/www/html/,当然你也可以通过上面的方式修改服务器路径,然后把web应用丢过去;
接下来享受部署好的web服务端吧;