畢業設計之Web
LNMP:(linux + nginx + mysql + php)linux系統下的Nginx+Mysql+PHP網站伺服器架構
Linux:是目前最流行的免費的作業系統,具有較高的穩定性和安全性
Nginx:是一個高效能的http和反向代理伺服器
Mysql:是一個小型關係型資料庫管理系統
PHP:是一種在伺服器端執行的嵌入HTML文件的指令碼語言
這四種軟體均為免費開源軟體,組合在一起,成為一個免費、高效、擴充套件性強的網站服務系統。
伺服器環境:
作業系統:
Red Hat Enterprise Linux Server 5.4 核心版本: 2.6.18-164.el5
需要的軟體:
Nginx-1.0.11.tar.gz
libevent-2.0.16-stable.tar.gz
mysql-5.5.15-linux2.6-i686.tar.gz
php-5.3.7.tar.bz2
pcre-6.6-2.el5_1.7.i386.rpm
pcre-devel-6.6-2.el5_1.7.i386.rpm
網路引數:
IP: 192.168.1.182/28 netmask:255.255.255.240 Gateway:192.168.1.190
配置步驟:
新建掛載點,掛載光碟
[root@localhost ~]# mkdir /mnt/cdrom/
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
由於安裝軟體過程中需要解決軟體間的依賴關係,所以需要配置yum工具
[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
[rhel-server] 倉庫名稱
name=Red Hat Enterprise Linux server 倉庫的描述
baseurl=file:///mnt/cdrom/Server 倉庫對應的目錄
enabled=1 啟用該倉庫
gpgcheck=1 進行簽名檢測
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release 金鑰檔案的位置
安裝pcre 和pcre-devel 。pcre提供地址重寫功能,pcre-devel提供開發所需的標頭檔案和庫檔案。pcre系統已經預設安裝,還需要安裝pcre-devel 檔案
[root@localhost ~]# yum install pcre-devel
安裝pcre-devel後,重新讀取庫檔案
[root@localhost ~]# ldconfig -v
libevent為事件觸發庫,可提高web伺服器效能,系統中的libevent版本過低,為了使用新版本的libevent ,下面原始碼安裝libevent 2.0
拆解libevent-2.0.16-stable.tar.gz 包到/usr/local/src/ 下
[root@localhost ~]# tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/
切換至libevent 的解壓目錄 /usr/local/src/libevent-2.0.16-stable/下,檢測預編譯環境
[root@localhost ~]# cd /usr/local/src/libevent-2.0.16-stable/
[root@localhost libevent-2.0.16-stable]# ./configure
編譯libevent ,生成4類檔案:標頭檔案、庫檔案、可執行檔案、說明檔案
[root@localhost libevent-2.0.16-stable]# make
安裝libevent,將上述4類檔案存放到相應的位置
[root@localhost libevent-2.0.16-stable]# make install
libevent的預設安裝路徑為/usr/local,切換到/usr/local,下面有lib檔案。但是這個lib檔案位置為/usr/local/lib ,不是標準路徑:/lib 或/usr/lib 。所以要在/etc/ld.so.conf.d 下新建 libevent.conf 檔案(在/etc/ld.so.conf有說明),指明libevent庫檔案的位置。由於include位置為/usr/local/include,是標準路徑,所以不用指明位置。
[root@localhost ~]# vim /etc/ld.so.conf.d/libevent.conf
/usr/local/lib ##libevent的庫檔案位置
重新載入庫檔案,檢視libevent的庫檔案是否載入成功
[root@localhost ~]# ldconfig -v
[root@localhost ~]# ldconfig -pv |grep libevent
libevent_pthreads-2.0.so.5 (libc6) => /usr/local/lib/libevent_pthreads-2.0.so.5
libevent_openssl-2.0.so.5 (libc6) => /usr/local/lib/libevent_openssl-2.0.so.5
libevent_extra-2.0.so.5 (libc6) => /usr/local/lib/libevent_extra-2.0.so.5
libevent_core-2.0.so.5 (libc6) => /usr/local/lib/libevent_core-2.0.so.5
libevent-2.0.so.5 (libc6) => /usr/local/lib/libevent-2.0.so.5
libevent-1.1a.so.1 (libc6) => /usr/lib/libevent-1.1a.so.1
Nginx的搭建
拆解nginx壓縮包
[root@localhost ~]# tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/
建立系統組 nginx
[root@localhost ~]# groupadd -r nginx
建立系統帳號uginx ,使該帳號屬於nginx組
[root@localhost ~]# useradd -r -g nginx -s /bin/false -M nginx
切換到/usr/local/src/ nginx-1.0.11 下,檢測預編譯環境
[root@localhost ~]# cd /usr/local/src/nginx-1.0.11/
./configure
–prefix=/usr
–sbin-path=/usr/sbin/nginx
–conf-path=/etc/nginx/nginx.conf
–error-log-path=/var/log/nginx/error.log
–http-log-path=/var/log/nginx/access.log
–pid-path=/var/run/nginx/nginx.pid
–lock-path=/var/lock/nginx.lock
–user=nginx
–group=nginx
–with-http_ssl_module
–with-http_flv_module
–with-http_stub_status_module
–with-http_gzip_static_module
–http-client-body-temp-path=/var/tmp/nginx/client/
–http-proxy-temp-path=/var/tmp/nginx/proxy/
–http-fastcgi-temp-path=/var/tmp/nginx/fcgi/
–with-pcre
編譯並安裝
[root@localhost nginx-1.0.11]# make && make install
建立目錄/var/tmp/nginx,否則nginx將無法啟動。啟動Nginx
[root@localhost nginx-1.0.11]# mkdir /var/tmp/nginx
[root@localhost nginx-1.0.11]# nginx
檢視nginx是否啟動成功
[root@localhost nginx-1.0.11]# netstat -tupln |grep 80 檢視埠80 是否啟動
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5685/nginx: master
mysql的搭建
此mysql軟體包為綠色軟體,不是原始碼,故拆解位置在/usr/local/mysql下,若是原始碼則應拆解在/usr/local/src下
[root@localhost ~]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/
切換到/usr//local/mysql-5.5.15-linux2.6-i686/,檢視INSTALL-BINARY檔案內容
[root@localhost ~]# cd /usr//local/mysql-5.5.15-linux2.6-i686/
[root@localhost mysql-5.5.15-linux2.6-i686]# vim INSTALL-BINARY
按照裡面的步驟來詳細配置mysql
groupadd mysql 建立組mysql
useradd -r -g mysql mysql 建立系統帳號mysql,加入mysql組
cd /usr/local 進入/usr/local
ln -s mysql-5.5.15-linux2.6-i686 mysql 為該目錄設定軟連線,方便使用
cd mysql
chown -R mysql . 更改所有檔案的所有者為mysql
chgrp -R mysql . 更改所有檔案的所屬組為mysql
scripts/mysql_install_db –user=mysql 以mysql的身份執行scripts/mysql_install_db指令碼
chown -R root . 再將所有檔案的所有者改為root
chown -R mysql data 其中要將data目錄及其子檔案的所有者改為mysql
cp support-files/my-medium.cnf /etc/my.cnf
bin/mysqld_safe –user=mysql & 啟動mysql 資料庫,3306 埠
如果想使用service mysqld restart ,來啟動資料庫,則需要在/etc/init.d下要有名為mysqld 的指令碼,執行下面指令,建立/etc/init.d/mysqld指令碼
cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# service mysqld start
Starting MySQL.. [ OK ]
[root@localhost mysql]# netstat -tupln |grep 3306
tcp 0 0 :::3306 :::* LISTEN 6324/mysqld
設定mysqld開機自啟動
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# chkconfig –list |grep mysql
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
系統啟動時,自動呼叫庫檔案,位置有/lib /usr/lib ,但是現在mysql的資料庫檔案位置在/usr/local/mysql/lib,編輯/etc/ld.so.conf檔案,該檔案指明包含ld.so.conf.d/下的所有.conf檔案。在/etc/ld.so.conf.d/ 下新建mysql.conf檔案,指明mysqld 的lib 檔案的位置
[root@localhost mysql]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib 指明mysql的庫檔案位置
重新載入mysql的庫檔案,並檢視是否載入成功
[root@localhost mysql]# ldconfig -v
[root@localhost mysql]# ldconfig -pv |grep mysql
libtcmalloc_minimal.so.0 (libc6) => /usr/local/mysql/lib/libtcmalloc_minimal.so.0
libmysqlclient.so.18 (libc6) => /usr/local/mysql/lib/libmysqlclient.so.18
libmysqlclient.so (libc6) => /usr/local/mysql/lib/libmysqlclient.so
系統的標頭檔案位置有:/usr/include/ /usr/local/include/ ,但是mysql的標頭檔案位置在/usr/local/mysql/include,為非標準路徑,系統無法呼叫,應該指明位置,使系統能夠找到該位置。可在 /usr/include/ 或者 /usr/local/include/下 做符號連線
[root@localhost mysql]# cd /usr/include/
[root@localhost include]# ln -s /usr/local/mysql/include mysql
PHP配置
拆解php壓縮包
[root@localhost ~]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src/
切換到 /usr/local/src/php-5.3.7/ 檢測預編譯環境
[root@localhost ~]# cd /usr/local/src/php-5.3.7/
[root@localhost php-5.3.7]# ./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –enable-fpm –with-openssl –with-libevent-dir=/usr/local –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-mbstring –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –with-iconv-dir=/usr/local
編譯 ,產生四類檔案:標頭檔案、庫檔案、可執行檔案、說明檔案,並將四類檔案安裝到相應的位置
[root@localhost php-5.3.7]# make
[root@localhost php-5.3.7]# make install
拷貝配置檔案
[root@localhost ~]# cp /usr/local/src/php-5.3.7/php.ini-production /usr/local/php/etc/php.ini
切換至/usr/local/php下,建立php-fpm.conf檔案
[root@localhost ~]# cd /usr/local/php
[root@localhost php]# cp etc/php-fpm.conf.default etc/php-fpm.conf
編輯php-fpm.conf,將以下幾行的註釋去掉,儲存退出
error_log = log/php-fpm.log
pm.start_servers = 20
pm.max_requests = 500
pm.max_spare_servers = 35
pm.min_spare_servers = 5
pm.max_children = 50
啟動fastcgi,並將fastcgi 設定為開機自啟動
[root@localhost php]# /usr/local/php/sbin/php-fpm &
[1] 11526
[root@localhost php]# echo “/usr/local/php/sbin/php-fpm & “>> /etc/rc.local
修改 /etc/nginx/fastcgi.conf,修改一行資料
[root@localhost php]# vim /etc/nginx/fastcgi.conf
fastcgi_param SERVER_SOFTWARE nginxion;
切換到/etc/nginx, 保證兩個檔案相同:fastcgi.conf 和 fastcgi_params
[root@localhost nginx]# cd /etc/nginx
[root@localhost nginx]# cat fastcgi.conf > fastcgi_params
編輯nginx的配置檔案 /etc/nginx/nginx.conf
[root@localhost nginx]# vim /etc/nginx/nginx.conf
server {
listen 192.168.1.182:80;
server_name www.bht.com;
access_log /var/log/access.log;
error_log /var/log/error.log;
location / {
root html;
index index.php index.html index.htm;
}
“location / ”表示可以讀取/usr/html目錄及其子目錄中的index.php index.html index.htm 檔案
將以下這幾行前的註釋去掉
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
server {
listen 192.168.1.182:80;
server_name bbs.bht.com;
access_log /var/log/access.log;
error_log /var/log/error.log;
location / {
root /usr/html/discuss;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ .php$ {
root /usr/html/discuz;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
儲存退出
重啟nginx服務
[root@localhost html]# pkill -9 nginx 關閉nginx
[root@localhost html]# nginx
切換至/usr/html 產生php網頁
[root@localhost html]# cd /usr/html
[root@localhost html]# vim index.php
<?php
phpinfo();
?>
如下圖4-63所示,使用外部主機訪問該web伺服器,可以訪問到php測試頁面,說明nginx呼叫php成功
圖4-63 呼叫PHP成功
測試mysql 與 PHP 的連通性
編輯/usr/html/index.php
[root@localhost html]# vim index.php
<?php
$link=mysql_connect(`127.0.0.1`,`root`,“);
if ($link)
echo “connected”; 若連線資料庫成功,則顯示“connected”,否則顯示“fail”
else
echo “fail”;
?>
如圖4-64所示,使用外部主機訪問該web伺服器,顯示“connected”,說明php呼叫mysql成功
圖 4-64 PHP呼叫Mysql資料庫成功
搭建discuz論壇
上傳Discuz_X2.5_SC_GBK.zip,解壓該檔案
[root@localhost ~]# unzip Discuz_X2.5_SC_GBK.zip
解壓後產生兩個資料夾:upload和 utility,將upload移動到/usr/html下,改名為discuss。
[root@localhost ~]# mv upload /usr/html/discuz
此時使用域名訪問該discuss站點,出現安裝嚮導,點選“我同意”。如圖4-65
圖 4-65 安裝嚮導
進入下一步,開始安裝,但是需要修復有紅色“X”出的錯誤才可以繼續。如右圖 4-66和圖4-67。
圖4-66 開始安裝
圖4-67 需要修復標記的錯誤
切換至/usr/html/discuz目錄下,安裝要求,建立不存在的目錄,修改檔案的許可權。
[root@localhost discuss]# cp -p config/config_global_default.php config/config_global.php
[root@localhost discuss]# cp -p config/config_ucenter_default.php config/config_ucenter.php
[root@localhost discuss]# chmod o+w config
[root@localhost discuss]# chmod -R o+w data/
[root@localhost discuss]# chmod o+w uc_client/
[root@localhost discuss]# chmod o+w uc_client/data/cache/
[root@localhost discuss]# chmod -R o+w uc_server
[root@localhost discuss]# chmod o+w config/config_global.php
[root@localhost discuss]# chmod o+w config/config_ucenter.php
修改上述錯誤後重新整理網頁,將不會出現錯誤提示,點選“下一步”開始安裝。如圖4-68所示。
圖4-68
選擇“全新安裝Discuz!X”。如圖4-69
圖4-69全新安裝Discuz
建立資料庫,併為資料庫和管理員設定密碼。如圖4-70
圖4-70 資料庫設定
為mysql資料庫設定密碼,新建上步驟中的資料庫discuz
[root@localhost bin]# echo “PATH=$PATH:/usr/local/mysql/bin” >>/etc/profile 新增環境變數
[root@localhost bin]# source /etc/profile
[root@localhost bin]# mysqladmin -u root -p password “123” 設定密碼
[root@localhost bin]# mysql -u root -p 登入mysql資料庫
mysql> create database discuz; 建立資料庫discuz
Query OK, 1 row affected (0.00 sec)
點選“下一步”,開始安裝。如圖4-71所示。
圖4-71 正在安裝discuz
安裝完成後,輸入域名則可以訪問到discuz論壇。如圖4-72所示。
圖 4-72 安裝成功
SNMP代理配置:
安裝net-snmp軟體,使該主機成為agent。由於安裝需要依賴lm_sensors軟體,所以使用yum工具解決依賴關係
[root@localhost ~]# yum install net-snmp -y
編輯配置檔案/etc/snmp/snmpd.conf 。將第62 行的read欄位對應的值改為all,表示可以訪問所有的mib庫;第85行定義“all”對應的mib是哪些;並設定配置溝通密碼(團體名);設定陷阱,將陷阱資訊傳送至NMS(網路管理工作站)
[root@localhost ~]# vim /etc/snmp/snmpd.conf
62 access notConfigGroup “” any noauth exact all none none
85 view all included .1 80
50 rocommunity public
51 rwcommunity private
79 com2sec mynetwork 192.168.1.193/28 public
儲存退出
啟動snmp服務,並將snmp服務設定為開機自啟動
[root@localhost ~]# service snmpd start 啟動服務
Starting snmpd: [ OK ]
[root@localhost ~]# chkconfig snmpd on
檢視snmp服務的埠號,有兩個埠號:199和169
[root@localhost ~]# netstat -tupln |grep snmp
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 12052/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 12052/snmpd
日誌轉發:
編輯系統日誌配置檔案/etc/syslog.conf,將需要轉發的日誌傳送到指定的日誌伺服器上。咋日誌型別後面加 @日誌伺服器的地址 即可將日誌傳送到指定的日誌伺服器上。
[root@mail ~]# vim /etc/syslog.conf
*.info;mail.none;authpriv.none;cron.none @192.168.1.194
重啟日誌服務
[root@mail ~]# service syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
本文轉自 gjp0731 51CTO部落格,原文連結:http://blog.51cto.com/guojiping/1177442
相關文章
- 畢業設計應用
- 畢業設計4.18
- javaweb畢業設計稽核系統JavaWeb
- 畢業設計三:資料清洗
- 10 套 Java/Java Web畢業設計原始碼系統免費送JavaWeb原始碼
- 畢業設計二:日誌匯入
- 畢業設計四:會話識別會話
- 適合本科-畢業-設計-選題
- AI畫家第三彈——畢業設計大殺器之FlaskAIFlask
- python畢業設計專案原始碼Python原始碼
- 研究生畢業後想做java Web方面的程式設計師,很丟人嗎JavaWeb程式設計師
- 畢業設計——第二章 系統總體設計(1)
- 畢業設計 java cocos2dx JavaEEJava
- 17年畢業生杭州求職web前端求職Web前端
- 雲端計算畢業設計論文:jumpserver安裝文件Server
- 畢業設計ios開發第一天iOS
- 基於相關畢業設計論文下載基於WEB,基於java基於JSPWebJavaJS
- Go Web 程式設計之 Hello WorldGoWeb程式設計
- 畢業設計:電動智慧小車(完整論文).pdf
- Swing做的畢業設計資料庫為SQLServer資料庫SQLServer
- PHP快遞代取系統跑腿系統(畢業設計)PHP
- 還在苦惱寫畢業論文?千鋒網路安全畢業設計合集助你打破瓶頸
- 畢業設計&畢業專案:基於springboot+vue實現的線上音樂平臺Spring BootVue
- 畢業設計——基於STM32的音樂播放器設計(一)播放器
- 計算機專業畢業設計論文分享站(訪問www.itwuliwei.top)計算機
- Java畢業設計_基於MySQL網盤管理系統的設計與實現JavaMySql
- (畢業設計資料)基於STM32智慧窗簾控制系統設計
- 又是一年畢業季——如何入坑程式設計師程式設計師
- 我的畢業設計(一):翻譯工具箱(TranslationToolbox)
- 畢業多年的程式設計師重拾英語考雅思程式設計師
- Go Web 程式設計之 資料庫GoWeb程式設計資料庫
- 又是一年畢業季——程式設計師的苦與樂程式設計師
- 2017年應屆畢業程式設計師平均薪資程式設計師
- Java畢設期末作業原始碼6Java原始碼
- 畢設之錯誤解決辦法
- 千鋒雲端計算畢業設計論文:企業級私有云平臺設計報告目錄加緒論
- 畢設
- java之集合框架總結-畢業生必看Java框架