LAMP源碼安裝

 

一、LAMP簡單介紹
Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由於其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一
Linux+Apache+Mysql+Perl/PHP/Python一組常用來搭建動態網站或者服務器的開源軟件,本身都是各自獨立的程序,但是因爲常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用程序平臺。隨着開源潮流的蓬勃發展,開放源代碼的LAMP已經與J2EE和.Net商業軟件形成三足鼎立之勢,並且該軟件開發的項目在軟件方面的投資成本較低,因此受到整個IT界的關注。從網站的流量上來說,70%以上的訪問流量是LAMP來提供的,LAMP是最強大的網站解決方案.
apache受selinux影響安裝前需禁用Selinux
setenforce 0 |1
enforcing
permissive
或vim /etc/selinux/config 永久有效
設爲disable   
用getenforce查看
httpd 2.4.1 + mysql-5.5.19 + php-5.3.10編譯安裝過程:
二、編譯安裝apache
1、解決依賴關係
httpd-2.4.1需要較新版本的apr和apr-util,因此需要事先對其進行升級。升級方式有兩種,一種是通過源代碼編譯安裝,一種是直接升級rpm包。這裏選擇使用後一種方式進行。rpm包的下載路徑爲http://mirrors.sohu.com/,共需要如下4個軟件包:
apr-1.4.6-1.i386.rpm
apr-devel-1.4.6-1.i386.rpm
apr-util-1.4.1-1.i386.rpm
apr-util-devel-1.4.1-1.i386.rpm
下載完成之後,使用“rpm -Uvh”進行升級即可。
另外,httpd-2.4.1編譯過程也要依賴於pcre-devel軟件包,需要事先安裝。此軟件包系統光盤自帶,因此,找到並安裝即可。
2、編譯安裝httpd-2.4.1
首先下載httpd-2.4.1到本地,下載路徑爲http://mirrors.sohu.com/。而後執行如下命令進行編譯安裝過程:
# tar xf httpd-2.4.1.tar.bz2
# cd httpd-2.4.1
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib
# make && make install
可啓用測試下 cd /usr/local/apache/bin
             ./apachectl start
             netstat -tnlp
  網頁路徑在/usr/local/apache/htdocs
3、修改httpd的主配置文件,設置其Pid文件的路徑
編輯/etc/httpd/httpd.conf,添加如下行即可:
PidFile  "/var/run/httpd.pid"
4、提供SysV服務腳本/etc/rc.d/init.d/httpd,內容如下:
#!/bin/bash
#
# httpd        Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#        HTML files and CGI.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid
# Source function library.
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
        . /etc/sysconfig/httpd
fi
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
start() {
        echo -n $"Starting $prog: "
        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}
stop() {
 echo -n $"Stopping $prog: "
 killproc -p ${pidfile} -d 10 $httpd
 RETVAL=$?
 echo
 [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
    echo -n $"Reloading $prog: "
    if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
        RETVAL=$?
        echo $"not reloading due to configuration syntax error"
        failure $"not reloading $httpd due to configuration syntax error"
    else
        killproc -p ${pidfile} $httpd -HUP
        RETVAL=$?
    fi
    echo
}
# See how we were called.
case "$1" in
  start)
 start
 ;;
  stop)
 stop
 ;;
  status)
        status -p ${pidfile} $httpd
 RETVAL=$?
 ;;
  restart)
 stop
 start
 ;;
  condrestart)
 if [ -f ${pidfile} ] ; then
  stop
  start
 fi
 ;;
  reload)
        reload
 ;;
  graceful|help|configtest|fullstatus)
 $apachectl $@
 RETVAL=$?
 ;;
  *)
 echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
 exit 1
esac
exit $RETVAL
而後爲此腳本賦予執行權限:
# chmod +x /etc/rc.d/init.d/httpd
加入服務列表:
# chkconfig --add httpd
 chkconfig httpd on      //開機自動啓動
接下來就可以啓動服務進行測試了。

二、安裝mysql-5.5.19
1、準備數據存放的文件系統
爲了便於今後擴展,需要把數據庫的文件放到一個單獨的邏輯捲上,還可以用邏輯卷快照進行數據備份
fdisk /dev/sda //新建一個分區,把它的類型爲8e
partprobe /dev/sda5 重讀分區表
pvcreate /dev/sda5
vgcreate myvg /dev/sda5
lvcreate -L 3G -n mysql myvg
開機自動掛載,/etc/fstab
/dev/myvg/mysql     /mydata         ext3        default    ... 0 0
mkdir /mydata
mount -a
mount
mkdir /mydata/data  //創建/mydata/data目錄做爲mysql數據的存放目錄。
2、新建用戶以安全方式運行進程:
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql //添加mysql系統用戶系統組
# chown -R mysql:mysql /mydata/data
3、安裝並初始化mysql-5.5.19
首先下載平臺對應的mysql版本至本地,這裏是32位平臺,因此,選擇的爲mysql-5.5.19-linux2.6-i686.tar.gz,其下載位置爲http://mirrors.sohu.com/
# tar xf mysql-5.5.19-linux2.6-i686.tar.gz -C /usr/local
# cd /usr/local/
# ln -sv mysql-5.5.19-linux2.6-i686  mysql
# cd mysql
# chown -R mysql:mysql  .
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
# chown -R root  .
4、爲mysql提供主配置文件:
# cd /usr/local/mysql
# cp support-files/my-large.cnf  /etc/my.cnf
並修改此文件中thread_concurrency的值爲你的CPU個數乘以2,比如這裏使用如下行:
thread_concurrency = 2
另外還需要添加如下行指定mysql數據文件的存放位置:
datadir = /mydata/data

5、爲mysql提供sysv服務腳本:
# cd /usr/local/mysql
# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
添加至服務列表:
# chkconfig --add mysqld
# chkconfig mysqld on
而後就可以啓動服務測試使用了。

爲了使用mysql的安裝符合系統使用規範,並將其開發組件導出給系統使用,這裏還需要進行如下步驟:
6、輸出mysql的man手冊至man命令的查找路徑:
編輯/etc/man.config,添加如下行即可:
MANPATH  /usr/local/mysql/man
MANPATH  /usr/local/apache/man  apache的man文件
7、輸出mysql的頭文件至系統頭文件路徑/usr/include:
這可以通過簡單的創建鏈接實現:
# ln -sv /usr/local/mysql/include  /usr/include/mysql
  ln -sv /usr/local/apache/include /usr/include/httpd
8、輸出mysql的庫文件給系統庫查找路徑:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
而後讓系統重新載入系統庫:
# ldconfig
9、修改PATH環境變量,讓系統可以直接使用mysql的相關命令。具體實現過程這裏不再給出。

三、編譯安裝php-5.3.10
1、解決依賴關係:
請配置好yum源(可以是本地系統光盤)後執行如下命令:
# yum -y groupinstall "X Software Development"
如果想讓編譯的php支持mcrypt擴展,此處還需要下載http://mirrors.sohu.com/目錄中的如下兩個rpm包並安裝之:
libmcrypt-2.5.7-5.el5.i386.rpm
libmcrypt-devel-2.5.7-5.el5.i386.rpm
2、編譯安裝php-5.3.10
首先下載源碼包至本地目錄,下載位置http://mirrors.sohu.com/
# tar xf php-5.3.10.tar.bz2
# cd php-5.3.10
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --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-apxs2=/usr/local/apache/bin/apxs
--with-apxs2=/usr/local/apache/bin/apxs //指定apache的安裝位置,並將自己做爲apache的模塊
說明:如果前面第1步解決依賴關係時安裝mcrypt相關的兩個rpm包,此./configure命令還可以帶上--with-mcrypt選項以讓php支持mycrpt擴展。
# make
# make test
# make intall
爲php提供配置文件:
# cp php.ini-production /usr/local/php/lib/php.ini
3、 編輯apache配置文件httpd.conf,以apache支持php
 
 # vim /etc/httpd/httpd.conf
 1、添加如下二行
   AddType application/x-httpd-php  .php
   AddType application/x-httpd-php-source  .phps
 2、定位至DirectoryIndex index.html
   修改爲:
    DirectoryIndex  index.php  index.html
而後重新啓動httpd,或讓其重新載入配置文件即可測試php是否已經可以正常使用。
 
 
四、httpd.conf配置文件介紹
ServerType standalone
#定義WebServer的啓動方式爲standalone,以增強其對大量訪問的及時響應性
ServerRoot "/etc/httpd"
#指定包含httpd服務器文件的目錄
LockFile /var/lock/httpd.lock
PidFile /var/run/httpd.pid
ScoreBoardFile /var/run/httpd.scoreboard
Timeout 300
#響應超時量,單位爲秒
KeepAlive On
#允許用戶建立永久連接
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
#保留的空閒服務器進程的最小值
MaxSpareServers 20
#保留的空閒服務器進程的最大值
StartServers 8
#系統啓動時的守護進程數
MaxClients 150
#所能提供服務的最大客戶端編號,大於它的部分被放入請求隊列
MaxRequestsPerChild 100

ServerTokens OS|Major|Minor|Min|Full |用curl -i可查看它們區別
ServerRoot"/etc/httpd" 服務器起點安裝位置
PidFile run/httpd.pid  pid文件位置
ExtendedStatus On   開啓擴展狀態
ServerName www.wl.com 這裏改自已的主機名,可防止重起服務時報錯(正反向解析)
DocumnetRoot "/var/www/htm"  網頁文件存放位置
<Directory "/var/www/htm">   對應網頁的訪問屬性
Options Indexes FollowSynLinks/  鏈接文件指向的實際文件如:
ln  -sv  /var/www/test/init     /var/www/html/initfile      
 http://172.16.23.1/initfile
AllowOverride None
Order allow,deny  //基於ip allow from 192.168.0.0/24
Allow from all
</ Directory>
#定義那些錯誤類型被記錄到錯誤日誌中
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
#所有的LogFormat都用來定義日誌中的條目
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /usr/httpd/log/access_log common
ServerSignature On
Alias /icons/ "/home/httpd/icons/"
#定義虛擬主機目錄與系統目錄的對應關係
 Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
#定義CGI目錄
ServerAdmin [email protected] #網管地址
DocumentRoot /home/html/ #服務器頁面目錄
ServerName www.wl.com #服務器名稱

五、
1、虛擬主機
<VirtualHost 172.16.23.1:80>
DocumnetRoot "/www/web"
ServerName www.wl.com
<Directory "/www/web">
options indexes
AllowOverride none
Order allow,deny
Allow from 172.16
</Directory>
ErrorLog /var/log/httpd/www.wl.com_error_log
CustomLog /var/log/httpd/www.wl.com_access_log combined
</VirtualHost>
註釋掉DocumnetRoot
service httpd restart
 
2、別名
別名,不在當前網頁目錄下的其它目錄而
網頁文件主目錄下建子目錄 非別名
如:
 /www/html網頁根目錄
 /www/bbs
在配置文件中輸入
Alias /test "/www/bbs"
http://172.16.23.1/test
 
3、 globbing ~去掉相當於globbing 必須是單個字符
<Location ~ "/p_w_picpaths?">
 order allow,deny
 allow 172.16.0.0/16
</Location>
<LocationMatch "/p_w_picpaths?">
 order allow,deny
 allow 172.16.0.0/16
</LocationMatch>
 
4、查看狀態
<Location /status>
 SetHandler server-status
 Order Deny,Allow
 Deny from all
 Allow from .foo.com
</Location>
http://172.16.23.1/status
 
5、基於ssl訪問
SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt
SSLCertificateKeyfile /etc/httpd/conf/ssl/httpd.key
</VirtualHost>
建ca
cd /etc/pki/CA
vim ../tls/openssl.cnf
(umask 077;openssl genrsa 1024>private/cakey.pem)
openssl req -new -x509 -key private/cakey.pem -out cacert.pem
mkdir newcerts certs crl
touch index.txt
echo 01>serial
echo 01>crlnumber
給web證書
cd /etc/httpd/conf
mkdir ssl
cd ssl
(umask 077;openssl genrsa 1024>httpd.key)
openssl req -new -key httpd.key -out httpd.csr
openssl ca -in httpd.csr -out httpd.crt
service httpd start
netstat -tunlp | grep :443
windos跟本沒有CA 添加到受信認根證書版發機構的證書裏面
cacert.pem導出WINDOS 在WINDOS改爲cacert.crt window識別crt
https://www.wl.com
 
6、身份認證
需要的主機裏添加如下:
AllowOverride AuthConfig
AuthName "private"
AuthType Basic
AuthUserFile /etc/httpd/conf/.htpasswd
Require user gentoo
或者
Require valid-user //所有用戶
htpasswd -cm /etc/httpd/conf/.htpasswd gentoo //創建文件
 
 
7、
php連接mysql測試:
<?php
$link=mysql_connect('localhost','root',''); //密碼爲空
if ($link)
 echo "Success...";
else
 echo "Failure";
mysql_close();
?>

8、安裝博客工具
wordpress 個人建站工具

wp.magedu.com
虛擬主機/vhosts/wordpress
lftp 172.16.0.1:/pub/Sources/LAMP/wordpress-3.0.4
unzip wordpress-3.0.4
cp wp-config-sample.php wp-config.php
vim wp-config.php
提供數據庫相關信息
名:wordpress
用戶:wp
密碼:12345
mysql -uroot -p
GRANT ALL PRIVILEGES ON wordpress.* TO wp@localhost IDENTIFIED BY '12345';
FLUSH PRIVILEGES;
CREATE DATABASES wordpress;
安裝主題,解壓縮到 wp-content/themes/
lftp 172.16.0.1:/pub/Sources/LAMP
get BlueGrace.zip
9、mysql圖形管理工具
LAMP: Web MySQL
phpMyAdmin-2
phpMyAdmin-3: php>=5.2

/vhosts/pma
https://pma.magedu.com 默認是基於http 是不安全的,需ssl
登錄認證用戶:root沒密碼
root
cookie: browser
需給瀏覽器發COOKIER 則需要加密,依賴於mcrpyt軟件包
mcrpyt
libmcrypt   
 網絡下載地址: http://mirrors.sohu.com/             
本地下載地址:lftp 172.16.0.1:/pub/Sources/nginx/libmcrypt-2.5.7-5.el5.i386.rpm
                            /LAMP/phpMyAdmin-2.11.10-all-languages.tar.gz 2版本的
 
 
建虛擬機,tar xf phpMyAdmin-2.11.10-all-languages.tar.gz 2
cp config.sample.inc.php config.inc.php //網頁文件的配置文件
vim config.inc.php 加cookies密碼
hosts文件
 
mysql加密碼三種
mysql
mysqladmin
 -u USERNAME
 -h HOSTNAME
 -p

1\mysqladmin -uroot -hlocalhost -p password'12345'
mysql -uroot -p

2\
SET PASSWORD FOR [email protected]=password('12345'); //可能不會立即生效
FLUSH PRIVILEGES; //數據庫重讀授權表

3\
UPDATE user SET Password=password('12345') WHERE User='root' and Host='127.0.0.1';
刪除密碼:
DROP USER ''@localhost;
CREAT USER ww@localhost identified by '12345';
grant all privileges on testdb.* to ww@localhost;
grant all privileges on testdb.* to ww@localhost identified by '12345';
vim /etc/php.ini
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章