手把手帶你搭建第一個個人網站(上)
前言
隨著云計算普及,服務器價格可以說不斷降低,因此寫出這篇文章讓對IT感興趣或者想讓自己變得與眾不同的小伙伴們更便捷地搭建一個屬于自己的個人網站。在自己的網站中秀出自己的不一樣精彩!
一、簡介
1. 服務器
這次使用的是UCloud的服務器(云主機UHost),IP使用UCloud的彈性IP(如果您使用的是其他服務器或其他友商的云主機,該文的試驗步驟依然相同)。
2. 后端
后端配置統稱為LNMP,LNMP=Linux+Nginx+MySQL+PHP(即Linux系統內搭建Nginx,MySQL,PHP5服務)。
Nginx:Nginx(發音同 engine x )是一個網頁服務器,它能反向代理HTTP,HTTPS, SMTP, POP3, IMAP的協議鏈接,以及一個負載均衡器和一個HTTP緩存。
MySQL:一個關系型數據庫管理系統
PHP:一種在服務器端執行的嵌入HTML文檔的 腳本語言
Linux系統是centos 6.5,其他服務用atomic包進行yum安裝。
3. 前端
前端配置為WordPress,WordPress是一種使用PHP語言開發的博客平臺,用戶可以在支持PHP和MySQL數據庫的服務器上架設屬于自己的網站。也可以把 WordPress當作一個內容管理系統(CMS)來使用。
WordPress配置為最新配置。(包為latest.tar.gz)
4. 服務對比
一般搭建網站服務基本都是LAMP或者LNMP(A即Apache,N即Nginx)。
- Apache的優勢:開源,穩定,模塊豐富
- Nginx的優勢:消耗資源少,支持高并發連接,效率高
使用環境:
- LNMP:節省內存、靜態內容多、高并發、規模小
- LAMP:力求穩定、動態內容多、功能多、規模大
二、后端配置
1. 準備工作
(1) 使用工具:
推薦使用xshell進行遠程操作,如果您使用的是云主機,則遇到開關機或者重啟機器的命令(如:reboot),需要登錄控制臺進行操作。
(2) linux內迅速定位到行數
冒號后輸入行數,點擊enter鍵
圖1:行數定位
(3)linux迅速定位到字符
冒號后輸入 /字符,點擊enter鍵(查找下一個,點擊N)
圖2:字符定位
(4) 開通iptables(開啟80,3306端口)
注:80端口開啟,針對http協議(即網頁);3306端口開啟,針對MySQL數據庫
1)添加兩條iptables規則,進行開通。
- #vim/etc/sysconfig/iptables
- -A INPUT -m state --state NEW -m tcp -p tcp
- --dport 80 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp
- --dport 3306 -j ACCEPT
圖3:修改iptables規則(放在22后面)
2)重啟iptables
- # /etc/init.d/iptables restart
圖4:重啟防火墻
(5) 關閉SELinux
1)修改兩條SELinux規則
- # vim /etc/selinux/config
- SELINUX=disabled
- #SELINUXTYPE=targeted
圖5:修改SELinux規則
2)重啟服務器
- #reboot
(6) 安裝第三方yum源
1)下載wget工具
- #yum install wget
圖6:下載wget工具
2)下載atmoic包
注:Atomic源支持Fedora,RHEL和CentOS的YUM包管理
- # wget
http://www.atomicorp.com/installers/atomic
圖7:下載atomic包
3)安裝atomic包
- # sh ./atomic
圖8:安裝atomic包
4)更新yum源
- #yum check-update
圖9:更新atomic包
2.安裝后端服務
(1) 安裝Nginx
1)刪除系統自帶的軟件包
- # yum remove httpd* php*
2)yum安裝Nginx
- #yum install nginx -y
圖10:安裝Nginx
3)設置Nginx開機啟動
- # chkconfig nginx on
4)啟動Nginx
- # service nginx start
圖11:啟動Nginx
(2) 安裝MySQL
1)yum 安裝MySQL
- #yum install mysql mysql-server -y
注:yum install 包名 –y :自動安裝包內所有,y即yes
圖12:安裝MySQL
2)啟動MySQL
- # /etc/init.d/mysqld start
圖13:啟動MySQL
3)設置MySQL開機啟動
- #chkconfig mysqld on
4)拷貝my-medium.cnf配置文件
- #cp /usr/share/mysql/my-medium.cnf
- /etc/my.cnf
注:如果/etc目錄下面默認有一個my.cnf 直接覆蓋即可
圖14:拷貝my-medium.cnf配置文件
5)設置MySQL的root密碼
- #mysql_secure_installation
圖15:點擊enter
圖16:輸入Y,創建root密碼
圖17:輸入兩次密碼
圖18:移除匿名用戶,輸入Y
圖19:不允許root最高權限遠程登錄,輸入Y
圖20:移除測試庫并進行訪問,輸入Y
圖21:重新加載特權表,輸入Y
6)重啟MySQL服務
- # /etc/init.d/mysqld restart
圖22:重啟MySQL服務
(3) 安裝PHP5
1)yum安裝php
- #yum install php php-fpm -y
圖23:重啟MySQL服務
2)安裝PHP組件(PHP5支持MySQL)
- # yum install php-mysql php-gd libjpeg* php-imap php-ldap php-pear php-xml php-xmlrpc php-mbstring php-mcrypt
- php-bcmath php-mhash libmcrypt
圖24:安裝PHP組件,選擇yes
圖25:安裝PHP組件最后結果
3)設置php-fpm 開機啟動
- #chkconfig php-fpm on
4)啟動php-fpm
- #/etc/init.d/php-fpm start
圖26:啟動php-fpm
3. 配置后端服務
(1) Nginx支持PHP
1)備份nginx.conf配置文件
- #cp /etc/nginx/nginx.conf /etc/nginx/nginxbak
圖27:備份nginx.conf配置文件
2)編輯nginx.conf配置文件
- #vim /etc/nginx/nginx.conf
user nginx nginx; 添加Nginx組的用戶的用戶名為nginx
圖28:編輯nginx.conf配置文件
3)備份default.conf配置文件
- #cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.dbak
圖29:備份default.conf配置文件
4)編輯default.conf配置文件
- #vim /etc/nginx/conf.d/default.conf
在location內添加
- index index.php index.html index.htm;
圖30:location內添加index格式
添加一條
- location ~ \.php$ {
- root html;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
圖31:添加一條php規則
5)重啟Nginx
- #service nginx restart
圖32:重啟Nginx
(2) 配置PHP
1)編輯配置
- #vim /etc/php.ini
211行:修改為short_open_tag=ON
圖33:修改211行
375行:修改為 expose_php =off
圖34:修改375行
878行:修改為 date.timezone= PRC
圖35:修改878行
(3) 配置php-fpm
1)備份php-fpm配置文件
- #cp /etc/php-fpm.d/www.conf/etc/php-fpm.d/www.confbak
2)進行配置編輯
- #vim /etc/php-fpm.d/www.conf
將apache改為nginx
- user=nginx
- group=nginx
圖36:原www.conf圖
圖37:現www.conf圖
(4) 測試
1)進入html
- #cd /usr/share/nginx/html
4.2)編輯index.php文件
- #vim index.php
編輯內容:
- <?php
- $link=mysql_connect("localhost","root","111111");
- if(!$link) echo "FAILD!Please check your password!";
- else echo "OK!Your connection is successful";
- ?>
注:mysql_connect( )函數的參數依次為:mysql服務器名或IP、mysql用戶名,mysql用戶密碼。
圖38:編輯index.php內容
3)設置權限
- # chown nginx.nginx /usr/share/nginx/html
- -R
4)重啟nginx
- #service nginx restart
圖39:重啟Nginx
5)重啟php-fpm
- #service php-fpm restart
圖40:重啟php-fpm
使用個人電腦登錄網頁:
圖41:mysql連接成功
證明MySQL連接成功了!
6)修改index.php文件
- #vim index.php
修改內容:
- <?php
- phpinfo();
- ?>
圖42:index.php內容
7)重啟nginx
- #service nginx restart
圖43:重啟Nginx
8)重啟php-fpm
- #service php-fpm restart
圖44:重啟php-fpm
9)輸入服務器的IP地址進入網頁
UCloud云主機:
- #curl myip.ipip.net
圖45:云主機查找eip地址
使用個人電腦登錄網頁:
圖46:個人電腦瀏覽器登錄網頁情況
證明LNMP的后端試驗成功了!
【本文是51CTO專欄機構作者“大U的技術課堂”的原創文章,轉載請通過微信公眾號(ucloud2012)聯系作者】