LAMP的概念:
Linux+Apache+Mysql+Perl/PHP/Python一組常用來搭建動態(tài)網(wǎng)站或者服務(wù)器的開源軟件,本身都是各自獨立的程序,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應(yīng)用程序平臺。
安裝LAMP就已經(jīng)安裝了 網(wǎng)頁服務(wù)器 數(shù)據(jù)庫 Perl/PHP/Python語音環(huán)境。
如果你是安裝到本機上測試的話,最好確保hosts的內(nèi)容為這樣
username@ubuntu:~$ cat /etc/hosts127.0.0.1 localhost
安裝
安裝LAMP
套件一次性安裝
sudo tasksel
用空格選中LAMP,回車即可。(不過要小心別修改其他的選項,否則會安裝或刪除該服務(wù)!)
仔細手動安裝法(最小組件)
sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server
有些是因為依賴關(guān)系會自動安裝的,但是為了保險,所以多打了一些。開始安裝時sudo會問您密碼(只是有可能),這是系統(tǒng)管理員的密碼。安裝途中MySQL要求設(shè)定賬戶有密碼,這是與操作系統(tǒng)沒關(guān)系的賬戶與密碼。
圖形安裝法
在新立得軟件包管理器中選擇 編輯--使用任務(wù)分組標記軟件包
在打開的窗口中 勾選 LAMP SERVER 然后確定。
在主窗口中 點擊綠色的對號 應(yīng)用 按鈕
好了 。接下來就是等待...等待新立得 自動下載安裝完。
注意: 安裝途中MySQL要求設(shè)定賬戶有密碼,這是與操作系統(tǒng)沒關(guān)系的賬戶與密碼。
打開 http://localhost 或 http://127.0.0.1
圖形化管理軟件(可選)
安裝webmin
這是一個系統(tǒng)管理軟件,管理包含LAMP組件在內(nèi)的大部分系統(tǒng)服務(wù)。同時能進行安裝、進程管理等多種系統(tǒng)功能。
先到webmin官方下載軟件 在該軟件包存放位置下,打開終端。(你也可以用命令切換到該位置)
sudo dpkg -i 軟件包名(用Tab可以少輸點字)
如果提示缺少依賴,那差什么就裝什么
訪問地址(注意是加密安全鏈接):https://127.0.0.1:10000
安裝phpmyadmin
這是一個數(shù)據(jù)庫管理軟件,管理mysql.
其實這也是個安全隱患,建議通過openssh來管理服務(wù)器。
方案一:終端中運行命令 (不推薦)
sudo apt-get install phpmyadmin
方案二:
強烈建議不要從源里安裝
在phpmyadmin官網(wǎng)上下載軟件包,解壓縮到本地目錄/var/www/phpmyadmin
tips:如果你請直接解壓到/var/www/phpmyadmin,如果不存在phpmyadmin,請自行創(chuàng)建
在終端下執(zhí)行
sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php
sudo gedit /var/www/phpmyadmin/config.inc.php
找到“blowfish_secret”在后面填上任意字母
$cfg['Servers'][$i]['auth_type']='cookie';$cfg['Servers'][$i]['host']='localhost';$cfg['Servers'][$i]['connect_type']='tcp';$cfg['Servers'][$i]['compress']='false';$cfg['Servers'][$i]['extension']='mysql';
保存,退出
安裝php5-mcrypt
sudo apt-get install php5-mcrypt
編輯php配置文件
sudo gedit /etc/php5/apache2/php.ini
在extension下面加上(任何獨立一行就行)
extension=php_mcrypt.so (原來的php5-mcrypt.so無效)
保存,重啟apache2
sudo /etc/init.d/apache2 restart
在瀏覽器里輸入http://localhost/phpmyadmin
注:如果進入phpmyadmin出現(xiàn)配置文件引用失敗則刪除剛自己添加的
$cfg['Servers'][$i]['auth_type']='cookie';$cfg['Servers'][$i]['host']='localhost';$cfg['Servers'][$i]['connect_type']='tcp';$cfg['Servers'][$i]['compress']='false';$cfg['Servers'][$i]['extension']='mysql';
保存,退出
然后再重啟apache2
sudo /etc/init.d/apache2 restart
在瀏覽器里輸入http://localhost/phpmyadmin
配置文件路徑
1>apache 的配置文件路徑 /etc/apache2/apache2.conf
2>apache 網(wǎng)站字符編碼配置路徑 /etc/apache2/conf.d/charset
3>php.ini 路徑 /etc/php5/apache2/php.ini
4>mysql配置文件 路徑 /etc/mysql/my.cnf 一般不要使用,尤其是新手
5>phpmyadmin配置文件路徑 /etc/phpmyadmin/apache.conf
6>默認網(wǎng)站根目錄 /var/www
常用命令
1.重啟apache
sudo /etc/init.d/apache2 restart
2.重啟mysql
sudo /etc/init.d/mysql restart
配置apache
1.更改默認字符集
終端中使用命令
sudo nano /etc/apache2/conf.d/charset
將其中的
# AddDefaultCharset
的井號去掉,后面字段改成UTF-8(如果您的網(wǎng)站是這樣了話)
AddDefaultCharset UTF-8
中間的空格數(shù)并不重要,但一定要有。
2.添加支持文件類型(一般不需要),與網(wǎng)站地址(需要)
終端中使用命令
sudo nano /etc/apache2/apache2.conf
在配置文件最后面加入下面幾行:
添加文件類型支持 (注:如果無法在html中解析php的語句,添加下面語句。網(wǎng)上好多都是說直接編輯httpd.conf,但是ubuntu版本的apache2沒有這個文件,你可以直接編輯apache2.conf,或者自己加一個httpd.conf,作為用戶配置文件,apache2.conf 中include這個配置文件。)
AddType application/x-httpd-php .php .htm .html
添加首頁文件 三個的順序可以換 前面的訪問優(yōu)先 (當然你也可以加別的 比如default.php)
IfModule dir_module>DirectoryIndex index.htm index.html index.php/IfModule>
更改服務(wù)器地址(這里改為本機),您可以憑您喜好修改,就是必須一致
ServerName 127.0.0.1
修改apache的根目錄DocumentRoot:
sudo nano /etc/apache2/sites-enabled/000-default
將其中的 DocumentRoot /var/www 改成您想要的目錄比如 DocumentRoot /var/www/htdocs/ 以上Apache2就基本配置完成了。重啟Apache2服務(wù)即可。 下面的是參考,一般不需要改變,除非有特殊需求。
sudo nano /etc/apache2/ports.conf #修改端口號,把 NameVirtualHost *:80 改為NameVirtualHost 127.0.0.1:80 , 修改 Listen 80
再修改site的配置文件
/etc/apache2/sites-available/default
80是端口號
VirtualHost *:80>
sudo a2enmod rewrite #開啟apache 的rewrite功能
Apache模塊
sudo a2enmod #啟用模塊
sudo a2dismod #禁用模塊
配置PHP5
這個沒什么好說的 根據(jù)個人自己需要
建議將安全模塊開啟(注意!開啟后phpmyadmin會不能用)
sudo nano /etc/php5/conf.d/php.ini
注意:你可能需要敲入命令
php --ini
或
php -i | grep php.ini
來獲取你的php cli加載的php.ini路徑(Loaded Configuration File,比如 /etc/php5/cli/php.ini 而非 /etc/php5/conf.d/php.ini)。但此文件并不一定是apache php5模塊加載的php.ini文件,如果要獲得apache php5模塊加載的php.ini,請參見測試_phpinfo()
nano可以用Ctrl+w來搜索將 safe_mode = off safe_mode = 設(shè)置為 safe_mode = on safe_mode = /var/www/htdocs/ 以上 /var/www/htdocs/是您在上面設(shè)置個網(wǎng)站根目錄,請按照情況修改,結(jié)尾的/是一定要加的,
不然 /var/www/htdocsa,/var/www/htdocsb,等目錄也可以訪問。
以下是更改默認時區(qū)
;date.timezone=
去掉前面的分號 后面加個PRC 。表示中華人民共和國(就是GMT+8時區(qū))
date.timezone= PRC
配置MySQL
MySQL常用命令
MySQL大部分命令是以
;
結(jié)尾,這里除了5給出的命令,其它一定要以
;
結(jié)尾!
1.進入mysql
mysql -h [服務(wù)器地址] -u [用戶名〕-p
這是訪問本地服務(wù)器
mysql -h 127.0.0.1 -u [用戶名〕 -p
如:mysql -h 127.0.0.1 -u root -p
認證成功之后就進入mysql的命令控制臺,以下都是在mysql的命令控制臺的命令。
2.顯示已經(jīng)存在的數(shù)據(jù)庫
SHOW DATABASES;
3.創(chuàng)建數(shù)據(jù)庫 數(shù)據(jù)庫名在這里是沒有[]號的??!,還有在linux下是區(qū)分大小寫(只是使用時有關(guān)!)。
CREATE DATADASE [數(shù)據(jù)庫名];
4.創(chuàng)建一個受限用戶 這個用戶(testuser)只有一個數(shù)據(jù)庫(這里是test庫)的訪問寫入權(quán)限,這個數(shù)據(jù)庫創(chuàng)建與刪除表的權(quán)限,并且只能在本地登入,密碼為userpasswd
grant select,insert,update,delete,create,alter on test.* to 'test'@'localhost' IDENTIFIED BY 'userpasswd';
5.退出數(shù)據(jù)庫
quit 或者 \q
配置文件(新手、無特殊要求勿動)
sudo nano /etc/mysql/my.cnf
這里有一個地方要注意 默認:是只允許本地訪問數(shù)據(jù)庫的這里不是說本機架設(shè)了網(wǎng)站,用戶通過架設(shè)在的網(wǎng)頁不能訪問MySQL ,是指其它機子不能直接訪問MySQL
bind-address 127.0.0.1
解除限制只能本地訪問mysql,如果需要其他機器訪問,應(yīng)使用如下語句,把這“bind-address 127.0.0.1”句話用#注釋掉
#bind-address 127.0.0.1
配置phpmyadmin(沒裝就不要看)
sudo apt-get install phpmyadmin
訪問 http://localhost/phpmyadmin ,phpmyadmin 默認并不是安裝在 /var/www下面的而是在 /usr/share/phpmyadmin
你可以把phpmyadmin復(fù)制過去 或者 鏈接過去
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
然后 終端中運行命令
sudo gedit /etc/phpmyadmin/apache.conf
然后把下面兩句的路徑 改為/var/www/phpmyadmin(因為我已經(jīng)配置好環(huán)境,所以忘記了phpmyadmin中默認配置怎么寫的。。反正就是在第三行和第四行的兩句.如果我沒記錯的話 應(yīng)該是下面這樣)
Alias /phpmyadmin /usr/share/phpmyadminDirectory /usr/share/phpmyadmin>
改為:
Alias /phpmyadmin /var/www/phpmyadminDirectory /var/www/phpmyadmin>
LAMP到此已經(jīng)配置完成了
測試 phpinfo(); (根據(jù)需要,自己選擇,可不做)
創(chuàng)建、測試phpinfo:
sudo vi /var/www/info.php 注意:這里的路徑錯了,應(yīng)該是sudo vi /var/www/htdocs/info.php 修改人:fenghelong郵箱fenghelong_njit@163.com
?php phpinfo(); ?>
打開 http://localhost/info.php 。
性能優(yōu)化(根據(jù)需要,自己選擇,可不做)
安裝Zend Optimizer
要求PHP版本為5.2,不支持Ubuntu10.04的PHP5.3,請參照PHP5.2。
下載 Zend Optimizer。 直接貼下載地址,參考版本號改(這是32位的),不然主頁要注冊才能下
http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_compsudo mkdir /usr/local/zendsudo cp ZendOptimizer.so /usr/local/zend
編輯php.ini
sudo gedit /etc/php5/apache2/php.ini
開頭加入,注意標點符號要英文。
[Zend Optimizer]zend_optimizer.optimization_level=1 zend_extension="/usr/local/zend/ZendOptimizer.so"
重啟apache2
sudo /etc/init.d/apache2 restart
還是上面那個phpinfo文件,要能看到如下信息
This program makes use of the Zend Scripting Language Engine:Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies
安裝XCache
sudo apt-get install php5-xcache
root@ubuntu:/home/qii# dpkg -l | grep xcachii php5-xcache 1.2.2-5 Fast, stable PHP opcode cacher
xcache配置文件路徑是
/etc/php5/conf.d/xcache.ini
編輯php.ini
sudo gedit /etc/php5/apache2/php.ini
把xcache.ini的內(nèi)容加入到php.ini。 重啟apache2
sudo /etc/init.d/apache2 restart
檢查安裝是否成功
root@ubuntu:/home/qii# php -vPHP 5.2.10-2ubuntu6 with Suhosin-Patch 0.9.7 (cli) (built: Oct 23 2009 16:30:10) Copyright (c) 1997-2009 The PHP GroupZend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with XCache v1.2.2, Copyright (c) 2005-2007, by mOo
還有前面info.php頁應(yīng)該有XCache模塊
這里有點奇怪的是,如果不把xcache.ini的內(nèi)容加入php.ini,apache也能載入XCache,但info.php上沒XCache模塊。
安裝eAccelerator
sudo apt-get install php5-dev
下載 eAccelerator
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
phpizesudo ./configure -enable-eaccelerator=sharedsudo make
qii@ubuntu:~/tmp/eaccelerator-0.9.6.1$ sudo make installInstalling shared extensions: /usr/lib/php5/20060613+lfs/
修改php.ini文件,安裝為Zend擴展,最好放在開頭,放到[zend]之前,免的出莫名其妙的問題:
sudo vi /etc/php5/apache2/php.ini
[eaccelerator]zend_extension="/usr/lib/php5/20060613+lfs/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" eaccelerator.allowed_admin_path="/var/www/control.php"
創(chuàng)建cache緩存目錄
eaccelerator.cache_dir="/var/cache/eaccelerator" 這里定義cache路徑
默認值是/tmp/eaccelerator,這非常簡單因為任何人都對該目錄可寫,但是并不明智,因為重啟后系統(tǒng)會自動清理該目錄。一個更好的地方是/var/cache/eaccelerator。創(chuàng)建該目錄并確保它對eAccelerator的使用者可寫(通常該用戶是你的網(wǎng)絡(luò)服務(wù)器運行者,可能是www-data)。 使用默認值的話這樣繼續(xù):
mkdir /tmp/eaccelerator
chmod 777 /tmp/eaccelerator
改成 /var/cache/eaccelerator的話這樣繼續(xù),先改php.ini
eaccelerator.cache_dir="/var/cache/eaccelerator"
sudo mkdir /var/cache/eacceleratorsudo chown root:www-data /var/cache/eacceleratorsudo chmod u=rwx,g=rwx,o= /var/cache/eaccelerator
復(fù)制控制文件control.php到網(wǎng)站根目錄
sudo cp control.php /var/www/htdocs/
修改control.php的$user和$pw,默認是admin和eAccelerator
sudo vi /var/www/htdocs/control.php
重啟apache
sudo /etc/init.d/apache2 restart
打開 http://localhost/control.php
查看之前的info.php頁面,有下列字段:
This program makes use of the Zend Scripting Language Engine:Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
安全
隱藏服務(wù)器信息
vim /etc/apache2/apache2.confServerTokens Prod
指定apache2的運行賬戶
以root來運行是很危險的,用下面的方法更改,這里是都改為www-data
vim /etc/apache2/envvarsexport APACHE_RUN_USER=www-dataexport APACHE_RUN_GROUP=www-data
要確認存在這些用戶組。
啟用.htaccess
這個對pbpbb3這樣有附帶.htaccess的程序有利,不過其它場合有可能引發(fā)問題。 方法:在網(wǎng)站主機配置下加入AllowOverride AuthConfi 例子:
vim /etc/apache2/sites_available/defaultDirectory /var/www/>...AllowOverride AuthConfig.../Directory>
其他
PDO的安裝
pecl search pdo
sudo pecl install pdo
sudo pecl install pdo_mysql
最后編輯php.ini
sudo gedit /etc/php5/apache2/php.ini
再最后面添加兩行:
extension = pdo.so
extension = pdo_mysql.so
排錯
無法解析php文件,瀏覽器提示下載所要打開的php文件
執(zhí)行:
sudo apt-get install libapache2-mod-php5sudo a2enmod php5
如果顯示為:
This module does not exist!
那就要徹底刪除libapache2-mod-php5,然后重新安裝它
sudo apt-get remove --purge libapache2-mod-php5sudo apt-get install libapache2-mod-php5
重啟apache2
sudo /etc/init.d/apache2 restart
清除瀏覽器緩存,然后輸入http:localhost
虛擬主機
見Apache虛擬主機指南
屏蔽迅雷
迅雷的user-agent是
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; )Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 3.5.20706)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
通過.htaccess文件屏蔽迅雷的下載/盜鏈功能:
RewriteEngine On#Anti ThunderRewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)___FCKpd___98nbsp; [NC,OR]RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)___FCKpd___98nbsp; [NC,OR]RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1;\ \)___FCKpd___98nbsp; [NC,OR]RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0;\ \.NET\ CLR\ 3\.5\.20706\)___FCKpd___98nbsp; [NC,OR]RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1;\ SV1;\ \.NET\ CLR\ 1\.1\.4322;\ \.NET\ CLR\ 2\.0\.50727\)___FCKpd___98nbsp; [NC]RewriteRule ^.*\.(gif|jpg|bmp|zip|rar|exe|mp3|swf)___FCKpd___98nbsp; / [NC,F]
你可以用Firefox的擴展user-agent switcher來測試效果。
如果你的資料地址已經(jīng)被迅雷索引,請修改資源的路徑地址。
如果用戶手動用UltraEdit改寫迅雷的user-agent,亦或者本機裝虛擬機,虛擬機掛代理,迅雷掛虛擬機中的代理,這種屏蔽方法就失效了。
附錄
apache2配置文件與子目錄一覽表
/etc/apache2/apache2.conf 全局配置 /etc/apache2/envvars 環(huán)境變量 /etc/apache2/ports.conf httpd服務(wù)端口信息 /etc/apache2/conf.d/一般性配置文件存放地 /etc/apache2/mods-available/ 已安裝的模塊 /etc/apache2/mods-enabled/ 已經(jīng)啟用的模塊/etc/apache2/sites-available/ 可用站點信息 /etc/apache2/sites-enabled/ 已經(jīng)啟用的站點信息,當中的文件是到/etc/apache2/sites-available/ 文件的軟連接。 /etc/apache2/httpd.conf