欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

阿里云搭建php开发环境并部署Web应用

程序员文章站 2022-07-10 09:43:36
...


这篇文章讲的是如何在一个新搭建的linux主机上(我这里用的是阿里云的centos,其他系统类同),并在该服务器上部署包含mysql数据库的Web应用;

技术栈:Mysql+Php+Apache Httpd

1.准备工作

工具

  1. 一台拥有最高权限的linux服务器;
  2. Php部署包或者源码包;
  3. FinalShell(ssh远程连接,putty和xshell均可)

安装SSH服务

开启linux服务器的ssh登录(阿里云默认开启,可以跳过);

  1. 安装ssh服务
yum install openssh-server
  1. 查看ssh状态
service sshd status
# 或者使用 /etc/init.d/sshd status 
  1. 停止/启动/重启/
service sshd start	#命令开启SSH服务;
service sshd stop	#停止SSH服务命令;
service sshd restart	#重启SSH服务命令
  1. 设置ssh开机启动
chkconfig sshd on 

Ok,到这里服务器端的ssh搭建好了,现在使用ssh终端工具连接,我这里使用的是finalshell,安装方式不说了,连接方式也很简单,打开finalShell的文件夹图表,新建连接,主机填目标服务器ip地址,然后进行连接,这些都比较简单就不多说;

下面的安装命令建议先切换到root用户,使用su可以避免每次输入sudo;

2.环境搭建

下面正式进入环境搭建步骤;

安装 Apache

Apache是运行Web应用必备环境,阿帕奇很牛逼,像java的三脚猫,httpd都是Apache出来的,Apache是一个开源项目,但是对commiter的要求很高,整个中国也没有多少个提交者;

  1. 检查、删除、安装
rpm -qa|grep httpd  #检查是否安装apache
rpm -e 包名 --nodeps    #若有则删除  PS:我没有删除,直接用的服务器原来的。
yum install httpd     #安装,根据提示,输入Y即可安装成功
  1. 启动、测试
    备注:/etc/init.d/httpd [status/stop/start/restart]和service httpd [status/stop/start/restart]效果是一样的;
systemctl start httpd.service
  1. 设置开机启动
systemctl enable httpd.service
  1. 验证apache是否安装成功
    在浏览器输入目标主机的ip地址,如果弹出一个apache的页面说明安装成功,不同版本的apache主页不一样,这里就不贴图了;阿里云直接可以在控制台看到外网ip;

  2. 重新部署Web应用
    在环境都搭建完成并已经运行了Web应用后,重新部署应用不需要把httpd停掉,而是调用指令让Apache重新加载就可以了:

service php-fpm reload

安装数据库(Centos7以下)

有些应用使用mysq作为数据库存储,有些使用的是mangdb,我自己习惯Mysql,所以这里以安装Mysql为例;

因为MySQL现在被甲骨文公司收回了版权,所以用另一个mariadb,mariadb为MySQL的一个分支,本质只是名字不一样,mariadb继续开源,他们使用的命令都还是一样的。
如果是centos7以上直接跳过这节

  1. 检查、删除、安装(如果已经安装了数据库密码又忘记了请看另一篇文章[忘记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;

  1. 配置、启动
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] 
  1. 设置开机启动
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文件,切记切记;

  1. 检查、删除、安装
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
  1. 配置、启动
    安装完php后需要重启httpd mysqld:
service mysqld restart 
service httpd restart 

3.测试和部署

到了最后一步了,我们先测试环境是否已经搭建好了,如果搭建好了之后我们就可以把我们的web应用部署到服务器并成功运行;

环境测试

到这里安装环境就已经搭建好了,我们需要测试一下环境是否可用;

  1. 编写测试文件
 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信息:
	?>
  1. 修改路径(可选)
    我们刚刚把index.php放在了 /var/www/html/目录下,这个是apache默认的部署路经,当然我们也是可以放在其他地方得到,只需要修改一下 /etc/httpd/conf/httpd.conf(为了避免十五,建议做修改前都提前备份一下,这是一个好习惯,虽然繁琐但是有时候真的有用);

    打开 httpd.conf 文件,找到 DocumentRoot 为开头的那一行,将DocumentRoot " /var/www/html/" 改成新的 DocumentRoot 路径,修改完成后记得保存并重启Apache

service httpd restart 
  1. 访问测试
    如果上面没有修改默认访问路径,则在浏览器中输入目标ip地址就能看到数据库连接信息和php版本信息;
    阿里云搭建php开发环境并部署Web应用
    这个样子说明成功了;

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指令导入

  1. 第一种方式
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,过一下就会提示导入成功;

  1. 第二种方式

mysql -u用户名 -p密码 数据库名 < 数据库名.sql

一行代码搞定,具体是这样的:

#mysql -uroot -p xxx < 数据库名.sql

然后输入数据库密码,就会自己导入进去;

应用部署

部署就相当简单了,我们直接把应用丢到web应用下就可以了,我这里是/var/www/html/,当然你也可以通过上面的方式修改服务器路径,然后把web应用丢过去;

接下来享受部署好的web服务端吧;