LAMP介紹
LAMP指的Linux(操作系統)、ApacheHTTP服務器,MySQL(有時也指MariaDB,數據庫軟件)和(有時也是指Perl或Python)的第一個字母,一般用來建立web 服務器。
雖然這些開放源代碼程序本身並不是專門設計成同另幾個程序一起工作的,但由於它們的免費和開源,這個組合開始流行(大多數Linux發行版本捆綁了這些軟件)。當一起使用的時候,它們表現的像一個具有活力的解決方案包。其他的方案包有蘋果的WebObjects(最初是應用服務器),Java/J2EE和微軟的.NET架構。
LAMP包的腳本組件中包括了CGIweb接口,它在90年代初期變得流行。這個技術允許網頁瀏覽器的用戶在服務器上執行一個程序,並且和接受靜態的內容一樣接受動態的內容。程序員使用腳本語言來創建這些程序因爲它們能很容易有效的操作文本流,甚至當這些文本流並非源自程序自身時也是。正是由於這個原因系統設計者經常稱這些腳本語言爲膠水語言。
LAMP(Linux-Apache-MySQL-PHP)網站架構是目前國際流行的Web框架,該框架包括:Linux操作系統,Apache網絡服務器,MySQL數據庫,Perl、PHP或者Python編程語言,所有組成產品均是開源軟件,是國際上成熟的架構框架,很多流行的商業應用都是採取這個架構,和 Java/J2EE架構相比,LAMP具有Web資源豐富、輕量、快速開發等特點,微軟的.NET架構相比,LAMP具有通用、跨平臺、高性能、低價格的優勢,因此LAMP無論是性能、質量還是價格都是企業搭建網站的首選平臺
LAMP架構的實現
下面開始安裝LAMP
httpd服務器的IP爲172.16.25.1
php服務器的IP爲172.16.25.4
mysql服務器的IP爲172.16.25.3
一、使用httpd-2.4.9版本的安裝包配置httpd服務 1、先需要解決依賴關係包 #yuminstall pcre-devel –y #yuminstall gcc –y 還需要較新版本的apr和apr-util,這兩個安裝包需要編譯安裝,httpd在編譯安裝的時候需要用到apr和apr-util (1)編譯安裝apr # tar xf apr-1.5.0.tar.bz2 # cd apr-1.5.0 # ./configure --prefix=/usr/local/apr # make && make install (2) 編譯安裝apr-util # tar xf apr-util-1.5.3.tar.bz2 # cd apr-util-1.5.3 # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr # make && make install 2、編譯安裝httpd安裝包 # tar xfhttpd-2.4.9.tar.bz2 # cd httpd-2.4.9 # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24--enable-so --enable-mod_ssl --enable-cgi --enable-rewrite --with-zlib--with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util--enable-modules=most --enable-mpms-shared=all --with-mpm=event # make && make install (注:--sysconfdir=/etc/httpd24,因httpd服務是本來就有的,爲了避免和原版的發生衝突,需要再創建一個文件夾存放) 3、修改httpd的主配置文件,設置其Pid文件的路徑 編輯/etc/httpd/httpd.conf,添加如下行即可: PidFile "/var/run/httpd.pid" 4、添加新版本httpd的服務腳本 #vim /etc/rc.d/init.d/httpd24 而後爲此腳本賦予執行權限: # chmod +x /etc/rc.d/init.d/httpd24 加入服務列表: # chkconfig --add httpd 接下來就可以啓動服務進行測試了。 5、啓用httpd的相關模塊 在Apache httpd 2.4以後已經專門有一個模塊針對FastCGI的實現,此模塊爲mod_proxy_fcgi.so,它其實是作爲mod_proxy.so模塊的擴充,因此,這兩個模塊都要加載 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so 6、配置虛擬主機支持使用fcgi <VirtualHost 172.16.25.1:80> ServerNamewww.learning.com DocumentRoot"/usr/local/apache/htdocs/wordpress" ServerAliaswww.learning.com ProxyRequestsOff ProxyPassMatch^/(.*\.php)$ fcgi://172.16.25.4:9000/web/wordpress/$1 <Directory"/usr/local/apache/htdocs/wordpress"> Options none require allgranted </Directory> </VirtualHost>ProxyPassMatch:把以.php結尾的文件請求發送到php-fpm進程,php-fpm至少需要知道運行的目錄和URI,所以這裏直接在fcgi://127.0.0.1:9000後指明瞭這兩個參數,其它的參數的傳遞已經被mod_proxy_fcgi.so進行了封裝,不需要手動指定。 7、編輯apache配置文件httpd.conf,讓apache能識別php格式的頁面,並支持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 二、配置php服務器 編譯安裝php-5.4.26 1、解決依賴關係: 請配置好yum源(可以是本地系統光盤)後執行如下命令: # yum -y groupinstall "X SoftwareDevelopment" #yum install libxml2-devel #yum install openssl-devel 2、編譯安裝php-5.4.26 #[root@localhost ~]# tar xf php-5.4.26.tar.bz2 #[root@localhost ~]# cd php-5.4.26 #./configure --prefix=/usr/local/php5--with-mysql=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir--with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets--enable-fpm --with-mcrypt --with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d --with-bz2 #make && make install 3、複製腳本文件,並開啓開機自動啓動 [root@localhost php-5.4.26]# cp php.ini-production /etc/php.ini [root@localhost php-5.4.26]# cp sapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm [root@localhost php-5.4.26]# chmod +x /etc/rc.d/init.d/php-fpm [root@localhost php-5.4.26]# chkconfig --add php-fpm [root@localhost php-5.4.26]# chkconfig php-fpm on 4、複製php-fpm的主配置文件,並添加相關配置項 [root@localhost ~]# cp/usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf [root@localhost ~]# vim /usr/local/php/etc/php-fpm.conf pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8 在[global]下配置pid pid = /usr/local/php5/var/run/php-fpm.pid 5、然後啓動並查看端口號是否處於監聽狀態 [root@localhost ~]# netstat -tnlp | grep php-fpm 6、配置wordpress-3.2.1-zh_CN.zip安裝包 #unzip wordpress-3.2.1-zh_CN.zip 將解壓過的文件放在web文件中,等配置httpd服務時指向本目錄 #mkdir web #mv wordpress web 進入目錄內複製wordpress文件的主文件 #cp wp-config-sample.php wp-config.php 7、配置wordpress主配置文件 /** WordPress 數據庫的名稱 */ define('DB_NAME', 'via'); /** MySQL 數據庫用戶名 */ define('DB_USER', 'via'); ** MySQL 數據庫密碼 */ define('DB_PASSWORD', '123'); /** MySQL 主機 */ define('DB_HOST', '172.16.25.3'); 8、wordpress文件壓縮併發送給httpd服務器的默認頁面目錄中 #[root@localhost web]# tar jcvf wordpress.tar.bz2 wordpress/ #[root@localhost web]# scp wordpress.tar.bz2 [email protected]:/usr/local/apache/htdocs/ 三、解壓配置mariadb-5.5.36 1、先將數據庫包解壓至/usr/local目錄下,然後在另一塊硬盤上創建新建一個邏輯卷,並將其掛載至特定目錄即可(安裝MySQL時一定要安裝在與操作系統不同的磁盤的邏輯捲上,以免當操作系統磁盤損壞時,導致MySQL數據的丟失;放在邏輯卷已方便當數據不斷增大導致數據不夠用時可動態可以使用快照的方式進行方便的備份數據) #dd if=/dev/zero of=/dev/sdb bs=512count=1(當磁盤中有數據時可使用此命令清零) [root@localhost ~]# pvcreate /dev/sdb1 [root@localhost~]# vgcreate myvg /dev/sdb1 [root@localhost ~]# lvcreate -L 10G -n mydatamyvg [root@localhost ~]# mke2fs -t ext4 -L MYDATA -b 4096 -m 3/dev/myvg/mydata 這裏假設其邏輯卷的掛載目錄爲/mydata,而後需要創建/mydata/data目錄做爲mysql數據的存放目錄。 [root@localhost ~]# mkdir mydata [root@localhost ~]# vim /etc/fstab [root@localhost ~]# mount -a 創建一個mysql數據的目錄 [root@localhost ~]# mkdir mydata/data 2、新建用戶以安全方式運行進程並更改目錄屬組,屬主 [root@localhost ~]# groupadd -r mysql [root@localhost ~]# useradd -g mysql -r -s /sbin/nologin -M -d/mydata/data mysq [root@localhost ~]# chown -R mysql:mysql mydata/data 3、創建解壓文件的軟鏈接 [root@localhost local]# tar xf mariadb-5.5.36-C /usr/local [root@localhost local]# ln -sv mariadb-5.5.36-linux-x86_64 mysql 4、進入mysql目錄內,更改所有文件的權限 [root@localhost local]# cd mysql [root@localhost mysql]# chown -R root.mysql ./* 5、將suport-files目錄中的my-large.cnf文件複製到etc目錄下,並編輯此文件添加選項 [root@localhost mysql]# mkdir /etc/mysql [root@localhost mysql]# cp support-files/my-large.cnf/etc/mysql/my.cnf [root@localhost mysql]# vim /etc/mysql/my.cnf (在[mysqld]下添加datadir = /mydata/data) 6、執行初始化命令 [root@localhost mysql]# scripts/mysql_install_db --user=mysql--datadir=/mydata/data 7、複製運行腳本到init.d目錄下 [root@localhost mysql]# cpsupport-files/mysql.server /etc/rc.d/init.d/mysqld 8、複製完樣本目錄後在在查看是否有執行權限 [root@localhost mysql]# ll /etc/rc.d/init.d 9、添加環境變量 [root@localhost mysql]# vim /etc/profile.d/mysql.sh export PATH=/usr/local/mysql/bin:$PATH 10、設置是否自動開啓然後啓動服務 [root@localhost mysql]# chkconfig --add mysqld [root@localhost mysql]# service mysqld start 11、進入數據庫中,創建數據庫,並授權用戶 mysql> CREATE DATABASE via; 創建數據庫 mysql> use via 進入via數據庫 mysql> GRANT ALL ON via.* TO [email protected] IDENTIFIEDBY '123'; 授權用戶,授權時要指向PHP服務器 配置完成,使用客戶端訪問httpd服務器,查看配置結果 四、使用客戶端看出配置結果 使用IP訪問httpd服務器,可以看到wordpress時配置完成