原博文鏈接: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.準備工作
工具
- 一臺擁有最高權限的linux服務器;
- Php部署包或者源碼包;
- FinalShell(ssh遠程連接,putty和xshell均可)
安裝SSH服務
開啓linux服務器的ssh登錄(阿里雲默認開啓,可以跳過);
- 安裝ssh服務
yum install openssh-server
- 1
- 查看ssh狀態
service sshd status
# 或者使用 /etc/init.d/sshd status
- 1
- 2
- 停止/啓動/重啓/
service sshd start #命令開啓SSH服務;
service sshd stop #停止SSH服務命令;
service sshd restart #重啓SSH服務命令
- 1
- 2
- 3
- 設置ssh開機啓動
chkconfig sshd on
- 1
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即可安裝成功
- 1
- 2
- 3
- 啓動、測試
備註:/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; -
重新部署Web應用
在環境都搭建完成並已經運行了Web應用後,重新部署應用不需要把httpd停掉,而是調用指令讓Apache重新加載就可以了:
service php-fpm reload
- 1
安裝數據庫(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 安裝即可
- 1
- 2
- 3
備註:安裝mysql版本的時候新系統默認是安裝5.6的,有些系統安裝的是5.5以下的版本,這裏我還是推薦使用新版本,有些東西不支持老版本的數據庫;centos下的mysql已經改名爲mariaDb;
- 配置、啓動
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
- 設置開機啓動
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文件,切記切記;
- 檢查、刪除、安裝
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
- 配置、啓動
安裝完php後需要重啓httpd mysqld:
service mysqld restart
service httpd restart
- 1
- 2
3.測試和部署
到了最後一步了,我們先測試環境是否已經搭建好了,如果搭建好了之後我們就可以把我們的web應用部署到服務器併成功運行;
環境測試
到這裏安裝環境就已經搭建好了,我們需要測試一下環境是否可用;
- 編寫測試文件
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
-
修改路徑(可選)
我們剛剛把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版本信息;
這個樣子說明成功了;
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指令導入
- 第一種方式
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,過一下就會提示導入成功;
- 第二種方式
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="{"mod":"popu_824"}"><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="{"mod":"1582594662_002"}"><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="{"mod":"popu_379"}" 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="{"mod":"popu_379"}">關注</a>
</div>
</div>
</div>