LAMP
Linux + Apache + Mysql + Php
重要:靜態設置ip地址*
一、基本概念
1、WEB概念
WEB是一種交互式圖形界面的Internet服務,具有強大的信息連接功能,通過超文本鏈接( HyperText ) 的 方式,將信息通過 Internet 傳遞到全球每個角落!
一般情況下,終端用戶通過瀏覽器輸入比較完整的URL即可以完成訪問。
2、URL概念
統一資源定位符是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源 的地址。
互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎麼處理它。
基本URL包含:模式(或稱協議)、服務器名稱(或IP地址)、路徑和文件名
如“協議://授權/路徑?查詢
”
完整的、帶有授權部分的普通統一資源標誌符語法看上去如下:
協議://用戶名:密碼@子域名.域名.頂級域名:端口號/目錄/文件名.文件後綴?參數=值#標誌
3、HTTP協議
HTTP(HyperText Transfer Protocol),是目前WWW傳遞數據的主流協議!網站上的網頁,則需要符合 HyperText Markup Language(HTML)的語法。
HTTP服務原理
當我們在網址欄輸入網址之後:
1)Client經過DNS解析得到WWW主機的IP,會發出一個數據包,以http協議聯接WWW主機,通知WWW主機要以http的方法來取得數據。
2)WWW主機收到數據包後,根據Client的要求,提供相關的訊息來響應,大部分情況下用 http的協議傳送用HTML 語法的網頁數據到Client端的瀏覽器;
3)最後Client端的瀏覽器將 HTML的語法解析後,顯示網頁內容。
4、httpd服務的目錄結構
服務目錄:/usr/local/httpd/
主配置文件:/usr/local/httpd/conf/httpd.conf
網頁目錄:/usr/local/httpd/htdocs/
服務腳本:/usr/local/httpd/bin/apachectl
執行程序:/usr/local/httpd/bin/httpd
訪問日誌: /usr/local/httpd/log/access_log
錯誤日誌: /usr/local/httpd/log/error_log
5、httpd.conf配置文件
常用的全局配置參數
ServerRoot:服務目錄
ServerAdmin:管理員郵箱
User:運行服務的用戶身份
Group:運行服務的組身份
ServerName:網站服務器的域名
DocumentRoot:網頁文檔的根目錄
Listen:監聽的IP地址、端口號
PidFile:保存httpd進程PID號的文件
DirectoryIndex:默認的索引頁文件
ErrorLog:錯誤日誌文件的位置
CustomLog:訪問日誌文件的位置
LogLevel:記錄日誌的級別,默認爲warn
Timeout:網絡連接超時,默認爲300秒
KeepAlive:是否保持連接,可選On或Off
MaxKeepAliveRequests:每次連接最多請求文件數
KeepAliveTimeout:保持連接狀態時的超時時間
Include:需要包含進來的其他配置文件
區域配置項
<Directory "/usr/local/httpd/htdocs">
Options FollowSymLinks #控制選項,允許使用符號鏈接
AllowOverride None #不允許隱含控制文件中的覆蓋配置
Order deny,allow #訪問控制策略的應用順序
Deny from all #禁止任何人訪問此區域
</Directory>
6、httpd服務訪問控制
作用:
控制對網站資源的訪問
爲特定的網站目錄添加訪問授權
常用訪問控制方式:
客戶機地址限制
用戶授權限制
1)基於客戶端地址的訪問控制
Order配置項,定義控制順序
先允許後拒絕,默認拒絕所有:Order allow,deny
先拒絕後允許,默認允許所有:Order deny,allow
Allow、Deny配置項,設置允許或拒絕的地址
Deny from address1 address2 …
Allow from address1 address2 …
例如:
<Directory "/usr/local/httpd/htdocs">
……
Order deny,allow
deny from 192.168.0.0/24 192.168.1.0/24
</Directory>
2)用戶授權限制
cd /usr/local/httpd/bin
htpasswd -c /usr/local/httpd/conf/.htpass webadmin
(-C,只在添加首個用戶時使用)
cat /usr/local/httpd/conf/.htpass
3)對網站目錄添加授權
vi /usr/local/httpd/conf/httpd.conf
……
<Directory "/usr/local/httpd/htdocs">
……
AuthName "WWW.TOPSECEDU.COM"
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
require valid-user
</Directory>
4)重啓網站服務
/etc/init.d/httpd restart 或者
/usr/local/httpd/bin/apachectl restart 或者
service httpd restart
二、Apache服務器
192.168.168.187
1、編譯安裝Apache軟件包
編譯安裝四步驟:
1)第一步解開源代碼封裝包
2)第二步配置選擇安裝的功能 和安裝目錄等信息
3)第三步編譯將配置信息生成可執行的二進制文件
4)第四步安裝
卸載默認的相關軟件包
rpm -e httpd --nodeps
rpm -e httpd-manual --nodeps
rpm -e webalizer --nodeps
rpm -e subversion --nodeps
rpm -e mod_python --nodeps
rpm -e mod_ssl --nodeps
rpm -e mod_perl --nodeps
rpm -e system-config-httpd --nodeps
rpm -e php --nodeps
rpm -e php-cli --nodeps
rpm -e php-ldap --nodeps
rpm -e php-common --nodeps
rpm -e php-mysql --nodeps
rpm -e mysql --nodeps
rpm -e dovecot --nodeps
tar zxf httpd-2.2.17.tar.gz -C /usr/src/ 解壓http壓縮包到指定目錄下
cd /usr/src/httpd-2.2.17/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
make 編譯
make install 安裝
(--prefix:指定將httpd服務程序安裝到哪個目錄,如/usr/local/httpd。
--enable-so:啓用動態加載模塊支持,使httpd具備進一步擴展功能的能力。
--enable-rewrite:啓用網頁地址重寫功能,用於網站優化及目錄遷移維護。
--enable-charset-lite:啓動字符集支持,以便支持使用各種字符集編碼的網頁。
--enable-cgi:啓用CGI腳本程序支持,便於擴展網站的應用訪問能力。)
查看安裝結果
2、優化執行路徑
ln -s /usr/local/httpd/bin/* /usr/local/bin/
ls -l /usr/local/bin/httpd /usr/local/bin/apachectl(查看軟鏈接)
3、添加httpd系統服務
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd(阿帕奇網站服務的控制腳本)
vi /etc/init.d/httpd
#!/bin/bash
# chkconfig: 35 85 15(使其能夠支持chkconfig來進行管理)
# description: Startup script for the Apache HTTP Server
……
chkconfig --add httpd 添加Apache服務到系統,使其開機後自動運行(調整啓動級別)
chkconfig --list httpd(查看啓動狀態)
4、修改Apache配置文件,添加Apache服務器名稱爲:www.topsec.com
vim /usr/local/httpd/conf/httpd.conf
……
ServerName www.topsec.com
5、啓動網站服務
service httpd start
6、啓動Apache服務
netstat -anpt | grep httpd
7、在虛擬機上測試是否搭建好Apache服務器
在物理機上測試
番外-httpd服務訪問控制
控制對網站資源訪問
爲特定的網站目錄添加訪問授權
常用方式
客戶機地址限制
用戶授權限制
1、基於客戶端地址的訪問控制
htdocs : 網頁/主頁
1)Order 配置項 ,定義控制順序
先允許,後拒絕,默認爲拒絕所有 Order allow,deny
先拒絕,後允許,默認爲允許所有 Order deny,allow
2)Allow、Deny配置項,允許、拒絕地址
Deny from ip1 ip2
Allow fro ip1 ip2
對主頁進行操作
vim /usr/local/httpd/conf/httpd.conf
service httpd restart 重啓服務
對後臺進行操作
cd /usr/local/httpd/htdocs
mkdir webadmin 創建後臺管理目錄,用於存放後臺頁面
創建一個index.html文件
<html>
<body>
<h1>Web Manager</h1>
</body>
</html>
vim /usr/local/httpd/conf/httpd.conf
2、 用戶授權限制
(1)創建用戶認證數據庫
cd /usr/local/httpd/bin
htpasswd -c /usr/local/httpd/conf/.webpass webadmin
-c 添加首個用戶,多用戶時不使用,否則會覆蓋
(2)添加用戶授權配置
vim /usr/local/httpd/conf/httpd.conf
二、編譯安裝MySQL數據庫
1.卸載Linux系統自帶A的mysql軟件包
rpm -e mysql-server
rpm -e mysql
2.安裝支持包
yum -y install ncurses-devel
3.安裝cmake工具
tar zxf
ls /root/lamp/mysql/cmake*
-C /usr/src
cd /usr/src
cdls -d */ | grep cmake
./configure
gmake && gmake install
4.創建mysql用戶
useradd -M -s /sbin/nologin mysql
5.解壓mysql源碼包
tar zxf
ls /root/lamp/mysql/mysql-5*
-C /usr/src
cd /usr/src
cdls -d */ | grep mysql
6.配置mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
選項含義如下
-DCMAKE_INSTALL_PREFIX= 指定mysql的安裝路徑
-DSYSCONFDIR= 指定mysql配置文件的所在目錄
-DDEFAULT_CHARSET 指定默認的字符集
-DDEFAULT_COLLATION= 指定字符集的默認排序
-DWITH_EXTRA_CHARSETS= 支持擴展字符集
7.編譯及安裝mysql
make && make install
8.修改mysql安裝目錄的所有者權限
chown -R mysql:mysql /usr/local/mysql
9.刪除默認的mysql配置文件,拷貝生成新的配置文件
rm -rf /etc/my.cnf
cp support-files/my-medium.cnf /etc/my.cnf
10.初始化mysql數據庫
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
11.修改環境變量PATH的值,將mysql命令追加到默認搜索路徑中
echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
12.重新加載環境變量
. /etc/profile
13.優化mysql執行路徑
ln -s /usr/local/mysql/bin/* /usr/local/bin
ln -s /usr/local/mysql/lib/mysql/* /usr/lib/
ln -s /usr/local/mysql/include/mysql/* /usr/include/
14.生成mysql啓動腳本,並賦予執行權
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
15.將mysql服務添加到開機自啓動中
chkconfig --add mysqld
16.啓動mysql服務,並查看運行端口
service mysqld start
netstat -anpt | grep mysqld
三、編譯安裝PHP
1.卸載默認的php相關軟件包
rpm -e php --nodeps
rpm -e php-cli --nodeps
rpm -e php-ldap --nodeps
rpm -e php-common --nodeps
rpm -e php-mysql --nodeps
2.安裝支持包
yum -y install zlib-devel
yum -y install libxml2-devel
3.安裝擴展工具庫(libmcrypt、mhash、mcrypt)
tar zxf
ls /root/lamp/php/libmcrypt*
-C /usr/src
cd /usr/src
cdls -d */ | grep libmcrypt
./configure
make && make install
ln -s /usr/local/lib/libmcrypt.* /usr/lib/ #優化鏈接庫
tar zxfls /root/lamp/php/mhash*
-C /usr/src
cd /usr/src
cdls -d */ | grep mhash
./configure
make && make install
ln -s /usr/local/lib/libmhash* /usr/lib/
tar zxfls /root/lamp/php/mcrypt*
-C /usr/src
cd /usr/src
cdls -d */ | grep mcrypt
export LD_LIBRARY_PATH=/usr/local/lib #定義變量LD_LIBRARY_PATH,並提升爲全局變量
./configure
make && make install
4.安裝php
tar zxf
ls /root/lamp/php/php-5*
-C /usr/src
cd /usr/src
cdls -d */ | grep php
5.配置
./configure (./configure 後面空格加下列,寫成一行)
–prefix=/usr/local/php5
–with-mcrypt
–with-apxs2=/usr/local/httpd/bin/apxs
–with-mysql=/usr/local/mysql
–with-config-file-path=/usr/local/php5
–enable-mbstring
選項含義如下:
–prefix:指定將php程序安裝到哪個目錄,如/usr/local/php5。
–with-mcrypt:加載數據加密等擴展工具支持。
–with-apxs2:設置Apache HTTP Server提供的apxs模塊支持程序的文件位置。
–with-mysql:設置MySQL數據庫服務程序的安裝位置。
–with-config-file-path:設置PHP的配置文件php.ini將要存放的位置。
–enable-mbstring:啓用多字節字符串功能,以便支持中文等代碼。
6.編譯及安裝
make && make install
7.拷貝生成php配置文件php.ini
cp php.ini-development /usr/local/php5/php.ini
8.優化php的執行命令
ln -s /usr/local/php5/bin/* /usr/local/bin/
ln -s /usr/local/php5/sbin/* /usr/local/sbin/
9.修改php.ini文件
1)啓用默認字符集“default_charset = "iso-8859-1”,並修改默認字符集爲:utf-8,如下所示:
default_charset = utf-8
2)開啓short_open_tag功能,修改其值爲:On
short_open_tag = On
10.解壓ZendGuardLoader文件
tar zxf
ls /root/lamp/php/ZendGuardLoader*
-C /usr/src
cd /usr/src
cdls -d */ | grep ZendGuardLoader
cdls -d */ | grep php
cpls Zend*
/usr/local/php5/lib/php
11.在php.ini文件中增加Zend功能(PHP加速)
在文件尾部,或第19行處,插入:
vim /usr/local/php5/php.ini
……
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable = 1
12.修改Apache配置文件,使其支持php動態網站功能
1)vim /usr/local/httpd/conf/httpd.conf,在httpd.conf文件的54行插入:
AddType application/x-httpd-php .php
2)vim /usr/local/httpd/conf/httpd.conf,修改DirectoryIndex行,並添加index.php
DirectoryIndex index.html index.php
13.重新啓動Apache服務
service httpd restart
14.建立PHP功能測試網頁test1.php
vim /usr/local/httpd/htdocs/test1.php
內容如下:
<?php
phpinfo();
?>
15.建立PHP連接MySQL的測試網頁test2.php
1)修改mysql管理員用戶root的密碼爲:123456
mysqladmin -u root password “123456” #修改mysql的root帳號口令
2)建立test2.php頁面文件
vim /usr/local/httpd/htdocs/test2.php
內容如下:
<?php
$link=mysql_connect("localhost","root","123456");
if($link) echo "<h1>恭喜您,數據庫連接成功啦!</h1>";
mysql_close();
?>
通過兩個php文件 驗證php是否搭建好:
四、部署PhpMySQL站點包
1.解壓phpMyAdmin網頁文件
cd /root/lamp/web
tar zxfls phpMyAdmin-4*
mvls -d */ | grep phpMyAdmin
/usr/local/httpd/htdocs/phpMyAdmin
2.建立配置文件config.inc.php
cp /usr/local/httpd/htdocs/phpMyAdmin/config.sample.inc.php /usr/local/httpd/htdocs/phpMyAdmin/config.inc.php
3.訪問phpMyAdmin站點
1)打開火狐瀏覽器
在地址欄中輸入:http://站點服務器IP/phpMyAdmin/
2)在登錄頁面中輸入
mysql管理員用戶:root
密碼:123456
3)在圖形界面下,實現數據庫的基本操作(增、刪、查、改)
五、部署Discuz論壇BBS站點包
1.創建Discuz論壇BBS站點數據庫bbsdb
1)以mysql管理員root身份登錄mysql,並創建數據庫bbsdb
mysql -u root -p123456
mysql> CREATE DATABASE bbsdb;
2.創建runbbs數據庫用戶有,並授權其對bbsdb庫擁有所有權限
mysql> GRANT all ON bbsdb.* TO ‘runbbs’@‘localhost’ IDENTIFIED BY ‘123456’;
3.解壓Discuz站點包
unzip /root/lamp/web/Discuz_7.2_FULL_SC_UTF8.zip -d DiscuzPkg
mv DiscuzPkg/upload/ /usr/local/httpd/htdocs/bbs
4.修改相關站點目錄的所有者爲daemon
cd /usr/local/httpd/htdocs/bbs
chown -R daemon templates/ attachments/ forumdata/
chown -R daemon uc_client/data/cache/ config.inc.php
請注意:
1)論壇站點部署成功後,請打開火狐瀏覽器
在地址欄中輸入:http://站點服務器IP/bbs/install/index.php進行論壇安裝
2)安裝界面中,數據庫用戶名爲:runbbs;數據庫名爲:bbsdb;數據庫類型爲:mysql
3)安裝界面中,管理員用戶名、密碼、郵箱可任意指定。
例如:管理員用戶名:admin,密碼:123456,郵箱:[email protected]
4)測試bbs站點功能正常,請將/usr/local/httpd/htdocs/bbs下的install移除或修改install目錄權限爲:600,以防止他人再次訪問install目錄,進行二次安裝"