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

原博文链接:https://blog.csdn.net/zhonglunshun/article/details/91366460
1、在访问ip地址之前,一定要在阿里云上面配置安全规则,开放80端口(apache httpd的默认端口为80)
2、原博主用于测试环境是否搭建成功的php文件似乎有点问题,我重新写了个简单的测试文件
3、如果你安装的MySQL数据库是8以上(我的服务器上之前已经安装了MySQL8),可能会报错。原因是8对密码采用了新的加密方式,解决方式自行百度

<?php
/**
 * 测试环境是否搭建成功
 * @author passerbyYSQ
 * @create 2020年3月6日 下午8:22:12
 */
echo 'hello!';
// 最后的端口号,根据自己情况修改
$link = new mysqli("localhost", "用户名", "密码", "要连接的数据库", 3306); 
if ($link->connect_error) {
    die("Fail to connect Mysql : " . $link->connect_error);
}
echo '连接成功!';
$link->set_charset('utf8');
phpinfo();
?>


这篇文章讲的是如何在一个新搭建的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
  1. 查看ssh状态
service sshd status
# 或者使用 /etc/init.d/sshd status 
  • 1
  • 2
  1. 停止/启动/重启/
service sshd start	#命令开启SSH服务;
service sshd stop	#停止SSH服务命令;
service sshd restart	#重启SSH服务命令
  • 1
  • 2
  • 3
  1. 设置ssh开机启动
chkconfig sshd on 
  • 1

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
  • 2
  • 3
  1. 启动、测试
    备注:/etc/init.d/httpd [status/stop/start/restart]和service httpd [status/stop/start/restart]效果是一样的;
systemctl start httpd.service
  • 1
  1. 设置开机启动
systemctl enable httpd.service
  • 1
  1. 验证apache是否安装成功
    在浏览器输入目标主机的ip地址,如果弹出一个apache的页面说明安装成功,不同版本的apache主页不一样,这里就不贴图了;阿里云直接可以在控制台看到外网ip;

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

service php-fpm reload
  • 1

安装数据库(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 安装即可
  • 1
  • 2
  • 3

备注:安装mysql版本的时候新系统默认是安装5.6的,有些系统安装的是5.5以下的版本,这里我还是推荐使用新版本,有些东西不支持老版本的数据库;centos下的mysql已经改名为mariaDb;

  1. 配置、启动
service mysqld start 
  • 1

如果是首次一般要设置mysql账号密码的,比较简单的方式是使用mysql_secure_installation

sudo mysql_secure_installation
  • 1

然后提示如下:

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 设置开机启动
sudo chkconfig --levels 235 mysqld on
  • 1

安装数据库(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(重新加载权限表)


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

安装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
  • 2
  • 3
  • 4
  • 5
  1. 配置、启动
    安装完php后需要重启httpd mysqld:
service mysqld restart 
service httpd restart 
  • 1
  • 2

3.测试和部署

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

环境测试

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

  1. 编写测试文件
 cd /var/www/html/
 touch index.php
  • 1
  • 2

然后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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  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
  1. 访问测试
    如果上面没有修改默认访问路径,则在浏览器中输入目标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#改名字
  • 1
  • 2
  • 3
  • 4
  • 5

进入phpMyAdmin文件夹,将libraries/config.default.php复制到phpMyAdmin目录下;

cd phpMyAdmin
cp libraries/config.default.php config.inc.php
  • 1
  • 2

然后重启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文件
  • 1
  • 2
  • 3
  • 4
  • 5

然后会看到刷刷刷的ok,过一下就会提示导入成功;

  1. 第二种方式

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

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

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

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

应用部署

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

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

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" rel="stylesheet">
                                            <div class="more-toolbox">
            <div class="left-toolbox">
                <ul class="toolbox-list">
                    
                    <li class="tool-item tool-active is-like tool-clicked"><a href="javascript:;"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#csdnc-thumbsup"></use>
                    </svg><span class="name">点赞</span>
                    <span class="count">4</span>
                    </a></li>
                    <li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#icon-csdnc-Collection-G"></use>
                    </svg><span class="name">收藏</span></a></li>
                    <li class="tool-item tool-active is-share"><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;1582594662_002&quot;}"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#icon-csdnc-fenxiang"></use>
                    </svg>分享</a></li>
                    <!--打赏开始-->
                                            <!--打赏结束-->
                                            <li class="tool-item tool-more">
                        <a>
                        <svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
                        </a>
                        <ul class="more-box">
                            <li class="item"><a class="article-report">文章举报</a></li>
                        </ul>
                    </li>
                                        </ul>
            </div>
                        </div>
        <div class="person-messagebox">
            <div class="left-message"><a href="https://blog.csdn.net/zhonglunshun">
                <img src="https://profile.csdnimg.cn/F/B/9/3_zhonglunshun" class="avatar_pic" username="zhonglunshun">
                                        <img src="https://g.csdnimg.cn/static/user-reg-year/2x/8.png" class="user-years">
                                </a></div>
            <div class="middle-message">
                                    <div class="title"><span class="tit"><a href="https://blog.csdn.net/zhonglunshun" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">疯人院的院长大人</a></span>
                                        </div>
                <div class="text"><span>发布了97 篇原创文章</span> · <span>获赞 265</span> · <span>访问量 56万+</span></div>
            </div>
                            <div class="right-message">
                                        <a href="https://bbs.csdn.net/topics/395533117" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-messageboard">他的留言板
                    </a>
                                                        <a class="btn btn-sm  bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">关注</a>
                                </div>
                        </div>
                </div>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章