【轉】阿里雲搭建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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章