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
[root@crushlinux local]# cd/usr/local/httpd/conf/
[root@crushlinux conf]# vi httpd.conf
chkconfig httpd on
另外一種問題可能會遇到,我列出來:
問題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>
基於IP:HOST的寫法
IP1:80
IP2:80
基於端口:
IP:80
IP:8080
基於域名:
IP:80
ServerName 不同
設置基於端口的虛擬主機:
cd /usr/local/httpd/
mkdir benet.com vim index.html
mkdir accp.com vim index.html
vim /usr/local/httpd/conf/httpd.conf 改兩個地方:如下
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
service httpd restart
設置基於域名的虛擬主機
先增加host記錄:
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
基於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 ~]# bin/htpasswd -c /usr/local/httpd/conf/.awspad hujianli |
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[失敗]
問題:
啓動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
重啓看看是否可用
[root@crushlinux mysql-5.1.55]# service mysqld start
Starting MySQL. [確定]
[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 ~
接下來準備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 ~
這個問題沒解決。。。。我會盡快找到答案的,,未完待續。。