編譯安裝LAMP平臺和出現的問題

LAMP

目前最爲成熟的一種企業網站應用模式,可提供動態Web站點應用及開發環境

構成組件

Linux、Apache、MySQL、PHP/Perl/Python

LAMP的優勢

成本低廉

可定製、易於開發

方便易用、安全和穩定


1.準備工作

服務器IP:192.168.1.10

[root@crushlinux ~]# service iptablesstop //關閉防火牆

[root@crushlinux ~]# setenforce 0 //關閉selinux

[root@crushlinux ~]# echo "192.168.1.10 www.benet.com" >> /etc/hosts

2.檢查是否通過rpm方式安裝了相關軟件,防止衝突

[root@crushlinux ~]# rpm –qa |grep httpd httpd-manual webalizer subversionmod_python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-commonphp-mysqlmysql-server mysql dovecot --nodeps

如果有相關衝突的包就要先卸載掉

  rpm  -e php  php-cli  php-ldap php-common  php-mysql  --nodeps

yum -y insatll gcc* 安裝編譯的環境gcc


tar zxvf httpd-2.2.9.tar.gz -C /usr/src/

cd /usr/src/httpd-2.2.9/

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite--enable-charset-lite --enable-cgi

  make && make install

  cd /usr/local/httpd/

   ls

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

#!/bin/sh

#chkconfig:345 61 61

#description:Apache httpd

[root@crushlinux local]# chmod +x /etc/init.d/httpd

[root@crushlinux local]# chkconfig --add httpd

[root@crushlinux local]# chkconfig --list httpd

httpd 0:關閉 1:關閉 2:關閉 3:啓用 4:啓用 5:啓用 6:關閉

[root@crushlinux local]# service httpd restart

wKioL1RfL3mRkMSFAAGL5XiYG1s919.jpg

[root@crushlinux local]# cd/usr/local/httpd/conf/

[root@crushlinux conf]# vi httpd.conf

wKiom1RfL2Pi1K80AAJkTTGCeKU833.jpg

wKioL1RfMB7Ah5gxAAMWouvvWkg714.jpg

chkconfig httpd on


wKioL1RfMJvABHZQAAGAphGZ7lI687.jpg



另外一種問題可能會遇到,我列出來:

問題2:

/usr/local/apache/bin/httpd: errorwhile loading shared libraries: libiconv.so.2: cannot open shared object file:No such file or directory

有很多so模塊在/usr/local/lib目錄下,所以在/etc/ld.so.conf中加入/usr/local/lib這一行

[root@crushlinux conf]# vi/etc/ld.so.conf

/usr/local/lib

[root@crushlinux conf]# /sbin/ldconfig-v

現在您已經將 Apach源代碼安裝在/usr/local/httpd。本源代碼安裝支持可裝載模塊

和標準的 MPM prefork。之後,可以使用如下命令啓動 Apache 服務器:

[root@crushlinux conf]#/usr/local/httpd/bin/apachectl start

Apache虛擬主機配置

如果需要在一個web服務器上面跑多個web站點就需要定義虛擬主機。通過虛擬主機web服務器可以充分利用服務器硬件資源,降低網站運行成本。

虛擬主機有以下三種類型:

   基於IP:一個站點使用一個IP地址


   基於端口:多個站點使用一個Ip地址,但是訪問端口不同

   基於域名:多個站點使用一個Ip地址,但是域名不同

 

注意:中心主機和虛擬主機無法一起使用,如果使用虛擬主機就必須取消中心主機。

取消中心主機:註釋中心主機的DocumentRoot即可。


虛擬主機的定義:

<VirtualHost  Host>

 

</VirtualHost>

 

基於IPHOST的寫法

   IP180

   IP280

基於端口:

   IP80

   IP8080

基於域名:

   IP80

ServerName  不同


設置基於端口的虛擬主機:

cd /usr/local/httpd/

mkdir benet.com   vim index.html

mkdir accp.com     vim index.html

wKiom1RfPW3iAKhiAAEG2YB4RVI503.jpg

vim /usr/local/httpd/conf/httpd.conf 改兩個地方:如下

wKioL1RfP8HjEMdcAAC_vJJbQxA284.jpg


wKiom1RfP2yxcRRrAADFC0hvFKQ274.jpg 

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 


wKioL1RfP-CCEmfoAAKXETxRpj0558.jpg

service httpd restart

wKiom1RfQArw5ZcPAAFka92nlpc858.jpg

wKioL1RfQHOQoI7GAAFsDZ9J8iM618.jpg


設置基於域名的虛擬主機

先增加host記錄:

wKiom1RfQG_DpsnXAAFHlzNgoyw889.jpg

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

wKioL1RfQc_BfvIwAAH5LfdC4cM093.jpg

wKiom1RfQT6DxqwYAADUn-8pWvI758.jpgwKioL1RfQkCzBqaTAAFR9k-vALg201.jpg

wKiom1RfQdnyGwrIAAELBPmMmhE276.jpg


基於IP地址的就不演示了。需要添加一塊網卡,要重啓機器,格式如下:

IP地址虛擬主機設置:

建立虛擬主機配置文件

1
2
3
4
5
6
7
8
[root@ns1 html]# vim/etc/httpd/conf.d/virtual.conf
<VirtualHost 192.168.1.10:80>
 DocumentRoot "/usr/local/httpd/benet.com/"
</VirtualHost>
  
<VirtualHost 192.168.1.20:80>
 DocumentRoot "/usr/local/httpd/accp.com/"
</VirtualHost>



基於域名的虛擬主機加身份驗證:

1
2
3
4
5
6
7
8
9
10
11
12
13
<VirtualHost 192.168.1.10>
 DocumentRoot "/usr/local/httpd/benet.com/"
 ServerName www.benet.com
 <Directory "/usr/local/httpd/benet.com/">
    AllowOverride authconfig
    AuthType Basic
    AuthName "Restrict area"
    AuthUserFile "/usr/local/httpd/conf/.awspad"
    Require valid-user
 </Directory>
</VirtualHost>

 

創建認證文件

12

[root@localhost ~]cd /usr/local/httpd/

[root@localhost ~]# bin/htpasswd -c /usr/local/httpd/conf/.awspad hujianli



wKiom1RfRhDjMRwmAAFBIZvSjXI934.jpg

wKioL1RfRlaDR3MPAALWA_scyGs182.jpg

4.源代碼安裝Mysql

[root@crushlinux ~]# useradd -M -u 49 -s /sbin/nologin mysql

[root@crushlinux ~]# tar zxf mysql-5.1.55.tar.gz -C /usr/src/

[root@crushlinux ~]# cd /usr/src/mysql-5.1.55/

[root@crushlinux mysql-5.1.55]#./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312

[root@crushlinux ~]# make && make install



[root@crushlinux mysql-5.1.55]# cp support-files/my-medium.cnf /etc/my.cnf

[root@crushlinux mysql-5.1.55]# cd /usr/local/mysql/bin/

[root@crushlinux bin]#./mysql_install_db --user mysql

[root@crushlinux bin]# chown -R root:mysql /usr/local/mysql/

[root@crushlinux bin]# chown -R mysql /usr/local/mysql/var/

[root@crushlinux bin]# ln -s /usr/local/mysql/bin/* /usr/local/bin/

[root@crushlinux bin]# ln -s /usr/local/mysql/lib/mysql/* /usr/lib/

[root@crushlinux bin]# ln -s /usr/local/mysql/include/mysql/* /usr/include/

[root@crushlinux bin]# cd /usr/src/mysql-5.1.55/

[root@crushlinux mysql-5.1.55]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

[root@crushlinux mysql-5.1.55]# chmod a+x /etc/rc.d/init.d/mysqld

[root@crushlinux mysql-5.1.55]#chkconfig --add mysqld

[root@crushlinux mysql-5.1.55]#chkconfig --list mysqld

mysqld 0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉

[root@crushlinux mysql-5.1.55]# service mysqld restart

MySQL manager or server PID file couldnot be found! [失敗]

Starting MySQL.Manager of pid-file quitwithout updating fi[失敗]

wKioL1RfVmLxsLfrAAHICnHymm0600.jpg

問題:

啓動MYSQL報錯StartingMySQL.Manager of pid-file quit without updating fi[失敗]

[root@crushlinux mysql-5.1.55]# rm -rf /var/lib/mysql

[root@crushlinux mysql-5.1.55]# /usr/local/mysql/bin/mysql_install_db --user=mysql

重啓看看是否可用

wKiom1RfVkvR6LOmAACmUuA3xnQ311.jpg

[root@crushlinux mysql-5.1.55]# service mysqld start

Starting MySQL. [確定]

wKiom1RfVpWwcN3nAAFQ_L_Vxmo381.jpg

[root@crushlinux mysql-5.1.55]# ps aux|grep mysql

如果不可用請繼續如下操作

[root@crushlinux mysql-5.1.55]# kill -9 mysqld_safe(Pid number)

[root@crushlinux mysql-5.1.55]# kill -9 mysqld (Pid number)

重啓看看是否可用

[root@crushlinux mysql-5.1.55]# service mysqld start

[root@crushlinux mysql-5.1.55]# cd ~

wKiom1RfVwrhGDI0AAJjwW2RmBA468.jpg好了mysql安裝完畢。

接下來準備php的安裝環境:


5.源代碼安裝libmcrypt

[root@crushlinux~]# tar zxf libmcrypt-2.5.7.tar.gz -C/usr/src/

[root@crushlinux~]# cd /usr/src/libmcrypt-2.5.7/

[[email protected]]# ./configure

[[email protected]]# make && makeinstall

[[email protected]]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/

[[email protected]]# cd ~


6.源代碼安裝mhash

[root@crushlinux~]# tar zxf mhash-0.9.9.9.tar.gz -C/usr/src/

[root@crushlinux~]# cd /usr/src/mhash-0.9.9.9/

[[email protected]]# ./configure

[[email protected]]# make && makeinstall

[[email protected]]# ln -s /usr/local/lib/libmhash* /usr/lib/

[[email protected]]# cd ~



7.源代碼安裝mcrypt

[root@crushlinux~]# tar zxf mcrypt-2.6.8.tar.gz -C/usr/src/

[root@crushlinux~]# cd /usr/src/mcrypt-2.6.8/

[[email protected]]# ./configure

[[email protected]]# make && makeinstall

[[email protected]]# cd ~

wKioL1RfWzzzgZIzAAKzbfN6wkw349.jpg

這個問題沒解決。。。。我會盡快找到答案的,,未完待續。。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章